diff options
| author | Michele Calgaro <michele.calgaro@yahoo.it> | 2014-05-25 15:37:31 +0900 | 
|---|---|---|
| committer | Michele Calgaro <michele.calgaro@yahoo.it> | 2014-05-25 15:37:31 +0900 | 
| commit | 6392f5a9dfce2bf83617d49bb7f332181ec6004e (patch) | |
| tree | ab69e390f7962b7e7dda1a3a64f035c61c751cf4 /tdevdesigner/uilib/qwidgetfactory.cpp | |
| parent | aba2788b428dc53243407902e9ccbb20b97a69fd (diff) | |
| download | tdevelop-6392f5a9dfce2bf83617d49bb7f332181ec6004e.tar.gz tdevelop-6392f5a9dfce2bf83617d49bb7f332181ec6004e.zip | |
Revert "Finish renaming tdevelop components"
This reverts commit 722ce1efbac31c61b1d4b13f7e075c9f311e3e73.
Diffstat (limited to 'tdevdesigner/uilib/qwidgetfactory.cpp')
| -rw-r--r-- | tdevdesigner/uilib/qwidgetfactory.cpp | 2606 | 
1 files changed, 0 insertions, 2606 deletions
| diff --git a/tdevdesigner/uilib/qwidgetfactory.cpp b/tdevdesigner/uilib/qwidgetfactory.cpp deleted file mode 100644 index 56649616..00000000 --- a/tdevdesigner/uilib/qwidgetfactory.cpp +++ /dev/null @@ -1,2606 +0,0 @@ -/********************************************************************** -** Copyright (C) 2000-2002 Trolltech AS.  All rights reserved. -** -** This file is part of TQt Designer. -** -** This file may be distributed and/or modified under the terms of the -** GNU General Public License version 2 as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL included in the -** packaging of this file. -** -** Licensees holding valid TQt Enterprise Edition or TQt Professional Edition -** licenses may use this file in accordance with the TQt Commercial License -** Agreement provided with the Software. -** -** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE -** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. -** -** See http://www.trolltech.com/gpl/ for GPL licensing information. -** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for -**   information about TQt Commercial License Agreements. -** -** Contact info@trolltech.com if any conditions of this licensing are -** not clear to you. -** -**********************************************************************/ - -#include "qwidgetfactory.h" - -#include "../interfaces/languageinterface.h" -#include "../interfaces/widgetinterface.h" - -#include <tqfeatures.h> -#include "database2.h" -#include <tqdom.h> -#include <tqdir.h> -#include <tqlayout.h> -#include <tqmetaobject.h> -#include <domtool.h> -#include <uib.h> -#include <tqapplication.h> -#include <tqtooltip.h> -#include <tqwhatsthis.h> -#include <tqobjectlist.h> -#include <tqpluginmanager_p.h> -#include <tqmime.h> -#include <tqdragobject.h> - -#ifndef TQT_NO_SQL -#include <tqsqlrecord.h> -#include <tqsqldatabase.h> -#include <tqdatatable.h> -#endif - -// include all TQt widgets we support -#include <tqpushbutton.h> -#include <tqtoolbutton.h> -#include <tqcheckbox.h> -#include <tqradiobutton.h> -#include <tqgroupbox.h> -#include <tqbuttongroup.h> -#include <tqiconview.h> -#include <tqheader.h> -#ifndef TQT_NO_TABLE -#include <tqtable.h> -#endif -#include <tqlistbox.h> -#include <tqlistview.h> -#include <tqlineedit.h> -#include <tqspinbox.h> -#include <tqmultilineedit.h> -#include <tqlabel.h> -#include <tqwidget.h> -#include <tqtabwidget.h> -#include <tqcombobox.h> -#include <tqdialog.h> -#include <tqwizard.h> -#include <tqlcdnumber.h> -#include <tqprogressbar.h> -#include <tqtextview.h> -#include <tqtextbrowser.h> -#include <tqdial.h> -#include <tqslider.h> -#include <tqframe.h> -#include <tqwidgetstack.h> -#include <tqtoolbox.h> -#include <tqtextedit.h> -#include <tqscrollbar.h> -#include <tqmainwindow.h> -#include <tqsplitter.h> -#include <tqaction.h> -#include <tqpopupmenu.h> -#include <tqmenubar.h> -#include <tqpopupmenu.h> -#include <tqdatetimeedit.h> -#include <tqvbox.h> -#include <tqhbox.h> -#include <tqgrid.h> - -#include <stdlib.h> - -class TQWidgetFactoryPrivate -{ -public: -    TQCString translationContext; -    TQListViewItem *lastItem; -    TQDict<bool> customWidgets; -}; - -static TQPtrList<TQWidgetFactory> widgetFactories; -static TQPluginManager<LanguageInterface> *languageInterfaceManager = 0; -static TQPluginManager<WidgetInterface> *widgetInterfaceManager = 0; - -static TQMap<TQString, bool> *availableWidgetMap = 0; -static TQStringList *availableWidgetList = 0; - -TQMap<TQWidget*, TQString> *qwf_forms = 0; -TQString *qwf_language = 0; -bool qwf_execute_code = TRUE; -bool qwf_stays_on_top = FALSE; -TQString qwf_currFileName = ""; -TQObject *qwf_form_object = 0; -TQString *qwf_plugin_dir = 0; - -static void setupPluginDir() -{ -    if ( !qwf_plugin_dir ) -	qwf_plugin_dir = new TQString( "/designer" ); -} - -static void setupWidgetListAndMap() -{ -    if ( availableWidgetMap ) -	return; -    setupPluginDir(); -    availableWidgetList = new TQStringList; -    (*availableWidgetList) << TQPUSHBUTTON_OBJECT_NAME_STRING << TQTOOLBUTTON_OBJECT_NAME_STRING << TQCHECKBOX_OBJECT_NAME_STRING << TQRADIOBUTTON_OBJECT_NAME_STRING -			   << TQGROUPBOX_OBJECT_NAME_STRING << TQBUTTONGROUP_OBJECT_NAME_STRING << TQICONVIEW_OBJECT_NAME_STRING << TQTABLE_OBJECT_NAME_STRING -			   << TQLISTBOX_OBJECT_NAME_STRING << TQLISTVIEW_OBJECT_NAME_STRING << TQLINEEDIT_OBJECT_NAME_STRING << TQSPINBOX_OBJECT_NAME_STRING -			   << TQMULTILINEEDIT_OBJECT_NAME_STRING << TQLABEL_OBJECT_NAME_STRING << "TextLabel" << "PixmapLabel" -			   << TQLAYOUTWIDGET_OBJECT_NAME_STRING << TQTABWIDGET_OBJECT_NAME_STRING << TQCOMBOBOX_OBJECT_NAME_STRING -			   << TQWIDGET_OBJECT_NAME_STRING << TQDIALOG_OBJECT_NAME_STRING << TQWIZARD_OBJECT_NAME_STRING << TQLCDNUMBER_OBJECT_NAME_STRING; -    // put less stress on the compiler by limiting the template nesting depth -    (*availableWidgetList) << TQPROGRESSBAR_OBJECT_NAME_STRING << TQTEXTVIEW_OBJECT_NAME_STRING << TQTEXTBROWSER_OBJECT_NAME_STRING -			   << TQDIAL_OBJECT_NAME_STRING << TQSLIDER_OBJECT_NAME_STRING << TQFRAME_OBJECT_NAME_STRING << "Line" << TQTEXTEDIT_OBJECT_NAME_STRING -			   << TQDATEEDIT_OBJECT_NAME_STRING << TQTIMEEDIT_OBJECT_NAME_STRING << TQDATETIMEEDIT_OBJECT_NAME_STRING << TQSCROLLBAR_OBJECT_NAME_STRING -			   << TQPOPUPMENU_OBJECT_NAME_STRING << TQWIDGETSTACK_OBJECT_NAME_STRING << TQMAINWINDOW_OBJECT_NAME_STRING -			   << TQDATATABLE_OBJECT_NAME_STRING << TQDATABROWSER_OBJECT_NAME_STRING << TQDATAVIEW_OBJECT_NAME_STRING -			   << TQVBOX_OBJECT_NAME_STRING << TQHBOX_OBJECT_NAME_STRING << TQGRID_OBJECT_NAME_STRING << TQTOOLBOX_OBJECT_NAME_STRING; - -    if ( !widgetInterfaceManager ) -	widgetInterfaceManager = -	    new TQPluginManager<WidgetInterface>( IID_Widget, TQApplication::libraryPaths(), *qwf_plugin_dir ); - -    TQStringList l = widgetInterfaceManager->featureList(); -    TQStringList::Iterator it; -    for ( it = l.begin(); it != l.end(); ++it ) -	(*availableWidgetList) << *it; - -    availableWidgetMap = new TQMap<TQString, bool>; -    for ( it = availableWidgetList->begin(); it != availableWidgetList->end(); ++it ) -	availableWidgetMap->insert( *it, TRUE ); -} - -static TQImage loadImageData( const TQString& format, ulong len, TQByteArray data ) -{ -    TQImage img; -    if ( format == "XPM.GZ" || format == "XBM.GZ" ) { -	if ( len < data.size() * 10 ) -	    len = data.size() * 10; -	// tqUncompress() expects the first 4 bytes to be the expected length of -	// the uncompressed data -	TQByteArray dataTmp( data.size() + 4 ); -	memcpy( dataTmp.data()+4, data.data(), data.size() ); -	dataTmp[0] = ( len & 0xff000000 ) >> 24; -	dataTmp[1] = ( len & 0x00ff0000 ) >> 16; -	dataTmp[2] = ( len & 0x0000ff00 ) >> 8; -	dataTmp[3] = ( len & 0x000000ff ); -	TQByteArray baunzip = tqUncompress( dataTmp ); -	len = baunzip.size(); -	img.loadFromData( (const uchar*)baunzip.data(), len, format.left(format.find('.')).ascii() ); -    } else { -	img.loadFromData( (const uchar*)data.data(), data.size(), format.ascii() ); -    } -    return img; -} - -static TQSizePolicy::SizeType stringToSizeType( const TQString& str ) -{ -    if ( str == "Fixed" ) { -	return TQSizePolicy::Fixed; -    } else if ( str == "Minimum" ) { -	return TQSizePolicy::Minimum; -    } else if ( str == "Maximum" ) { -	return TQSizePolicy::Maximum; -    } else if ( str == "Preferred" ) { -	return TQSizePolicy::Preferred; -    } else if ( str == "MinimumExpanding" ) { -	return TQSizePolicy::MinimumExpanding; -    } else if ( str == "Expanding" ) { -	return TQSizePolicy::Expanding; -    } else { -	return TQSizePolicy::Ignored; -    } -} - - -/*! -  \class TQWidgetFactory - -  \brief The TQWidgetFactory class provides for the dynamic creation of widgets -  from TQt Designer .ui files. - -  This class basically offers two things: - -  \list - -  \i Dynamically creating widgets from \link designer-manual.book TQt -  Designer\endlink user interface description files. -  You can do this using the static function TQWidgetFactory::create(). -  This function also performs signal and slot connections, tab -  ordering, etc., as defined in the .ui file, and returns the -  top-level widget in the .ui file. After creating the widget you can -  use TQObject::child() and TQObject::queryList() to access child -  widgets of this returned widget. - -  \i Adding additional widget factories to be able to create custom -  widgets. See createWidget() for details. - -  \endlist - -  This class is not included in the TQt library itself. To use it you -  must link against \c libqui.so (Unix) or \c qui.lib (Windows), which is -  built into \c INSTALL/lib if you built \e{TQt Designer} (\c INSTALL is -  the directory where TQt is installed ). - -  See the "Creating Dynamic Dialogs from .ui Files" section of the \link -  designer-manual.book TQt Designer manual\endlink for an example. See -  also the \l{TQWidgetPlugin} class and the \link plugins-howto.html -  Plugins documentation\endlink. -*/ - -/*! Constructs a TQWidgetFactory. */ - -TQWidgetFactory::TQWidgetFactory() -    : d( new TQWidgetFactoryPrivate() ), dbControls( 0 ), -      usePixmapCollection( FALSE ), defMargin( 11 ), defSpacing( 6 ) -{ -    widgetFactories.setAutoDelete( TRUE ); -    d->customWidgets.setAutoDelete( TRUE ); -} - -/*! \fn TQWidgetFactory::~TQWidgetFactory() -    Destructor. -*/ -TQWidgetFactory::~TQWidgetFactory() -{ -    delete d; -} - -/*! - -    Loads the \e{TQt Designer} user interface description file \a uiFile -  and returns the top-level widget in that description. \a parent and -  \a name are passed to the constructor of the top-level widget. - -  This function also performs signal and slot connections, tab -  ordering, etc., as described in the .ui file. In \e{TQt Designer} it -  is possible to add custom slots to a form and connect to them. If -  you want these connections to be made, you must create a class -  derived from TQObject, which implements all these slots. Then pass an -  instance of the object as \a connector to this function. If you do -  this, the connections to the custom slots will be done using the \a -  connector as slot. - -  If something fails, 0 is returned. - -  The ownership of the returned widget is passed to the caller. -*/ - -TQWidget *TQWidgetFactory::create( const TQString &uiFile, TQObject *connector, -				 TQWidget *parent, const char *name ) -{ -    setupPluginDir(); -    TQFile f( uiFile ); -    bool failed = FALSE; -    if ( !f.open( IO_ReadOnly ) ) -	failed = TRUE; -    if ( failed && tqApp->type() == TQApplication::Tty ) { -	// for TQSA: If we have no GUI, we have no form definition -	// files, but just the code. So try if only the code exists. -	f.setName( uiFile + ".qs" ); -	failed = !f.open( IO_ReadOnly ); -    } -    if ( failed ) -	return 0; - -    qwf_currFileName = uiFile; -    TQWidget *w = TQWidgetFactory::create( TQT_TQIODEVICE(&f), connector, parent, name ); -    if ( !qwf_forms ) -	qwf_forms = new TQMap<TQWidget*, TQString>; -    qwf_forms->insert( w, uiFile ); -    return w; -} - -#undef slots - -/*!  \overload -    Loads the user interface description from device \a dev. - */ - -TQWidget *TQWidgetFactory::create( TQIODevice *dev, TQObject *connector, TQWidget *parent, const char *name ) -{ -    setupPluginDir(); -    TQWidget *w = 0; -    TQDomDocument doc; -    TQString errMsg; -    int errLine; - -    TQWidgetFactory *widgetFactory = new TQWidgetFactory; -    widgetFactory->toplevel = 0; - -    // If we have no GUI, we only want to load the code -    if ( tqApp->type() != TQApplication::Tty ) { -	TQIODevice::Offset start = dev->at(); -	TQ_UINT32 magic; -	TQDataStream in( dev ); -	in >> magic; -	if ( magic == UibMagic ) { -	    w = widgetFactory->createFromUibFile( in, connector, parent, name ); -	} else { -	    in.unsetDevice(); -	    dev->at( start ); -	    if ( doc.setContent( dev, &errMsg, &errLine ) ) { -		w = widgetFactory->createFromUiFile( doc, connector, parent, name ); -	    } else { -		// tqDebug( TQString("Parse error: ") + errMsg + TQString(" in line %d"), errLine ); -	    } -	} -	if ( !w ) { -	    delete widgetFactory; -	    return 0; -	} -    } - -    if ( !languageInterfaceManager ) -	languageInterfaceManager = -	    new TQPluginManager<LanguageInterface>( IID_Language, TQApplication::libraryPaths(), *qwf_plugin_dir ); -    widgetFactory->loadExtraSource(); - -    if ( widgetFactory->toplevel ) { -#ifndef TQT_NO_SQL -	TQMap<TQWidget*, SqlWidgetConnection>::Iterator cit = widgetFactory->sqlWidgetConnections.begin(); -	for( ; cit != widgetFactory->sqlWidgetConnections.end(); ++cit ) { -	    if ( widgetFactory->noDatabaseWidgets.find( cit.key()->name() ) != -		 widgetFactory->noDatabaseWidgets.end() ) -		continue; -	    if ( cit.key()->inherits( "QDesignerDataBrowser2" ) ) -		( (QDesignerDataBrowser2*)cit.key() )->initPreview( (*cit).conn, (*cit).table, -								    TQT_TQOBJECT(cit.key()), *(*cit).dbControls ); -	    else if ( cit.key()->inherits( "QDesignerDataView2" ) ) -		( (QDesignerDataView2*)cit.key() )->initPreview( (*cit).conn, (*cit).table, -								 TQT_TQOBJECT(cit.key()), *(*cit).dbControls ); -	} - -	for ( TQMap<TQString, TQStringList>::Iterator it = widgetFactory->dbTables.begin(); -	      it != widgetFactory->dbTables.end(); ++it ) { -	    TQDataTable *table = (TQDataTable*)widgetFactory->toplevel->child( it.key().ascii(), TQDATATABLE_OBJECT_NAME_STRING ); -	    if ( !table ) -		continue; -	    if ( widgetFactory->noDatabaseWidgets.find( table->name() ) != -		 widgetFactory->noDatabaseWidgets.end() ) -		continue; -	    TQValueList<Field> fieldMap = *widgetFactory->fieldMaps.find( table ); -	    TQString conn = (*it)[ 0 ]; -	    TQSqlCursor* c = 0; -	    TQSqlDatabase *db = 0; -	    if ( conn.isEmpty() || conn == "(default)" ) { -		db = TQSqlDatabase::database(); -		c = new TQSqlCursor( (*it)[ 1 ] ); -	    } else { -		db = TQSqlDatabase::database( conn ); -		c = new TQSqlCursor( (*it)[ 1 ], TRUE, db ); -	    } -	    if ( db ) { -		table->setSqlCursor( c, fieldMap.isEmpty(), TRUE ); -		table->refresh( TQDataTable::RefreshAll ); -	    } -	} -#endif -    } - -    for ( TQMap<TQString, TQString>::Iterator it = widgetFactory->buddies.begin(); -	  it != widgetFactory->buddies.end(); ++it ) { -	TQLabel *label = (TQLabel*)widgetFactory->toplevel->child( it.key().ascii(), TQLABEL_OBJECT_NAME_STRING ); -	TQWidget *buddy = (TQWidget*)widgetFactory->toplevel->child( (*it).ascii(), TQWIDGET_OBJECT_NAME_STRING ); -	if ( label && buddy ) -	    label->setBuddy( buddy ); -    } - -    delete widgetFactory; - -    TQApplication::sendPostedEvents(); - -    return w; -} - -TQWidget *TQWidgetFactory::createFromUiFile( TQDomDocument doc, TQObject *connector, -	TQWidget *parent, const char *name ) -{ -    DomTool::fixDocument( doc ); - -    uiFileVersion = doc.firstChild().toElement().attribute("version"); -    TQDomElement e = doc.firstChild().toElement().firstChild().toElement(); - -    TQDomElement variables = e; -    while ( variables.tagName() != "variables" && !variables.isNull() ) -	variables = variables.nextSibling().toElement(); - -    TQDomElement slots = e; -    while ( slots.tagName() != "slots" && !slots.isNull() ) -	slots = slots.nextSibling().toElement(); - -    TQDomElement connections = e; -    while ( connections.tagName() != "connections" && !connections.isNull() ) -	connections = connections.nextSibling().toElement(); - -    TQDomElement imageCollection = e; -    while ( imageCollection.tagName() != "images" && !imageCollection.isNull() ) -	imageCollection = imageCollection.nextSibling().toElement(); - -    TQDomElement tabOrder = e; -    while ( tabOrder.tagName() != "tabstops" && !tabOrder.isNull() ) -	tabOrder = tabOrder.nextSibling().toElement(); - -    TQDomElement actions = e; -    while ( actions.tagName() != "actions" && !actions.isNull() ) -	actions = actions.nextSibling().toElement(); - -    TQDomElement toolbars = e; -    while ( toolbars.tagName() != "toolbars" && !toolbars.isNull() ) -	toolbars = toolbars.nextSibling().toElement(); - -    TQDomElement menubar = e; -    while ( menubar.tagName() != "menubar" && !menubar.isNull() ) -	menubar = menubar.nextSibling().toElement(); - -    TQDomElement functions = e; -    while ( functions.tagName() != "functions" && !functions.isNull() ) -	functions = functions.nextSibling().toElement(); - -    TQDomElement widget; -    while ( !e.isNull() ) { -	if ( e.tagName() == "class" ) { -	    d->translationContext = e.firstChild().toText().data().ascii(); -	} else if ( e.tagName() == "widget" ) { -	    widget = e; -	} else if ( e.tagName() == "pixmapinproject" ) { -	    usePixmapCollection = TRUE; -	} else if ( e.tagName() == "layoutdefaults" ) { -	    defSpacing = e.attribute( "spacing", TQString::number( defSpacing ) ).toInt(); -	    defMargin = e.attribute( "margin", TQString::number( defMargin ) ).toInt(); -	} -	e = e.nextSibling().toElement(); -    } - -    if ( !imageCollection.isNull() ) -	loadImageCollection( imageCollection ); - -    createWidgetInternal( widget, parent, 0, widget.attribute("class", TQWIDGET_OBJECT_NAME_STRING) ); -    TQWidget *w = toplevel; -    if ( !w ) -	return 0; - -    if ( !actions.isNull() ) -	loadActions( actions ); -    if ( !toolbars.isNull() ) -	loadToolBars( toolbars ); -    if ( !menubar.isNull() ) -	loadMenuBar( menubar ); - -    if ( !connections.isNull() ) -	loadConnections( connections, connector ); -    if ( w && name && tqstrlen( name ) > 0 ) -	w->setName( name ); - -    if ( !tabOrder.isNull() ) -	loadTabOrder( tabOrder ); - -#if 0 -    if ( !functions.isNull() ) // compatibiliy with early 3.0 betas -	loadFunctions( functions ); -#endif - -    return w; -} - -void TQWidgetFactory::unpackUInt16( TQDataStream& in, TQ_UINT16& n ) -{ -    TQ_UINT8 half; -    in >> half; -    if ( half == 255 ) { -	in >> n; -    } else { -	n = half; -    } -} - -void TQWidgetFactory::unpackUInt32( TQDataStream& in, TQ_UINT32& n ) -{ -    TQ_UINT16 half; -    in >> half; -    if ( half == 65535 ) { -	in >> n; -    } else { -	n = half; -    } -} - -void TQWidgetFactory::unpackByteArray( TQDataStream& in, TQByteArray& array ) -{ -    TQ_UINT32 size; -    unpackUInt32( in, size ); -    array.resize( size ); -    in.readRawBytes( array.data(), size ); -} - -void TQWidgetFactory::unpackCString( const UibStrTable& strings, TQDataStream& in, -				    TQCString& cstr ) -{ -    TQ_UINT32 n; -    unpackUInt32( in, n ); -    cstr = strings.asCString( n ); -} - -void TQWidgetFactory::unpackString( const UibStrTable& strings, TQDataStream& in, -				   TQString& str ) -{ -    TQ_UINT32 n; -    unpackUInt32( in, n ); -    str = strings.asString( n ); -} - -void TQWidgetFactory::unpackStringSplit( const UibStrTable& strings, -					TQDataStream& in, TQString& str ) -{ -    TQString remainder; -    unpackString( strings, in, str ); -    unpackString( strings, in, remainder ); -    str += remainder; -} - -void TQWidgetFactory::unpackVariant( const UibStrTable& strings, TQDataStream& in, -				    TQVariant& value ) -{ -    TQString imageName; -    TQ_UINT32 number; -    TQ_UINT16 count; -    TQ_UINT16 x; -    TQ_UINT16 y; -    TQ_UINT16 width; -    TQ_UINT16 height; -    TQ_UINT8 bit; -    TQ_UINT8 type; - -    in >> type; - -    switch ( type ) { -    case TQVariant::String: -	unpackString( strings, in, value.asString() ); -	break; -    case TQVariant::Pixmap: -	unpackString( strings, in, imageName ); -	if ( imageName.isEmpty() ) { -	    value.asPixmap() = TQPixmap(); -	} else { -	    value.asPixmap() = loadPixmap( imageName ); -	} -	break; -    case TQVariant::Image: -	unpackString( strings, in, imageName ); -	if ( imageName.isEmpty() ) { -	    value.asImage() = TQImage(); -	} else { -	    value.asImage() = loadFromCollection( imageName ); -	} -	break; -    case TQVariant::IconSet: -	unpackString( strings, in, imageName ); -	if ( imageName.isEmpty() ) { -	    value.asIconSet() = TQIconSet(); -	} else { -	    value.asIconSet() = TQIconSet( loadPixmap(imageName) ); -	} -	break; -    case TQVariant::StringList: -	unpackUInt16( in, count ); -	while ( count-- ) { -	    TQString str; -	    unpackString( strings, in, str ); -	    value.asStringList().append( str ); -	} -	break; -    case TQVariant::Rect: -	unpackUInt16( in, x ); -	unpackUInt16( in, y ); -	unpackUInt16( in, width ); -	unpackUInt16( in, height ); -	value = TQRect( x, y, width, height ); -	break; -    case TQVariant::Size: -	unpackUInt16( in, width ); -	unpackUInt16( in, height ); -	value = TQSize( width, height ); -	break; -    case TQVariant::Color: -	in >> value.asColor(); -	break; -    case TQVariant::Point: -	unpackUInt16( in, x ); -	unpackUInt16( in, y ); -	value = TQPoint( x, y ); -	break; -    case TQVariant::Int: -	unpackUInt32( in, number ); -	value = (int) number; -	break; -    case TQVariant::Bool: -	in >> bit; -	value = TQVariant( bit != 0, 0 ); -	break; -    case TQVariant::Double: -	in >> value.asDouble(); -	break; -    case TQVariant::CString: -	unpackCString( strings, in, value.asCString() ); -	break; -    case TQVariant::Cursor: -	in >> value.asCursor(); -	break; -    case TQVariant::Date: -	in >> value.asDate(); -	break; -    case TQVariant::Time: -	in >> value.asTime(); -	break; -    case TQVariant::DateTime: -	in >> value.asDateTime(); -	break; -    default: -	in >> value; -    } -} - -void TQWidgetFactory::inputSpacer( const UibStrTable& strings, TQDataStream& in, -				  TQLayout *parent ) -{ -    TQCString name; -    TQVariant value; -    TQCString comment; -    TQSizePolicy::SizeType sizeType = TQSizePolicy::Preferred; -    bool vertical = FALSE; -    int w = 0; -    int h = 0; -    TQ_UINT16 column = 0; -    TQ_UINT16 row = 0; -    TQ_UINT16 colspan = 1; -    TQ_UINT16 rowspan = 1; -    TQ_UINT8 objectTag; - -    in >> objectTag; -    while ( !in.atEnd() && objectTag != Object_End ) { -	switch ( objectTag ) { -	case Object_GridCell: -	    unpackUInt16( in, column ); -	    unpackUInt16( in, row ); -	    unpackUInt16( in, colspan ); -	    unpackUInt16( in, rowspan ); -	    break; -	case Object_VariantProperty: -	    unpackCString( strings, in, name ); -	    unpackVariant( strings, in, value ); - -	    if ( name == "orientation" ) { -		vertical = ( value == "Vertical" ); -	    } else if ( name == "sizeHint" ) { -		w = value.toSize().width(); -		h = value.toSize().height(); -	    } else if ( name == "sizeType" ) { -		sizeType = stringToSizeType( value.toString() ); -	    } -	    break; -	default: -	    tqFatal( "Corrupt" ); -	} -	in >> objectTag; -    } - -    if ( parent != 0 ) { -	TQSpacerItem *spacer; -	if ( vertical ) { -	    spacer = new TQSpacerItem( w, h, TQSizePolicy::Minimum, sizeType ); -	} else { -	    spacer = new TQSpacerItem( w, h, sizeType, TQSizePolicy::Minimum ); -	} - -	if ( parent->inherits(TQGRIDLAYOUT_OBJECT_NAME_STRING) ) { -	    ((TQGridLayout *) parent)->addMultiCell( spacer, row, -		    row + rowspan - 1, column, column + colspan - 1, -		    vertical ? TQt::AlignHCenter : TQt::AlignVCenter ); -	} else { -	    parent->addItem( spacer ); -	} -    } -} - -void TQWidgetFactory::inputColumnOrRow( const UibStrTable& strings, -				       TQDataStream& in, TQObject *parent, -				       bool isRow ) -{ -    TQString text; -    TQPixmap pixmap; -    TQString field; -    bool clickable = TRUE; -    bool resizable = TRUE; - -    TQCString name; -    TQVariant value; -    TQCString comment; -    TQString str; -    TQ_UINT8 objectTag; - -    in >> objectTag; -    while ( !in.atEnd() && objectTag != Object_End ) { -	switch ( objectTag ) { -	case Object_TextProperty: -	    unpackCString( strings, in, name ); -	    unpackCString( strings, in, value.asCString() ); -	    unpackCString( strings, in, comment ); -	    str = translate( value.asCString().data(), comment.data() ); - -	    if ( name == "field" ) { -		field = str; -	    } else if ( name == "text" ) { -		text = str; -	    } -	    break; -	case Object_VariantProperty: -	    unpackCString( strings, in, name ); -	    unpackVariant( strings, in, value ); - -	    if ( name == "clickable" ) { -		clickable = value.toBool(); -	    } else if ( name == "pixmap" ) { -		pixmap = value.asPixmap(); -	    } else if ( name == "resizable" ) { -		resizable = value.toBool(); -	    } -	    break; -	default: -	    tqFatal( "Corrupt" ); -	} -	in >> objectTag; -    } - -    if ( parent != 0 ) { -	if ( parent->inherits(TQLISTVIEW_OBJECT_NAME_STRING) ) { -	    createListViewColumn( (TQListView *) parent, text, pixmap, clickable, -				  resizable ); -#ifndef TQT_NO_TABLE -	} else if ( parent->inherits(TQTABLE_OBJECT_NAME_STRING) ) { -	    createTableColumnOrRow( (TQTable *) parent, text, pixmap, field, -				    isRow ); -#endif -	} -    } -} - -void TQWidgetFactory::inputItem( const UibStrTable& strings, TQDataStream& in, -				TQObject *parent, TQListViewItem *parentItem ) -{ -    TQStringList texts; -    TQValueList<TQPixmap> pixmaps; -    TQCString name; -    TQVariant value; -    TQCString comment; -    TQ_UINT8 objectTag; - -    TQListView *listView = 0; -    if ( parent != 0 && parent->inherits(TQLISTVIEW_OBJECT_NAME_STRING) ) -	parent = TQT_TQOBJECT((TQListView *) parent); -    TQListViewItem *item = 0; -    if ( listView != 0 ) { -	if ( parentItem == 0 ) { -	    item = new TQListViewItem( listView, d->lastItem ); -	} else { -	    item = new TQListViewItem( parentItem, d->lastItem ); -	} -	d->lastItem = item; -    } - -    in >> objectTag; -    while ( !in.atEnd() && objectTag != Object_End ) { -	switch ( objectTag ) { -	case Object_Item: -	    if ( listView != 0 ) -		d->lastItem->setOpen( TRUE ); -	    inputItem( strings, in, parent, item ); -	    break; -	case Object_TextProperty: -	    unpackCString( strings, in, name ); -	    unpackCString( strings, in, value.asCString() ); -	    unpackCString( strings, in, comment ); - -	    if ( name == "text" ) -		texts << translate( value.asCString().data(), comment.data() ); -	    break; -	case Object_VariantProperty: -	    unpackCString( strings, in, name ); -	    unpackVariant( strings, in, value ); - -	    if ( name == "pixmap" ) -		pixmaps << value.asPixmap(); -	    break; -	default: -	    tqFatal( "Corrupt" ); -	} -	in >> objectTag; -    } - -    if ( listView != 0 ) { -	int i = 0; -	TQStringList::ConstIterator t = texts.begin(); -	while ( t != texts.end() ) { -	    item->setText( i, *t ); -	    ++i; -	    ++t; -	} - -	int j = 0; -	TQValueList<TQPixmap>::ConstIterator p = pixmaps.begin(); -	while ( p != pixmaps.end() ) { -	    item->setPixmap( j, *p ); -	    ++j; -	    ++p; -	} -    } else { -	TQString text = texts.last(); -	TQPixmap pixmap = pixmaps.last(); - -	if ( parent != 0 ) { -	    if ( parent->inherits(TQCOMBOBOX_OBJECT_NAME_STRING) || -		 parent->inherits(TQLISTBOX_OBJECT_NAME_STRING) ) { -		TQListBox *listBox = (TQListBox *) parent->tqt_cast( TQLISTBOX_OBJECT_NAME_STRING ); -		if ( listBox == 0 ) -		    listBox = ((TQComboBox *) parent)->listBox(); - -		if ( pixmap.isNull() ) { -		    (void) new TQListBoxText( listBox, text ); -		} else { -		    (void) new TQListBoxPixmap( listBox, pixmap, text ); -		} -    #ifndef TQT_NO_ICONVIEW -	    } else if ( parent->inherits(TQICONVIEW_OBJECT_NAME_STRING) ) { -		(void) new TQIconViewItem( (TQIconView *) parent, text, pixmap ); -    #endif -	    } -	} -    } -} - -void TQWidgetFactory::inputMenuItem( TQObject **objects, -				    const UibStrTable& strings, TQDataStream& in, -				    TQMenuBar *menuBar ) -{ -    TQCString name; -    TQCString text; -    TQ_UINT16 actionNo; -    TQ_UINT8 objectTag; - -    unpackCString( strings, in, name ); -    unpackCString( strings, in, text ); - -    TQPopupMenu *popupMenu = new TQPopupMenu( menuBar->parentWidget(), name ); - -    in >> objectTag; -    while ( !in.atEnd() && objectTag != Object_End ) { -	switch ( objectTag ) { -	case Object_ActionRef: -	    unpackUInt16( in, actionNo ); -	    ((TQAction *) objects[actionNo])->addTo( popupMenu ); -	    break; -	case Object_Separator: -	    popupMenu->insertSeparator(); -	    break; -	default: -	    tqFatal( "Corrupt" ); -	} -	in >> objectTag; -    } -    menuBar->insertItem( translate(text.data()), popupMenu ); -} - -TQObject *TQWidgetFactory::inputObject( TQObject **objects, int& numObjects, -				      const UibStrTable& strings, -				      TQDataStream& in, TQWidget *ancestorWidget, -				      TQObject *parent, TQCString className ) -{ -    TQObject *obj = 0; -    TQWidget *widget = 0; -    TQLayout *layout = 0; -    TQWidget *parentWidget = 0; -    TQLayout *parentLayout = 0; - -    bool isTQObject = !className.isEmpty(); -    if ( isTQObject ) { -	if ( parent != 0 ) { -	    if ( parent->isWidgetType() ) { -		if ( parent->inherits(TQMAINWINDOW_OBJECT_NAME_STRING) ) { -		    parentWidget = ((TQMainWindow *) parent)->centralWidget(); -		} else { -		    parentWidget = (TQWidget *) parent; -		} -	    } else if ( parent->inherits(TQLAYOUT_OBJECT_NAME_STRING) ) { -		parentLayout = (TQLayout *) parent; -		parentWidget = ancestorWidget; -	    } -	} - -	if ( className == TQACTION_OBJECT_NAME_STRING ) { -	    unpackCString( strings, in, className ); -	    if ( className == TQACTIONGROUP_OBJECT_NAME_STRING ) { -		obj = new TQActionGroup( parent ); -	    } else { -		obj = new TQAction( parent ); -	    } -	} else if ( className == TQLAYOUT_OBJECT_NAME_STRING ) { -	    unpackCString( strings, in, className ); -	    LayoutType type = Grid; -	    if ( className == TQHBOXLAYOUT_OBJECT_NAME_STRING ) { -		type = HBox; -	    } else if ( className == TQVBOXLAYOUT_OBJECT_NAME_STRING ) { -		type = VBox; -	    } -	    if ( parentLayout != 0 && parentLayout->inherits(TQGRIDLAYOUT_OBJECT_NAME_STRING) ) { -		layout = createLayout( 0, 0, type ); -	    } else { -		layout = createLayout( parentWidget, parentLayout, type ); -	    } -	    obj = TQT_TQOBJECT(layout); -	} else if ( className == TQMENUBAR_OBJECT_NAME_STRING ) { -	    unpackCString( strings, in, className ); -	    widget = ((TQMainWindow *) parent)->menuBar(); -	    obj = TQT_TQOBJECT(widget); -	} else if ( className == TQTOOLBAR_OBJECT_NAME_STRING ) { -	    TQ_UINT8 dock; -	    in >> dock; -	    unpackCString( strings, in, className ); -	    widget = new TQToolBar( TQString(), (TQMainWindow *) parent, -				   (TQt::Dock) dock ); -	    obj = TQT_TQOBJECT(widget); -	} else if ( className == TQWIDGET_OBJECT_NAME_STRING ) { -	    unpackCString( strings, in, className ); -	    widget = createWidget( className, parentWidget, 0 ); -	    obj = TQT_TQOBJECT(widget); -	} - -	if ( widget != 0 ) -	    ancestorWidget = widget; -	d->lastItem = 0; -	objects[numObjects++] = obj; -    } - -    TQCString name; -    TQVariant value; -    TQCString comment; -    TQString str; -    TQ_UINT16 actionNo; -    int metAttribute = 0; -    TQ_UINT16 column = 0; -    TQ_UINT16 row = 0; -    TQ_UINT16 colspan = 1; -    TQ_UINT16 rowspan = 1; -    TQ_UINT8 paletteTag; -    TQ_UINT8 objectTag; - -    in >> objectTag; -    while ( !in.atEnd() && objectTag != Object_End ) { -	switch ( objectTag ) { -	case Object_ActionRef: -	    unpackUInt16( in, actionNo ); -	    ((TQAction *) objects[actionNo])->addTo( (TQToolBar *) widget ); -	    break; -	case Object_Attribute: -	    metAttribute = 2; -	    break; -	case Object_Column: -	    inputColumnOrRow( strings, in, obj, FALSE ); -	    break; -	case Object_Event: -	    unpackCString( strings, in, name ); -	    unpackVariant( strings, in, value ); -	    // ### do something with value.asStringList() -	    break; -	case Object_FontProperty: -	    { -		TQFont font; -		TQString family; -		TQ_UINT16 pointSize; -		TQ_UINT8 fontFlags; - -		unpackCString( strings, in, name ); -		in >> fontFlags; - -		if ( fontFlags & Font_Family ) { -		    unpackString( strings, in, family ); -		    font.setFamily( family ); -		} -		if ( fontFlags & Font_PointSize ) { -		    unpackUInt16( in, pointSize ); -		    font.setPointSize( pointSize ); -		} -		if ( fontFlags & Font_Bold ) -		    font.setBold( TRUE ); -		if ( fontFlags & Font_Italic ) -		    font.setItalic( TRUE ); -		if ( fontFlags & Font_Underline ) -		    font.setUnderline( TRUE ); -		if ( fontFlags & Font_StrikeOut ) -		    font.setStrikeOut( TRUE ); - -		if ( obj != 0 ) -		    setProperty( obj, name, font ); -	    } -	    break; -	case Object_GridCell: -	    unpackUInt16( in, column ); -	    unpackUInt16( in, row ); -	    unpackUInt16( in, colspan ); -	    unpackUInt16( in, rowspan ); -	    break; -	case Object_Item: -	    inputItem( strings, in, obj ); -	    break; -	case Object_MenuItem: -	    inputMenuItem( objects, strings, in, (TQMenuBar *) widget ); -	    break; -	case Object_PaletteProperty: -	    { -		TQPalette palette; -		TQColorGroup colorGroup; -		TQColor color; -		int role = -1; - -		unpackCString( strings, in, name ); - -		in >> paletteTag; -		while ( !in.atEnd() && paletteTag != Palette_End ) { -		    switch ( paletteTag ) { -		    case Palette_Active: -			palette.setActive( colorGroup ); -			role = -1; -			break; -		    case Palette_Inactive: -			palette.setInactive( colorGroup ); -			role = -1; -			break; -		    case Palette_Disabled: -			palette.setDisabled( colorGroup ); -			role = -1; -			break; -		    case Palette_Color: -			role++; -			in >> color; -			colorGroup.setColor( (TQColorGroup::ColorRole) role, -					     color ); -			break; -		    case Palette_Pixmap: -			unpackVariant( strings, in, value ); -			colorGroup.setBrush( (TQColorGroup::ColorRole) role, -					     TQBrush(color, value.asPixmap()) ); -			break; -		    default: -			tqFatal( "Corrupt" ); -		    } -		    in >> paletteTag; -		} -		if ( obj != 0 ) -		    setProperty( obj, name, palette ); -	    } -	    break; -	case Object_Row: -	    inputColumnOrRow( strings, in, obj, TRUE ); -	    break; -	case Object_Spacer: -	    inputSpacer( strings, in, layout ); -	    break; -	case Object_Separator: -	    ((TQToolBar *) widget)->addSeparator(); -	    break; -	case Object_SubAction: -	    inputObject( objects, numObjects, strings, in, parentWidget, -			 obj != 0 ? obj : parent, TQACTION_OBJECT_NAME_STRING ); -	    break; -	case Object_SubLayout: -	    inputObject( objects, numObjects, strings, in, parentWidget, obj, -			 TQLAYOUT_OBJECT_NAME_STRING ); -	    break; -	case Object_SubWidget: -	    inputObject( objects, numObjects, strings, in, parentWidget, obj, -			 TQWIDGET_OBJECT_NAME_STRING ); -	    break; -	case Object_TextProperty: -	    unpackCString( strings, in, name ); -	    unpackCString( strings, in, value.asCString() ); -	    unpackCString( strings, in, comment ); -	    str = translate( value.asCString().data(), comment.data() ); - -	    if ( metAttribute > 0 ) { -		if ( name == "title" ) { -		    if ( parent != 0 ) { -			if ( parent->inherits(TQTABWIDGET_OBJECT_NAME_STRING) ) { -			    ((TQTabWidget *) parent)->insertTab( widget, str ); -			} else if ( parent->inherits(TQWIZARD_OBJECT_NAME_STRING) ) { -			    ((TQWizard *) parent)->addPage( widget, str ); -			} -		    } -		} -	    } else { -		if ( obj != 0 ) -		    setProperty( obj, name, str ); -	    } -	    break; -	case Object_VariantProperty: -	    unpackCString( strings, in, name ); -	    unpackVariant( strings, in, value ); - -	    if ( metAttribute > 0 ) { -		if ( name == "id" ) { -		    if ( parent != 0 && parent->inherits(TQWIDGETSTACK_OBJECT_NAME_STRING) ) -			((TQWidgetStack *) parent)->addWidget( widget, value.toInt() ); -		} -	    } else { -		if ( obj != 0 ) -		    setProperty( obj, name, value ); -	    } -	    break; -	default: -	    tqFatal( "Corrupt" ); -	} -	in >> objectTag; -	metAttribute--; -    } - -    if ( parentLayout != 0 ) { -	if ( widget != 0 ) { -	    if ( parentLayout->inherits(TQGRIDLAYOUT_OBJECT_NAME_STRING) ) { -		((TQGridLayout *) parentLayout)->addMultiCellWidget( -			widget, row, row + rowspan - 1, column, -			column + colspan - 1 ); -	    } else { -		((TQBoxLayout *) parentLayout)->addWidget( widget ); -	    } -	} else if ( layout != 0 ) { -	    if ( parentLayout->inherits(TQGRIDLAYOUT_OBJECT_NAME_STRING) ) { -		((TQGridLayout *) parentLayout)->addMultiCellLayout( -			layout, row, row + rowspan - 1, column, -			column + colspan - 1 ); -	    } -	} -    } -    return obj; -} - -TQWidget *TQWidgetFactory::createFromUibFile( TQDataStream& in, -	TQObject * /* connector */ , TQWidget *parent, const char *name ) -{ -#define END_OF_BLOCK() \ -	( in.atEnd() || in.device()->at() >= nextBlock ) - -    TQ_UINT8 lf; -    TQ_UINT8 cr; -    in >> lf; -    in >> cr; -    if ( lf != '\n' || cr != '\r' ) { -	tqWarning( "File corrupted" ); -	return 0; -    } - -    TQ_UINT8 qdatastreamVersion; -    in >> qdatastreamVersion; -    if ( (int) qdatastreamVersion > in.version() ) { -	tqWarning( "Incompatible version of TQt" ); -	return 0; -    } -    in.setVersion( qdatastreamVersion ); - -    UibStrTable strings; -    TQObject **objects = 0; -    int numObjects = 0; - -    TQ_UINT8 blockType; -    TQ_UINT32 blockSize; - -    in >> blockType; -    while ( !in.atEnd() && blockType != Block_End ) { -	unpackUInt32( in, blockSize ); -	TQIODevice::Offset nextBlock = in.device()->at() + blockSize; - -	switch ( blockType ) { -	case Block_Actions: -	    inputObject( objects, numObjects, strings, in, toplevel, TQT_TQOBJECT(toplevel) ); -	    break; -	case Block_Buddies: -	    { -		TQ_UINT16 labelNo; -		TQ_UINT16 buddyNo; - -		do { -		    unpackUInt16( in, labelNo ); -		    unpackUInt16( in, buddyNo ); -		    TQLabel *label = -			(TQLabel *) objects[labelNo]->tqt_cast( TQLABEL_OBJECT_NAME_STRING ); -		    if ( label != 0 ) -			label->setBuddy( (TQWidget *) objects[buddyNo] ); -		} while ( !END_OF_BLOCK() ); -	    } -	    break; -	case Block_Connections: -	    { -		TQString language = "C++"; -		TQ_UINT16 senderNo = 0; -		TQString signal = "clicked()"; -		TQ_UINT16 receiverNo = 0; -		TQString slot = "accept()"; -		TQ_UINT8 connectionFlags; - -		do { -		    in >> connectionFlags; -		    if ( connectionFlags & Connection_Language ) -			unpackString( strings, in, language ); -		    if ( connectionFlags & Connection_Sender ) -			unpackUInt16( in, senderNo ); -		    if ( connectionFlags & Connection_Signal ) -			unpackStringSplit( strings, in, signal ); -		    if ( connectionFlags & Connection_Receiver ) -			unpackUInt16( in, receiverNo ); -		    if ( connectionFlags & Connection_Slot ) -			unpackStringSplit( strings, in, slot ); -		    // ### -#if 0 -		    tqWarning( "connect( %p, %s, %p, %s )", objects[senderNo], -			      signal.latin1(), objects[receiverNo], -			      slot.latin1() ); -#endif -		} while ( !END_OF_BLOCK() ); -	    } -	    break; -	case Block_Functions: -	    // ### -	    tqWarning( "Block_Functions not supported" ); -	    in.device()->at( nextBlock ); -	    break; -	case Block_Images: -	    { -		TQString format; -		TQ_UINT32 length; -		TQByteArray data; -		Image image; - -		do { -		    unpackString( strings, in, image.name ); -		    unpackString( strings, in, format ); -		    unpackUInt32( in, length ); -		    unpackByteArray( in, data ); -		    image.img = loadImageData( format, length, data ); -		    images += image; -		} while ( !END_OF_BLOCK() ); -	    } -	    break; -	case Block_Intro: -	    { -		TQ_INT16 defaultMargin; -		TQ_INT16 defaultSpacing; -		TQ_UINT16 maxObjects; -		TQ_UINT8 introFlags; - -		in >> introFlags; -		in >> defaultMargin; -		in >> defaultSpacing; -		unpackUInt16( in, maxObjects ); -		unpackCString( strings, in, d->translationContext ); - -		if ( introFlags & Intro_Pixmapinproject ) -		    usePixmapCollection = TRUE; -		if ( defaultMargin != -32768 ) -		    defMargin = defaultMargin; -		if ( defaultSpacing != -32768 ) -		    defSpacing = defaultSpacing; -		objects = new TQObject *[maxObjects]; -	    } -	    break; -	case Block_Menubar: -	    inputObject( objects, numObjects, strings, in, toplevel, TQT_TQOBJECT(toplevel), -			 TQMENUBAR_OBJECT_NAME_STRING ); -	    break; -	case Block_Slots: -	    { -		TQString language; -		TQString slot; - -		do { -		    unpackString( strings, in, language ); -		    unpackStringSplit( strings, in, slot ); -		} while ( !END_OF_BLOCK() ); -	    } -	    break; -	case Block_Strings: -	    strings.readBlock( in, blockSize ); -	    break; -	case Block_Tabstops: -	    { -		TQ_UINT16 beforeNo; -		TQ_UINT16 afterNo; - -		unpackUInt16( in, beforeNo ); -		while ( !END_OF_BLOCK() ) { -		    unpackUInt16( in, afterNo ); -		    toplevel->setTabOrder( (TQWidget *) objects[beforeNo], -					   (TQWidget *) objects[afterNo] ); -		    beforeNo = afterNo; -		} -	    } -	    break; -	case Block_Toolbars: -	    do { -		inputObject( objects, numObjects, strings, in, toplevel, -			     TQT_TQOBJECT(toplevel), TQTOOLBAR_OBJECT_NAME_STRING ); -	    } while ( !END_OF_BLOCK() ); -	    break; -	case Block_Variables: -	    // ### -	    tqWarning( "Block_Variables not supported" ); -	    in.device()->at( nextBlock ); -	    break; -	case Block_Widget: -	    toplevel = (TQWidget *) -		inputObject( objects, numObjects, strings, in, toplevel, TQT_TQOBJECT(parent), -			     TQWIDGET_OBJECT_NAME_STRING ); -	    if ( toplevel != 0 ) -		toplevel->setName( name ); -	    break; -	default: -	    tqWarning( "Version error" ); -	    return 0; -	} -	in >> blockType; -    } -    delete[] objects; -    return toplevel; -} - -/*! Installs a widget factory \a factory, which normally contains -  additional widgets that can then be created using a TQWidgetFactory. -  See createWidget() for further details. -*/ - -void TQWidgetFactory::addWidgetFactory( TQWidgetFactory *factory ) -{ -    widgetFactories.append( factory ); -} - -/*! -    Creates a widget of the type \a className passing \a parent and \a -    name to its constructor. - -    If \a className is a widget in the TQt library, it is directly -    created by this function. If the widget isn't in the TQt library, -    each of the installed widget plugins is asked, in turn, to create -    the widget. As soon as a plugin says it can create the widget it -    is asked to do so. It may occur that none of the plugins can -    create the widget, in which case each installed widget factory is -    asked to create the widget (see addWidgetFactory()). If the widget -    cannot be created by any of these means, 0 is returned. - -    If you have a custom widget, and want it to be created using the -    widget factory, there are two approaches you can use: - -    \list 1 - -    \i Write a widget plugin. This allows you to use the widget in -    \e{TQt Designer} and in this TQWidgetFactory. See the widget plugin -    documentation for further details. (See the "Creating Custom -    Widgets with Plugins" section of the \link designer-manual.book TQt -    Designer manual\endlink for an example. - -    \i Subclass TQWidgetFactory. Then reimplement this function to -    create and return an instance of your custom widget if \a -    className equals the name of your widget, otherwise return 0. Then -    at the beginning of your program where you want to use the widget -    factory to create widgets do a: -    \code -    TQWidgetFactory::addWidgetFactory( new MyWidgetFactory ); -    \endcode -    where MyWidgetFactory is your TQWidgetFactory subclass. - -    \endlist -*/ - -TQWidget *TQWidgetFactory::createWidget( const TQString &className, TQWidget *parent, -				       const char *name ) const -{ -    // create widgets we know -    if ( className == TQPUSHBUTTON_OBJECT_NAME_STRING ) { -	return new TQPushButton( parent, name ); -    } else if ( className == TQTOOLBUTTON_OBJECT_NAME_STRING ) { -	return new TQToolButton( parent, name ); -    } else if ( className == TQCHECKBOX_OBJECT_NAME_STRING ) { -	return new TQCheckBox( parent, name ); -    } else if ( className == TQRADIOBUTTON_OBJECT_NAME_STRING ) { -	return new TQRadioButton( parent, name ); -    } else if ( className == TQGROUPBOX_OBJECT_NAME_STRING ) { -	return new TQGroupBox( parent, name ); -    } else if ( className == TQBUTTONGROUP_OBJECT_NAME_STRING ) { -	return new TQButtonGroup( parent, name ); -    } else if ( className == TQICONVIEW_OBJECT_NAME_STRING ) { -#if !defined(TQT_NO_ICONVIEW) -	return new TQIconView( parent, name ); -#endif -    } else if ( className == TQTABLE_OBJECT_NAME_STRING ) { -#if !defined(TQT_NO_TABLE) -	return new TQTable( parent, name ); -#endif -    } else if ( className == TQLISTBOX_OBJECT_NAME_STRING ) { -	return new TQListBox( parent, name ); -    } else if ( className == TQLISTVIEW_OBJECT_NAME_STRING ) { -	return new TQListView( parent, name ); -    } else if ( className == TQLINEEDIT_OBJECT_NAME_STRING ) { -	return new TQLineEdit( parent, name ); -    } else if ( className == TQSPINBOX_OBJECT_NAME_STRING ) { -	return new TQSpinBox( parent, name ); -    } else if ( className == TQMULTILINEEDIT_OBJECT_NAME_STRING ) { -	return new TQMultiLineEdit( parent, name ); -    } else if ( className == TQLABEL_OBJECT_NAME_STRING || className == "TextLabel" || className == "PixmapLabel" ) { -	return new TQLabel( parent, name ); -    } else if ( className == TQLAYOUTWIDGET_OBJECT_NAME_STRING ) { -	return new TQWidget( parent, name ); -    } else if ( className == TQTABWIDGET_OBJECT_NAME_STRING ) { -	return new TQTabWidget( parent, name ); -    } else if ( className == TQCOMBOBOX_OBJECT_NAME_STRING ) { -	return new TQComboBox( FALSE, parent, name ); -    } else if ( className == TQWIDGET_OBJECT_NAME_STRING ) { -	if ( !qwf_stays_on_top ) -	    return new TQWidget( parent, name ); -	return new TQWidget( parent, name, TQt::WStyle_StaysOnTop ); -    } else if ( className == TQDIALOG_OBJECT_NAME_STRING ) { -	if ( !qwf_stays_on_top ) -	    return new TQDialog( parent, name ); -	return new TQDialog( parent, name, FALSE, TQt::WStyle_StaysOnTop ); -    } else if ( className == TQWIZARD_OBJECT_NAME_STRING ) { -	return  new TQWizard( parent, name ); -    } else if ( className == TQLCDNUMBER_OBJECT_NAME_STRING ) { -	return new TQLCDNumber( parent, name ); -    } else if ( className == TQPROGRESSBAR_OBJECT_NAME_STRING ) { -	return new TQProgressBar( parent, name ); -    } else if ( className == TQTEXTVIEW_OBJECT_NAME_STRING ) { -	return new TQTextView( parent, name ); -    } else if ( className == TQTEXTBROWSER_OBJECT_NAME_STRING ) { -	return new TQTextBrowser( parent, name ); -    } else if ( className == TQDIAL_OBJECT_NAME_STRING ) { -	return new TQDial( parent, name ); -    } else if ( className == TQSLIDER_OBJECT_NAME_STRING ) { -	return new TQSlider( parent, name ); -    } else if ( className == TQFRAME_OBJECT_NAME_STRING ) { -	return new TQFrame( parent, name ); -    } else if ( className == TQSPLITTER_OBJECT_NAME_STRING ) { -	return new TQSplitter( parent, name ); -    } else if ( className == "Line" ) { -	TQFrame *f = new TQFrame( parent, name ); -	f->setFrameStyle( TQFrame::HLine | TQFrame::Sunken ); -	return f; -    } else if ( className == TQTEXTEDIT_OBJECT_NAME_STRING ) { -	return new TQTextEdit( parent, name ); -    } else if ( className == TQDATEEDIT_OBJECT_NAME_STRING ) { -	return new TQDateEdit( parent, name ); -    } else if ( className == TQTIMEEDIT_OBJECT_NAME_STRING ) { -	return new TQTimeEdit( parent, name ); -    } else if ( className == TQDATETIMEEDIT_OBJECT_NAME_STRING ) { -	return new TQDateTimeEdit( parent, name ); -    } else if ( className == TQSCROLLBAR_OBJECT_NAME_STRING ) { -	return new TQScrollBar( parent, name ); -    } else if ( className == TQPOPUPMENU_OBJECT_NAME_STRING ) { -	return new TQPopupMenu( parent, name ); -    } else if ( className == TQWIDGETSTACK_OBJECT_NAME_STRING ) { -	return new TQWidgetStack( parent, name ); -    } else if ( className == TQTOOLBOX_OBJECT_NAME_STRING ) { -	return new TQToolBox( parent, name ); -    } else if ( className == TQVBOX_OBJECT_NAME_STRING ) { -	return new TQVBox( parent, name ); -    } else if ( className == TQHBOX_OBJECT_NAME_STRING ) { -	return new TQHBox( parent, name ); -    } else if ( className == TQGRID_OBJECT_NAME_STRING ) { -	return new TQGrid( 4, parent, name ); -    } else if ( className == TQMAINWINDOW_OBJECT_NAME_STRING ) { -	TQMainWindow *mw = 0; -	if ( !qwf_stays_on_top ) -	    mw = new TQMainWindow( parent, name ); -	else -	    mw = new TQMainWindow( parent, name, TQt::WType_TopLevel | TQt::WStyle_StaysOnTop ); -	mw->setCentralWidget( new TQWidget( mw, "qt_central_widget" ) ); -	mw->centralWidget()->show(); -	(void)mw->statusBar(); -	return mw; - -    } -#if !defined(TQT_NO_SQL) -    else if ( className == TQDATATABLE_OBJECT_NAME_STRING ) { -	return new TQDataTable( parent, name ); -    } else if ( className == TQDATABROWSER_OBJECT_NAME_STRING ) { -	return new QDesignerDataBrowser2( parent, name ); -    } else if ( className == TQDATAVIEW_OBJECT_NAME_STRING ) { -	return new QDesignerDataView2( parent, name ); -    } -#endif - -    setupPluginDir(); -    // try to create it using the loaded widget plugins -    if ( !widgetInterfaceManager ) -	widgetInterfaceManager = -	    new TQPluginManager<WidgetInterface>( IID_Widget, TQApplication::libraryPaths(), -						 *qwf_plugin_dir ); - -    TQInterfacePtr<WidgetInterface> iface = 0; -    widgetInterfaceManager->queryInterface( className, &iface ); -    if ( iface ) { -	TQWidget *w = iface->create( className, parent, name ); -	if ( w ) { -	    d->customWidgets.replace( className.latin1(), new bool(TRUE) ); -	    return w; -	} -    } - -    // hope we have a factory which can do it -    for ( TQWidgetFactory* f = widgetFactories.first(); f; f = widgetFactories.next() ) { -	TQWidget *w = f->createWidget( className, parent, name ); -	if ( w ) -	    return w; -    } - -    // no success -    return 0; -} - -/*! Returns the names of the widgets, which this facory can create. */ - -TQStringList TQWidgetFactory::widgets() -{ -    setupWidgetListAndMap(); -    return *availableWidgetList; -} - -/*! Returns whether this widget factory can create the widget \a -  widget */ - -bool TQWidgetFactory::supportsWidget( const TQString &widget ) -{ -    setupWidgetListAndMap(); -    return ( availableWidgetMap->find( widget ) != availableWidgetMap->end() ); -} - -TQWidget *TQWidgetFactory::createWidgetInternal( const TQDomElement &e, TQWidget *parent, -					       TQLayout* layout, const TQString &classNameArg ) -{ -    d->lastItem = 0; -    TQDomElement n = e.firstChild().toElement(); -    TQWidget *w = 0; // the widget that got created -    TQObject *obj = 0; // gets the properties - -    TQString className = classNameArg; - -    int row = e.attribute( "row" ).toInt(); -    int col = e.attribute( "column" ).toInt(); -    int rowspan = e.attribute( "rowspan" ).toInt(); -    int colspan = e.attribute( "colspan" ).toInt(); -    if ( rowspan < 1 ) -	rowspan = 1; -    if ( colspan < 1 ) -	colspan = 1; - -    bool isTQLayoutWidget = FALSE; - -    if ( !className.isEmpty() ) { -	if ( !layout && className  == TQLAYOUTWIDGET_OBJECT_NAME_STRING ) { -	    className = TQWIDGET_OBJECT_NAME_STRING; -	    isTQLayoutWidget = TRUE; -	} -	if ( layout && className == TQLAYOUTWIDGET_OBJECT_NAME_STRING ) { -	    // hide layout widgets -	    w = parent; -	} else { -	    obj = TQT_TQOBJECT(TQWidgetFactory::createWidget( className, parent, 0 )); -	    if ( !obj ) -		return 0; -	    w = (TQWidget*)obj; -	    if ( !toplevel ) -		toplevel = w; -	    if ( w->inherits( TQMAINWINDOW_OBJECT_NAME_STRING ) ) -		w = ( (TQMainWindow*)w )->centralWidget(); -	    if ( layout ) { -		switch( layoutType( layout ) ) { -		case HBox: -		    ( (TQHBoxLayout*)layout )->addWidget( w ); -		    break; -		case VBox: -		    ( (TQVBoxLayout*)layout )->addWidget( w ); -		    break; -		case Grid: -		    ( (TQGridLayout*)layout )->addMultiCellWidget( w, row, row + rowspan - 1, -								  col, col + colspan - 1 ); -		    break; -		default: -		    break; -		} -	    } - -	    layout = 0; -	} -    } -#ifdef TQT_CONTAINER_CUSTOM_WIDGETS -    TQString parentClassName = parent ? parent->className() : 0; -    bool isPlugin = parent ? !!d->customWidgets.find( parent->className() ) : FALSE; -    if ( isPlugin ) -	tqWarning( "####### loading custom container widgets without page support not implemented!" ); -    // ### TODO loading for custom container widgets without pages -#endif -     -    int idx = 0; -    while ( !n.isNull() ) { -	if ( n.tagName() == "spacer" ) { -	    createSpacer( n, layout ); -	} else if ( n.tagName() == "widget" ) { -	    TQMap< TQString, TQString> *oldDbControls = dbControls; -	    createWidgetInternal( n, w, layout, n.attribute( "class", TQWIDGET_OBJECT_NAME_STRING ) ); -	    dbControls = oldDbControls; -	} else if ( n.tagName() == "hbox" ) { -	    TQLayout *parentLayout = layout; -	    if ( layout && layout->inherits( TQGRIDLAYOUT_OBJECT_NAME_STRING ) ) -		layout = createLayout( 0, 0, TQWidgetFactory::HBox, isTQLayoutWidget ); -	    else -		layout = createLayout( w, layout, TQWidgetFactory::HBox, isTQLayoutWidget ); -	    obj = TQT_TQOBJECT(layout); -	    n = n.firstChild().toElement(); -	    if ( parentLayout && parentLayout->inherits( TQGRIDLAYOUT_OBJECT_NAME_STRING ) ) -		( (TQGridLayout*)parentLayout )->addMultiCellLayout( layout, row, -				    row + rowspan - 1, col, col + colspan - 1 ); -	    continue; -	} else if ( n.tagName() == "grid" ) { -	    TQLayout *parentLayout = layout; -	    if ( layout && layout->inherits( TQGRIDLAYOUT_OBJECT_NAME_STRING ) ) -		layout = createLayout( 0, 0, TQWidgetFactory::Grid, isTQLayoutWidget ); -	    else -		layout = createLayout( w, layout, TQWidgetFactory::Grid, isTQLayoutWidget ); -	    obj = TQT_TQOBJECT(layout); -	    n = n.firstChild().toElement(); -	    if ( parentLayout && parentLayout->inherits( TQGRIDLAYOUT_OBJECT_NAME_STRING ) ) -		( (TQGridLayout*)parentLayout )->addMultiCellLayout( layout, row, -				    row + rowspan - 1, col, col + colspan - 1 ); -	    continue; -	} else if ( n.tagName() == "vbox" ) { -	    TQLayout *parentLayout = layout; -	    if ( layout && layout->inherits( TQGRIDLAYOUT_OBJECT_NAME_STRING ) ) -		layout = createLayout( 0, 0, TQWidgetFactory::VBox, isTQLayoutWidget ); -	    else -		layout = createLayout( w, layout, TQWidgetFactory::VBox, isTQLayoutWidget ); -	    obj = TQT_TQOBJECT(layout); -	    n = n.firstChild().toElement(); -	    if ( parentLayout && parentLayout->inherits( TQGRIDLAYOUT_OBJECT_NAME_STRING ) ) -		( (TQGridLayout*)parentLayout )->addMultiCellLayout( layout, row, -				    row + rowspan - 1, col, col + colspan - 1 ); -	    continue; -	} else if ( n.tagName() == "property" && obj ) { -	    setProperty( obj, n.attribute( "name" ), n.firstChild().toElement() ); -	} else if ( n.tagName() == "attribute" && w ) { -	    TQString attrib = n.attribute( "name" ); -	    TQVariant v = DomTool::elementToVariant( n.firstChild().toElement(), TQVariant() ); -	    if ( parent ) { -		if ( parent->inherits( TQTABWIDGET_OBJECT_NAME_STRING ) ) { -		    if ( attrib == "title" ) -			( (TQTabWidget*)parent )->insertTab( w, translate( v.toString() ) ); -		} else if ( parent->inherits( TQWIDGETSTACK_OBJECT_NAME_STRING ) ) { -		    if ( attrib == "id" ) -			( (TQWidgetStack*)parent )->addWidget( w, v.toInt() ); -		} else if ( parent->inherits( TQTOOLBOX_OBJECT_NAME_STRING ) ) { -		    if ( attrib == "label" ) -			( (TQToolBox*)parent )->addItem( w, v.toString() ); -		} else if ( parent->inherits( TQWIZARD_OBJECT_NAME_STRING ) ) { -		    if ( attrib == "title" ) -			( (TQWizard*)parent )->addPage( w, translate( v.toString() ) ); -#ifdef TQT_CONTAINER_CUSTOM_WIDGETS -		} else if ( isPlugin ) { -		    if ( attrib == "label" ) { -			WidgetInterface *iface = 0; -			widgetInterfaceManager->queryInterface( parentClassName, &iface ); -			if ( iface ) { -			    TQWidgetContainerInterfacePrivate *iface2 = 0; -			    iface->queryInterface( IID_TQWidgetContainer, -						   (TQUnknownInterface**)&iface2 ); -			    if ( iface2 ) { -				iface2->insertPage( parentClassName, -						    (TQWidget*)parent, translate( v.toString() ), -1, w ); -				iface2->release(); -			    } -			    iface->release(); -			} -		    } -#endif -		} -	    } -	} else if ( n.tagName() == "item" ) { -	    createItem( n, w ); -	} else if ( n.tagName() == "column" || n.tagName() == "row" ) { -	    createColumn( n, w ); -	} - -	n = n.nextSibling().toElement(); -	idx++; -    } - -    return w; -} - -TQLayout *TQWidgetFactory::createLayout( TQWidget *widget, TQLayout* layout, -				       LayoutType type, bool isTQLayoutWidget ) -{ -    int spacing = defSpacing; -    int margin = defMargin; - -    if ( layout || !widget || isTQLayoutWidget ) -	margin = 0; - -    if ( !layout && widget && widget->inherits( TQTABWIDGET_OBJECT_NAME_STRING ) ) -	widget = ((TQTabWidget*)widget)->currentPage(); - -    if ( !layout && widget && widget->inherits( TQWIZARD_OBJECT_NAME_STRING ) ) -	widget = ((TQWizard*)widget)->currentPage(); - -    if ( !layout && widget && widget->inherits( TQWIDGETSTACK_OBJECT_NAME_STRING ) ) -	widget = ((TQWidgetStack*)widget)->visibleWidget(); - -    if ( !layout && widget && widget->inherits( TQTOOLBOX_OBJECT_NAME_STRING ) ) -	widget = ((TQToolBox*)widget)->currentItem(); - -    TQLayout *l = 0; -    int align = 0; -    if ( !layout && widget && widget->inherits( TQGROUPBOX_OBJECT_NAME_STRING ) ) { -	TQGroupBox *gb = (TQGroupBox*)widget; -	gb->setColumnLayout( 0, Qt::Vertical ); -	layout = gb->layout(); -	layout->setMargin( 0 ); -	layout->setSpacing( 0 ); -	align = TQt::AlignTop; -    } -    if ( layout ) { -	switch ( type ) { -        case HBox: -	    l = new TQHBoxLayout( layout ); -	    break; -	case VBox: -	    l = new TQVBoxLayout( layout ); -	    break; -	case Grid: -	    l = new TQGridLayout( layout ); -	    break; -	default: -	    return 0; -	} -    } else { -	switch ( type ) { -	case HBox: -	    l = new TQHBoxLayout( widget ); -	    break; -	case VBox: -	    l = new TQVBoxLayout( widget ); -	    break; -	case Grid: -	    l = new TQGridLayout( widget ); -	    break; -	default: -	    return 0; -	} -    } -    l->setAlignment( align ); -    l->setMargin( margin ); -    l->setSpacing( spacing ); -    return l; -} - -TQWidgetFactory::LayoutType TQWidgetFactory::layoutType( TQLayout *layout ) const -{ -    if ( layout->inherits( TQHBOXLAYOUT_OBJECT_NAME_STRING ) ) -	return HBox; -    else if ( layout->inherits( TQVBOXLAYOUT_OBJECT_NAME_STRING ) ) -	return VBox; -    else if ( layout->inherits( TQGRIDLAYOUT_OBJECT_NAME_STRING ) ) -	return Grid; -    return NoLayout; -} - -void TQWidgetFactory::setProperty( TQObject* obj, const TQString &prop, -				  TQVariant value ) -{ -    int offset = obj->metaObject()->findProperty( prop.ascii(), TRUE ); - -    if ( offset != -1 ) { -	if ( prop == "geometry" && TQT_BASE_OBJECT(obj) == TQT_BASE_OBJECT(toplevel) ) { -	    toplevel->resize( value.toRect().size() ); -	} else if ( prop == "accel" ) { -	    obj->setProperty( prop.ascii(), TQVariant(value.toKeySequence()) ); -	} else { -	    if ( value.type() == TQVariant::String || -		 value.type() == TQVariant::CString ) { -		const TQMetaProperty *metaProp = -			obj->metaObject()->property( offset, TRUE ); -		if ( metaProp != 0 && metaProp->isEnumType() ) { -		    if ( metaProp->isSetType() ) { -			TQStrList flagsCStr; -			TQStringList flagsStr = -			    TQStringList::split( '|', value.asString() ); -			TQStringList::ConstIterator f = flagsStr.begin(); -			while ( f != flagsStr.end() ) { -			    flagsCStr.append( (*f).ascii() ); -			    ++f; -			} -			value = TQVariant( metaProp->keysToValue(flagsCStr) ); -		    } else { -			TQCString key = value.toCString(); -			value = TQVariant( metaProp->keyToValue(key) ); -		    } -		} -	    } -	    obj->setProperty( prop.ascii(), value ); -	} -    } else { -	if ( obj->isWidgetType() ) { -	    if ( prop == "toolTip" ) { -		if ( !value.toString().isEmpty() ) -		    TQToolTip::add( (TQWidget*)obj, translate( value.toString() ) ); -	    } else if ( prop == "whatsThis" ) { -		if ( !value.toString().isEmpty() ) -		    TQWhatsThis::add( (TQWidget*)obj, translate( value.toString() ) ); -	    } else if ( prop == "buddy" ) { -		buddies.insert( obj->name(), value.toCString() ); -	    } else if ( prop == "buttonGroupId" ) { -		if ( obj->inherits( TQBUTTON_OBJECT_NAME_STRING ) && obj->parent()->inherits( TQBUTTONGROUP_OBJECT_NAME_STRING ) ) -		    ( (TQButtonGroup*)obj->parent() )->insert( (TQButton*)obj, value.toInt() ); -#ifndef TQT_NO_SQL -	    } else if ( prop == "database" && !obj->inherits( TQDATAVIEW_OBJECT_NAME_STRING ) -		 && !obj->inherits( TQDATABROWSER_OBJECT_NAME_STRING ) ) { -		const TQStringList& lst = value.asStringList(); -		if ( lst.count() > 2 ) { -		    if ( dbControls ) -			dbControls->insert( obj->name(), lst[ 2 ] ); -		} else if ( lst.count() == 2 ) { -		    dbTables.insert( obj->name(), lst ); -		} -	    } else if ( prop == "database" ) { -		const TQStringList& lst = value.asStringList(); -		if ( lst.count() == 2 && obj->inherits( TQWIDGET_OBJECT_NAME_STRING ) ) { -		    SqlWidgetConnection conn( lst[ 0 ], lst[ 1 ] ); -		    sqlWidgetConnections.insert( (TQWidget*)obj, conn ); -		    dbControls = conn.dbControls; -		} -#endif -	    } else if ( prop == "frameworkCode" ) { -		if ( value.isValid() && !value.toBool() ) -		    noDatabaseWidgets << obj->name(); -	    } -	} -    } -} - -void TQWidgetFactory::setProperty( TQObject* widget, const TQString &prop, const TQDomElement &e ) -{ -    TQString comment; -    TQVariant value( DomTool::elementToVariant( e, TQVariant(), comment ) ); - -    if ( e.tagName() == "string" ) { -	value = translate( value.asString(), comment ); -    } else if ( e.tagName() == "pixmap" ) { -	TQPixmap pix = loadPixmap( value.toString() ); -	if ( !pix.isNull() ) -	    value = pix; -    } else if ( e.tagName() == "iconset" ) { -	TQPixmap pix = loadPixmap( value.toString() ); -	if ( !pix.isNull() ) -	    value = TQIconSet( pix ); -    } else if ( e.tagName() == "image" ) { -	value = loadFromCollection( value.toString() ); -    } else if ( e.tagName() == "palette" ) { -	TQDomElement n = e.firstChild().toElement(); -	TQPalette p; -	while ( !n.isNull() ) { -	    TQColorGroup cg; -	    if ( n.tagName() == "active" ) { -		cg = loadColorGroup( n ); -		p.setActive( cg ); -	    } else if ( n.tagName() == "inactive" ) { -		cg = loadColorGroup( n ); -		p.setInactive( cg ); -	    } else if ( n.tagName() == "disabled" ) { -		cg = loadColorGroup( n ); -		p.setDisabled( cg ); -	    } -	    n = n.nextSibling().toElement(); -	} -	value = p; -    } -    setProperty( widget, prop, value ); -} - -void TQWidgetFactory::createSpacer( const TQDomElement &e, TQLayout *layout ) -{ -    TQDomElement n = e.firstChild().toElement(); -    int row = e.attribute( "row" ).toInt(); -    int col = e.attribute( "column" ).toInt(); -    int rowspan = e.attribute( "rowspan" ).toInt(); -    int colspan = e.attribute( "colspan" ).toInt(); - -    Qt::Orientation orient = Qt::Horizontal; -    int w = 0, h = 0; -    TQSizePolicy::SizeType sizeType = TQSizePolicy::Preferred; -    while ( !n.isNull() ) { -	if ( n.tagName() == "property" ) { -	    TQString prop = n.attribute( "name" ); -	    if ( prop == "orientation" ) { -		if ( n.firstChild().firstChild().toText().data() == "Horizontal" ) -		    orient = Qt::Horizontal; -		else -		    orient = Qt::Vertical; -	    } else if ( prop == "sizeType" ) { -		sizeType = stringToSizeType( n.firstChild().firstChild().toText().data() ); -	    } else if ( prop == "sizeHint" ) { -		w = n.firstChild().firstChild().firstChild().toText().data().toInt(); -		h = n.firstChild().firstChild().nextSibling().firstChild().toText().data().toInt(); -	    } -	} -	n = n.nextSibling().toElement(); -    } - -    if ( rowspan < 1 ) -	rowspan = 1; -    if ( colspan < 1 ) -	colspan = 1; -    TQSpacerItem *item = new TQSpacerItem( w, h, orient == Qt::Horizontal ? sizeType : TQSizePolicy::Minimum, -					 orient == Qt::Vertical ? sizeType : TQSizePolicy::Minimum ); -    if ( layout ) { -	if ( layout->inherits( TQBOXLAYOUT_OBJECT_NAME_STRING ) ) -	    ( (TQBoxLayout*)layout )->addItem( item ); -	else -	    ( (TQGridLayout*)layout )->addMultiCell( item, row, row + rowspan - 1, col, col + colspan - 1, -						    orient == Qt::Horizontal ? TQt::AlignVCenter : TQt::AlignHCenter ); -    } -} - -static TQImage loadImageData( TQDomElement &n2 ) -{ -    TQString format = n2.attribute( "format", "PNG" ); -    TQString hex = n2.firstChild().toText().data(); -    int n = hex.length() / 2; -    TQByteArray data( n ); -    for ( int i = 0; i < n; i++ ) -	data[i] = (char) hex.mid( 2 * i, 2 ).toUInt( 0, 16 ); -    return loadImageData( format, n2.attribute("length").toULong(), data ); -} - -void TQWidgetFactory::loadImageCollection( const TQDomElement &e ) -{ -    TQDomElement n = e.firstChild().toElement(); -    while ( !n.isNull() ) { -	if ( n.tagName() == "image" ) { -	    Image img; -	    img.name =  n.attribute( "name" ); -	    TQDomElement n2 = n.firstChild().toElement(); -	    while ( !n2.isNull() ) { -		if ( n2.tagName() == "data" ) -		    img.img = loadImageData( n2 ); -		n2 = n2.nextSibling().toElement(); -	    } -	    images.append( img ); -	    n = n.nextSibling().toElement(); -	} -    } -} - -TQImage TQWidgetFactory::loadFromCollection( const TQString &name ) -{ -    TQValueList<Image>::Iterator it = images.begin(); -    for ( ; it != images.end(); ++it ) { -	if ( ( *it ).name == name ) -	    return ( *it ).img; -    } -    return TQImage(); -} - -TQPixmap TQWidgetFactory::loadPixmap( const TQString& name ) -{ -    TQPixmap pix; -    if ( usePixmapCollection ) { -	const TQMimeSource *m = TQMimeSourceFactory::defaultFactory()->data( name ); -	if ( m ) -	    TQImageDrag::decode( m, pix ); -    } else { -	pix.convertFromImage( loadFromCollection(name) ); -    } -    return pix; -} - -TQPixmap TQWidgetFactory::loadPixmap( const TQDomElement &e ) -{ -    return loadPixmap( e.firstChild().toText().data() ); -} - -TQColorGroup TQWidgetFactory::loadColorGroup( const TQDomElement &e ) -{ -    TQColorGroup cg; -    int r = -1; -    TQDomElement n = e.firstChild().toElement(); -    TQColor col; -    while ( !n.isNull() ) { -	if ( n.tagName() == "color" ) { -	    r++; -	    cg.setColor( (TQColorGroup::ColorRole)r, (col = DomTool::readColor( n ) ) ); -	} else if ( n.tagName() == "pixmap" ) { -	    TQPixmap pix = loadPixmap( n ); -	    cg.setBrush( (TQColorGroup::ColorRole)r, TQBrush( col, pix ) ); -	} -	n = n.nextSibling().toElement(); -    } -    return cg; -} - -struct Connection -{ -    TQObject *sender, *receiver; -    TQCString signal, slot; -    bool operator==( const Connection &c ) const { -	return sender == c.sender && receiver == c.receiver && -	       signal == c.signal && slot == c.slot ; -    } - -    Connection() : sender( 0 ), receiver( 0 ) { } -}; - -class NormalizeObject : public TQObject -{ -public: -    NormalizeObject() : TQObject() {} -    static TQCString normalizeSignalSlot( const char *signalSlot ) { return TQObject::normalizeSignalSlot( signalSlot ); } -}; - -void TQWidgetFactory::loadConnections( const TQDomElement &e, TQObject *connector ) -{ -    TQDomElement n = e.firstChild().toElement(); -    while ( !n.isNull() ) { -	if ( n.tagName() == "connection" ) { -	    TQString lang = n.attribute( "language", "C++" ); -	    TQDomElement n2 = n.firstChild().toElement(); -	    Connection conn; -	    while ( !n2.isNull() ) { -		if ( n2.tagName() == "sender" ) { -		    TQString name = n2.firstChild().toText().data(); -		    if ( name == "this" || qstrcmp( toplevel->name(), name.ascii() ) == 0 ) { -			conn.sender = TQT_TQOBJECT(toplevel); -		    } else { -			if ( name == "this" ) -			    name = toplevel->name(); -			TQObjectList *l = toplevel->queryList( 0, name.ascii(), FALSE ); -			if ( l ) { -			    if ( l->first() ) -				conn.sender = l->first(); -			    delete l; -			} -		    } -		    if ( !conn.sender ) -			conn.sender = findAction( name ); -		} else if ( n2.tagName() == "signal" ) { -		    conn.signal = n2.firstChild().toText().data().ascii(); -		} else if ( n2.tagName() == "receiver" ) { -		    TQString name = n2.firstChild().toText().data(); -		    if ( name == "this" || qstrcmp( toplevel->name(), name.ascii() ) == 0 ) { -			conn.receiver = TQT_TQOBJECT(toplevel); -		    } else { -			TQObjectList *l = toplevel->queryList( 0, name.ascii(), FALSE ); -			if ( l ) { -			    if ( l->first() ) -				conn.receiver = l->first(); -			    delete l; -			} -		    } -		} else if ( n2.tagName() == "slot" ) { -		    conn.slot = n2.firstChild().toText().data().ascii(); -		} -		n2 = n2.nextSibling().toElement(); -	    } - -	    conn.signal = NormalizeObject::normalizeSignalSlot( conn.signal ); -	    conn.slot = NormalizeObject::normalizeSignalSlot( conn.slot ); - -	    if ( !conn.sender || !conn.receiver ) { -		n = n.nextSibling().toElement(); -		continue; -	    } - -	    TQObject *sender = 0, *receiver = 0; -	    TQObjectList *l = toplevel->queryList( 0, conn.sender->name(), FALSE ); -	    if ( qstrcmp( conn.sender->name(), toplevel->name() ) == 0 ) { -		sender = TQT_TQOBJECT(toplevel); -	    } else { -		if ( !l || !l->first() ) { -		    delete l; -		    n = n.nextSibling().toElement(); -		    continue; -		} -		sender = l->first(); -		delete l; -	    } -	    if ( !sender ) -		sender = findAction( conn.sender->name() ); - -	    if ( qstrcmp( conn.receiver->name(), toplevel->name() ) == 0 ) { -		receiver = TQT_TQOBJECT(toplevel); -	    } else { -		l = toplevel->queryList( 0, conn.receiver->name(), FALSE ); -		if ( !l || !l->first() ) { -		    delete l; -		    n = n.nextSibling().toElement(); -		    continue; -		} -		receiver = l->first(); -		delete l; -	    } - -	    TQString s = "2""%1"; -	    s = s.arg( conn.signal.data() ); -	    TQString s2 = "1""%1"; -	    s2 = s2.arg( conn.slot.data() ); - -	    TQStrList signalList = sender->metaObject()->signalNames( TRUE ); -	    TQStrList slotList = receiver->metaObject()->slotNames( TRUE ); - -	    // if this is a connection to a custom slot and we have a connector, try this as receiver -	    if ( slotList.find( conn.slot ) == -1 && (TQT_BASE_OBJECT(receiver) == TQT_BASE_OBJECT(toplevel)) && connector ) { -		slotList = connector->metaObject()->slotNames( TRUE ); -		receiver = connector; -	    } - -	    // avoid warnings -	    if ( signalList.find( conn.signal ) == -1 || -		 slotList.find( conn.slot ) == -1 ) { -		n = n.nextSibling().toElement(); -		continue; -	    } -	    TQObject::connect( sender, s.ascii(), receiver, s2.ascii() ); -	} -	n = n.nextSibling().toElement(); -    } -} - -void TQWidgetFactory::loadTabOrder( const TQDomElement &e ) -{ -    TQWidget *last = 0; -    TQDomElement n = e.firstChild().toElement(); -    while ( !n.isNull() ) { -	if ( n.tagName() == "tabstop" ) { -	    TQString name = n.firstChild().toText().data(); -	    TQObjectList *l = toplevel->queryList( 0, name.ascii(), FALSE ); -	    if ( l ) { -		if ( l->first() ) { -		    TQWidget *w = (TQWidget*)l->first(); -		    if ( last ) -			toplevel->setTabOrder( last, w ); -		    last = w; -		} -		delete l; -	    } -	} -	n = n.nextSibling().toElement(); -    } -} - -void TQWidgetFactory::createListViewColumn( TQListView *lv, const TQString& txt, -					   const TQPixmap& pix, bool clickable, -					   bool resizable ) -{ -    if ( pix.isNull() ) { -	lv->addColumn( txt ); -    } else { -	lv->addColumn( pix, txt ); -    } - -    int i = lv->header()->count() - 1; -    if ( !pix.isNull() ) -	lv->header()->setLabel( i, pix, txt ); -    if ( !clickable ) -	lv->header()->setClickEnabled( clickable, i ); -    if ( !resizable ) -	lv->header()->setResizeEnabled( resizable, i ); -} - -#ifndef TQT_NO_TABLE -void TQWidgetFactory::createTableColumnOrRow( TQTable *table, const TQString& txt, -					     const TQPixmap& pix, -					     const TQString& field, bool isRow ) -{ -#ifndef TQT_NO_SQL -    bool isSql = table->inherits( TQDATATABLE_OBJECT_NAME_STRING ); -#endif -    if ( isRow ) -	table->setNumRows( table->numRows() + 1 ); -    else { -#ifndef TQT_NO_SQL -	if ( !isSql ) -#endif -	    table->setNumCols( table->numCols() + 1 ); -    } - -    TQValueList<Field> fieldMap; -    if ( fieldMaps.find( table ) != fieldMaps.end() ) { -	fieldMap = *fieldMaps.find( table ); -	fieldMaps.remove( table ); -    } - -    int i = isRow ? table->numRows() - 1 : table->numCols() - 1; -    TQHeader *h = !isRow ? table->horizontalHeader() : table->verticalHeader(); -    if ( !pix.isNull() ) { -#ifndef TQT_NO_SQL -	if ( isSql ) -	    ((TQDataTable*)table)->addColumn( field, txt, -1, pix ); -	else -#endif -	    h->setLabel( i, pix, txt ); -    } else { -#ifndef TQT_NO_SQL -	if ( isSql ) -	    ((TQDataTable*)table)->addColumn( field, txt ); -	else -#endif -	    h->setLabel( i, txt ); -    } -    if ( !isRow && !field.isEmpty() ) { -	fieldMap.append( Field( txt, pix, field ) ); -	fieldMaps.insert( table, fieldMap ); -    } - -} -#endif - -void TQWidgetFactory::createColumn( const TQDomElement &e, TQWidget *widget ) -{ -    if ( widget->inherits( TQLISTVIEW_OBJECT_NAME_STRING ) && e.tagName() == "column" ) { -	TQListView *lv = (TQListView*)widget; -	TQDomElement n = e.firstChild().toElement(); -	TQPixmap pix; -	TQString txt; -	bool clickable = TRUE, resizable = TRUE; -	while ( !n.isNull() ) { -	    if ( n.tagName() == "property" ) { -		TQString attrib = n.attribute( "name" ); -		TQVariant v = DomTool::elementToVariant( n.firstChild().toElement(), TQVariant() ); -		if ( attrib == "text" ) -		    txt = translate( v.toString() ); -		else if ( attrib == "pixmap" ) -		    pix = loadPixmap( n.firstChild().toElement().toElement() ); -		else if ( attrib == "clickable" ) -		    clickable = v.toBool(); -		else if ( attrib == "resizable" || attrib == "resizeable" ) -		    resizable = v.toBool(); -	    } -	    n = n.nextSibling().toElement(); -	} -	createListViewColumn( lv, txt, pix, clickable, resizable ); -    } -#ifndef TQT_NO_TABLE -    else if ( widget->inherits( TQTABLE_OBJECT_NAME_STRING ) ) { -	TQTable *table = (TQTable*)widget; - -	TQDomElement n = e.firstChild().toElement(); -	TQPixmap pix; -	TQString txt; -	TQString field; - -	while ( !n.isNull() ) { -	    if ( n.tagName() == "property" ) { -		TQString attrib = n.attribute( "name" ); -		TQVariant v = DomTool::elementToVariant( n.firstChild().toElement(), TQVariant() ); -		if ( attrib == "text" ) -		    txt = translate( v.toString() ); -		else if ( attrib == "pixmap" ) { -		    if ( !n.firstChild().firstChild().toText().data().isEmpty() ) -			pix = loadPixmap( n.firstChild().toElement().toElement() ); -		} else if ( attrib == "field" ) -		    field = translate( v.toString() ); -	    } -	    n = n.nextSibling().toElement(); -	} -	createTableColumnOrRow( table, txt, pix, field, e.tagName() == "row" ); -    } -#endif -} - -void TQWidgetFactory::loadItem( const TQDomElement &e, TQPixmap &pix, TQString &txt, bool &hasPixmap ) -{ -    TQDomElement n = e; -    hasPixmap = FALSE; -    while ( !n.isNull() ) { -	if ( n.tagName() == "property" ) { -	    TQString attrib = n.attribute( "name" ); -	    TQVariant v = DomTool::elementToVariant( n.firstChild().toElement(), TQVariant() ); -	    if ( attrib == "text" ) -		txt = translate( v.toString() ); -	    else if ( attrib == "pixmap" ) { -		pix = loadPixmap( n.firstChild().toElement() ); -		hasPixmap = !pix.isNull(); -	    } -	} -	n = n.nextSibling().toElement(); -    } -} - -void TQWidgetFactory::createItem( const TQDomElement &e, TQWidget *widget, TQListViewItem *i ) -{ -    if ( widget->inherits( TQLISTBOX_OBJECT_NAME_STRING ) || widget->inherits( TQCOMBOBOX_OBJECT_NAME_STRING ) ) { -	TQDomElement n = e.firstChild().toElement(); -	TQPixmap pix; -	bool hasPixmap = FALSE; -	TQString txt; -	loadItem( n, pix, txt, hasPixmap ); -	TQListBox *lb = 0; -	if ( widget->inherits( TQLISTBOX_OBJECT_NAME_STRING ) ) -	    lb = (TQListBox*)widget; -	else -	    lb = ( (TQComboBox*)widget)->listBox(); -	if ( hasPixmap ) { -	    new TQListBoxPixmap( lb, pix, txt ); -	} else { -	    new TQListBoxText( lb, txt ); -	} -#ifndef TQT_NO_ICONVIEW -    } else if ( widget->inherits( TQICONVIEW_OBJECT_NAME_STRING ) ) { -	TQDomElement n = e.firstChild().toElement(); -	TQPixmap pix; -	bool hasPixmap = FALSE; -	TQString txt; -	loadItem( n, pix, txt, hasPixmap ); - -	TQIconView *iv = (TQIconView*)widget; -	new TQIconViewItem( iv, txt, pix ); -#endif -    } else if ( widget->inherits( TQLISTVIEW_OBJECT_NAME_STRING ) ) { -	TQDomElement n = e.firstChild().toElement(); -	TQPixmap pix; -	TQValueList<TQPixmap> pixmaps; -	TQStringList textes; -	TQListViewItem *item = 0; -	TQListView *lv = (TQListView*)widget; -	if ( i ) -	    item = new TQListViewItem( i, d->lastItem ); -	else -	    item = new TQListViewItem( lv, d->lastItem ); -	while ( !n.isNull() ) { -	    if ( n.tagName() == "property" ) { -		TQString attrib = n.attribute( "name" ); -		TQVariant v = DomTool::elementToVariant( n.firstChild().toElement(), TQVariant() ); -		if ( attrib == "text" ) -		    textes << translate( v.toString() ); -		else if ( attrib == "pixmap" ) { -		    TQString s = v.toString(); -		    if ( s.isEmpty() ) { -			pixmaps << TQPixmap(); -		    } else { -			pix = loadPixmap( n.firstChild().toElement() ); -			pixmaps << pix; -		    } -		} -	    } else if ( n.tagName() == "item" ) { -		item->setOpen( TRUE ); -		createItem( n, widget, item ); -	    } - -	    n = n.nextSibling().toElement(); -	} - -	for ( int i = 0; i < lv->columns(); ++i ) { -	    item->setText( i, textes[ i ] ); -	    item->setPixmap( i, pixmaps[ i ] ); -	} -	d->lastItem = item; -    } -} - - - -void TQWidgetFactory::loadChildAction( TQObject *parent, const TQDomElement &e ) -{ -    TQDomElement n = e; -    TQAction *a = 0; -    bool hasMenuText = FALSE; -    if ( n.tagName() == "action" ) { -	a = new TQAction( parent ); -	TQDomElement n2 = n.firstChild().toElement(); -	 -	while ( !n2.isNull() ) { -	    if ( n2.tagName() == "property" ) { -		TQString prop(n2.attribute("name")); -		if (prop == "menuText") -		    hasMenuText = TRUE; -		setProperty( a, prop, n2.firstChild().toElement() ); -	    } -	    n2 = n2.nextSibling().toElement(); -	} -	if ( !parent->inherits( TQACTION_OBJECT_NAME_STRING ) ) -	    actionList.append( a ); -    } else if ( n.tagName() == "actiongroup" ) { -	a = new TQActionGroup( parent ); -	TQDomElement n2 = n.firstChild().toElement(); -	while ( !n2.isNull() ) { -	    if ( n2.tagName() == "property" ) { -		TQString prop(n2.attribute("name")); -		if (prop == "menuText") -		    hasMenuText = TRUE; -		setProperty( a, prop, n2.firstChild().toElement() ); -	    } else if ( n2.tagName() == "action" || -			n2.tagName() == "actiongroup" ) { -		loadChildAction( a, n2 ); - -	    } -	    n2 = n2.nextSibling().toElement(); -	} -	if ( !parent->inherits( TQACTION_OBJECT_NAME_STRING ) ) -	    actionList.append( a ); -    } - -    if (a && !hasMenuText && !a->text().isEmpty() && uiFileVersion < "3.3") -	a->setMenuText(a->text()); -} - -void TQWidgetFactory::loadActions( const TQDomElement &e ) -{ -    TQDomElement n = e.firstChild().toElement(); -    while ( !n.isNull() ) { -	if ( n.tagName() == "action" ) { -	    loadChildAction( TQT_TQOBJECT(toplevel), n ); -	} else if ( n.tagName() == "actiongroup" ) { -	    loadChildAction( TQT_TQOBJECT(toplevel), n ); -	} -	n = n.nextSibling().toElement(); -    } -} - -void TQWidgetFactory::loadToolBars( const TQDomElement &e ) -{ -    TQDomElement n = e.firstChild().toElement(); -    TQMainWindow *mw = ( (TQMainWindow*)toplevel ); -    TQToolBar *tb = 0; -    while ( !n.isNull() ) { -	if ( n.tagName() == "toolbar" ) { -	    TQt::Dock dock = (TQt::Dock)n.attribute( "dock" ).toInt(); -	    tb = new TQToolBar( TQString(), mw, dock ); -	    tb->setLabel( n.attribute( "label" ) ); -	    tb->setName( n.attribute( "name" ).ascii() ); -	    TQDomElement n2 = n.firstChild().toElement(); -	    while ( !n2.isNull() ) { -		if ( n2.tagName() == "action" ) { -		    TQAction *a = findAction( n2.attribute( "name" ) ); -		    if ( a ) -			a->addTo( tb ); -		} else if ( n2.tagName() == "separator" ) { -		    tb->addSeparator(); -		} else if ( n2.tagName() == "widget" ) { -		    (void)createWidgetInternal( n2, tb, 0, n2.attribute( "class", TQWIDGET_OBJECT_NAME_STRING ) ); -		} else if ( n2.tagName() == "property" ) { -		    setProperty( TQT_TQOBJECT(tb), n2.attribute( "name" ), n2.firstChild().toElement() ); -		} -		n2 = n2.nextSibling().toElement(); -	    } -	} -	n = n.nextSibling().toElement(); -    } -} - -void TQWidgetFactory::loadMenuBar( const TQDomElement &e ) -{ -    TQDomElement n = e.firstChild().toElement(); -    TQMainWindow *mw = ( (TQMainWindow*)toplevel ); -    TQMenuBar *mb = mw->menuBar(); -    while ( !n.isNull() ) { -	if ( n.tagName() == "item" ) { -	    TQPopupMenu *popup = new TQPopupMenu( mw ); -	    loadPopupMenu( popup, n ); -	    popup->setName( n.attribute( "name" ).ascii() ); -	    mb->insertItem( translate( n.attribute( "text" ) ), popup ); -	} else if ( n.tagName() == "property" ) { -	    setProperty( TQT_TQOBJECT(mb), n.attribute( "name" ), n.firstChild().toElement() ); -	} else if ( n.tagName() == "separator" ) { -	    mb->insertSeparator(); -	} -	n = n.nextSibling().toElement(); -    } -} - -void TQWidgetFactory::loadPopupMenu( TQPopupMenu *p, const TQDomElement &e ) -{ -    TQMainWindow *mw = ( (TQMainWindow*)toplevel ); -    TQDomElement n = e.firstChild().toElement(); -    while ( !n.isNull() ) { -	if ( n.tagName() == "action" ) { -	    TQAction *a = findAction( n.attribute( "name" ) ); -	    TQDomElement n2 = n.nextSibling().toElement(); -	    if ( n2.tagName() == "item") { // load submenu -		TQPopupMenu *popup = new TQPopupMenu( mw ); -		popup->setName( n2.attribute( "name" ).ascii() ); -		if ( a ) { -		    p->setAccel( a->accel(), p->insertItem( a->iconSet(), -					     translate( n2.attribute( "text" ).utf8().data() ), -					     popup ) ); -		} else { -		    p->insertItem( translate( n2.attribute( "text" ).utf8().data() ), popup ); -		} -		loadPopupMenu( popup, n2 ); -		n = n2; -	    } else { -		if ( a ) { -		    a->addTo( p ); -		} -	    } -	    a = 0; -	} else if ( n.tagName() == "separator" ) { -	    p->insertSeparator(); -	} -	n = n.nextSibling().toElement(); -    } -} - -// compatibility with early 3.0 betas -// ### remove for 4.0 -void TQWidgetFactory::loadFunctions( const TQDomElement & ) -{ -} - -TQAction *TQWidgetFactory::findAction( const TQString &name ) -{ -    for ( TQAction *a = actionList.first(); a; a = actionList.next() ) { -	if ( TQString( a->name() ) == name ) -	    return a; -	TQAction *ac = (TQAction*)a->child( name.latin1(), TQACTION_OBJECT_NAME_STRING ); -	if ( ac ) -	    return ac; -    } -    return 0; -} - -/*! -    If you use a pixmap collection (which is the default for new -    projects) rather than saving the pixmaps within the .ui XML file, -    you must load the pixmap collection. TQWidgetFactory looks in the -    default TQMimeSourceFactory for the pixmaps. Either add it there -    manually, or call this function and specify the directory where -    the images can be found, as \a dir. This is normally the -    directory called \c images in the project's directory. -*/ - -void TQWidgetFactory::loadImages( const TQString &dir ) -{ -    TQDir d( dir ); -    TQStringList l = d.entryList( TQDir::Files ); -    for ( TQStringList::Iterator it = l.begin(); it != l.end(); ++it ) -	TQMimeSourceFactory::defaultFactory()->setPixmap( *it, TQPixmap( d.path() + "/" + *it, "PNG" ) ); - -} - -void TQWidgetFactory::loadExtraSource() -{ -    if ( !qwf_language || !languageInterfaceManager ) -	return; -    TQString lang = *qwf_language; -    LanguageInterface *iface = 0; -    languageInterfaceManager->queryInterface( lang, &iface ); -    if ( !iface ) -	return; -    TQFile f( qwf_currFileName + iface->formCodeExtension() ); -    if ( f.open( IO_ReadOnly ) ) { -	TQTextStream ts( &f ); -	code = ts.read(); -    } -} - -TQString TQWidgetFactory::translate( const TQString& sourceText, const TQString& comment ) -{ -    return tqApp->translate( d->translationContext, sourceText.utf8(), comment.utf8(), -			    TQApplication::UnicodeUTF8 ); -} - -TQString TQWidgetFactory::translate( const char *sourceText, const char *comment ) -{ -    return tqApp->translate( d->translationContext, sourceText, comment, -			    TQApplication::UnicodeUTF8 ); -} | 
