⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 glade2ui.cpp

📁 Linux下的基于X11的图形开发环境。
💻 CPP
📖 第 1 页 / 共 5 页
字号:
	    emitOpeningWidget( QString("QLayoutWidget"), leftAttach,			       rightAttach, topAttach, bottomAttach );	emitOpening( boxKind );	emitProperty( QString("name"), fixedName(name).latin1() );	if ( gtkClass == QString("GtkHButtonBox") ||	     childName == QString("Dialog:action_area") )	    emitSpacer( orientation );	emitChildWidgets( childWidgets, TRUE );	if ( gtkClass == QString("GtkVButtonBox") ||	     childName == QString("Dialog:action_area") ||	     (boxKind == QString("vbox") && shouldPullup(childWidgets)) ) {	    emitSpacer( orientation );	} else if ( boxKind == QString("grid") && shouldPullup(childWidgets) ) {	    emitSpacer( QString("Vertical"), 0, numColumns, numRows,			numRows + 1 );	}	emitClosing( boxKind );	if ( layouted )	    emitClosing( QString("widget") );    } else if ( gtkClass == QString("GtkFixed") && !layouted ) {	emitChildWidgets( childWidgets, FALSE );    /*      Placeholders in a grid are typically needless.    */    } else if ( !(leftAttach >= 0 && gtkClass == QString("Placeholder")) ) {	bool needFakeLayout = ( !layouted && !topLevel && x == 0 && y == 0 &&				width == 0 && height == 0 );	QString qtClass = gtk2qtClass( gtkClass, childWidgets );	bool unknown = FALSE;	if ( qtClass == QString("QFrame") && !label.isEmpty() ) {	    qtClass = QString( "QButtonGroup" );	} else if ( qtClass == QString("QListView") && !showTitles &&		    gtkClass.endsWith(QString("List")) ) {	    qtClass = QString( "QListBox" );	} else if ( qtClass == QString("Custom") ) {	    qtClass = creationFunction;	    yyCustomWidgets.insert( qtClass, QString::null );	} else if ( qtClass == QString("Unknown") ) {	    qtClass = QString( "QLabel" );	    unknown = TRUE;	}	if ( qtClass.isEmpty() ) {	    emitChildWidgets( childWidgets, layouted, leftAttach, rightAttach,			      topAttach, bottomAttach );	} else {	    if ( needFakeLayout ) {		emitOpening( QString("vbox") );		emitProperty( QString("margin"), 11 );	    }	    emitOpeningWidget( qtClass, leftAttach, rightAttach, topAttach,			       bottomAttach );	    // grep 'elsewhere'	    if ( gtkClass != QString("GtkCombo") )		emitProperty( QString("name"), fixedName(name).latin1() );	    if ( !title.isEmpty() )		emitProperty( QString("caption"), title );	    if ( !layouted && (x != 0 || y != 0 || width != 0 || height != 0) )		emitProperty( QString("geometry"), QRect(x, y, width, height) );	    if ( gtkClass == QString("GtkToggleButton") ) {		emitProperty( QString("toggleButton"), QVariant(TRUE, 0) );		if ( active )		    emitProperty( QString("on"), QVariant(TRUE, 0) );	    } else {		if ( active )		    emitProperty( QString("checked"), QVariant(TRUE, 0) );	    }	    if ( !editable )		emitProperty( QString("readOnly"), QVariant(TRUE, 0) );	    if ( !focusTarget.isEmpty() )		emitProperty( QString("buddy"),			      fixedName(focusTarget).latin1() );	    if ( !hscrollbarPolicy.isEmpty() )		emitProperty( QString("hScrollBarMode"),			      gtk2qtScrollBarMode(hscrollbarPolicy),			      QString("enum") );	    if ( !vscrollbarPolicy.isEmpty() )		emitProperty( QString("vScrollBarMode"),			      gtk2qtScrollBarMode(vscrollbarPolicy),			      QString("enum") );	    if ( !justify.isEmpty() ||		 (wrap && gtkClass != QString("GtkSpinButton")) ) {		QStringList flags;		if ( wrap )		    flags.push_back( QString("WordBreak") );		if ( justify.endsWith(QString("_CENTER")) ) {		    flags.push_back( QString("AlignCenter") );		} else {		    if ( justify.endsWith(QString("_RIGHT")) )			flags.push_back( QString("AlignRight") );		    flags.push_back( QString("AlignVCenter") );		}		if ( !flags.isEmpty() )		    emitProperty( QString("alignment"), flags.join(QChar('|')),				  QString("set") );	    }	    if ( !label.isEmpty() ) {		if ( gtkClass.endsWith(QString("Frame")) ) {		    emitProperty( QString("title"), label );		} else {		    emitProperty( QString("text"), accelerate(label) );		}	    }	    if ( lower != -123456789 )		emitProperty( QString("minValue"), lower );	    if ( upper != 123456789 )		emitProperty( QString("maxValue"), upper );	    if ( value != 123456789 ) {		if ( gtkClass == QString("GtkProgressBar") ) {		    emitProperty( QString("progress"), value );		} else {		    emitProperty( QString("value"), value );		}	    }	    if ( QMAX(page, pageSize) != 10 &&		 gtkClass.endsWith(QString("Scrollbar")) )		emitProperty( QString("pageStep"), QMAX(page, pageSize) );	    if ( !selectionMode.isEmpty() )		emitProperty( QString("selectionMode"),			      gtk2qtSelectionMode(selectionMode),			      QString("enum") );	    if ( !shadowType.endsWith(QString("_NONE")) ) {		QString shape = shadowType.contains( QString("_ETCHED_") ) > 0 ?				QString( "Box" ) : QString( "WinPanel" );		QString shadow = shadowType.endsWith( QString("_IN") ) ?				 QString( "Sunken" ) : QString( "Raised" );		emitProperty( QString("frameShape"), shape, QString("enum") );		emitProperty( QString("frameShadow"), shadow, QString("enum") );	    }	    if ( !showText )		emitProperty( QString("percentageVisible"),			      QVariant(FALSE, 0) );	    if ( step != 1 )		emitProperty( QString("lineStep"), step );	    if ( tabPos.endsWith(QString("_BOTTOM")) ||		 tabPos.endsWith(QString("_RIGHT")) )		emitProperty( QString("tabPosition"), QString("Bottom") );	    if ( !text.isEmpty() )		emitProperty( QString("text"), text );	    if ( textMaxLength != 0 )		emitProperty( QString("maxLength"), textMaxLength );	    if ( !textVisible )		emitProperty( QString("echoMode"), QString("Password"),			      QString("enum") );	    if ( !tooltip.isEmpty() )		emitProperty( QString("toolTip"), tooltip );	    if ( !valueInList )		emitProperty( QString("editable"), QVariant(TRUE, 0) );	    if ( wrap && gtkClass == QString("GtkSpinButton") )		emitProperty( QString("wrapping"), QVariant(TRUE, 0) );	    if ( gtkClass.endsWith(QString("Tree")) ) {		emitProperty( QString("rootIsDecorated"), QVariant(TRUE, 0) );	    } else if ( gtkOrientedWidget.exactMatch(gtkClass) ) {		QString s = ( gtkOrientedWidget.cap(1) == QChar('H') ) ?			    QString( "Horizontal" ) : QString( "Vertical" );		emitProperty( QString("orientation"), s, QString("enum") );	    }	    if ( qtClass == QString("QListView") )		emitProperty( QString("resizeMode"), QString("AllColumns"),			      QString("enum") );	    while ( !items.isEmpty() ) {		emitOpening( QString("item") );		emitProperty( QString("text"), items.first() );		emitClosing( QString("item") );		items.remove( items.begin() );	    }	    if ( initialChoice != 0 )		emitProperty( QString("currentItem"), initialChoice );	    if ( !icon.isEmpty() )		emitProperty( QString("pixmap"), imageName(icon),			      QString("pixmap") );	    if ( gtkClass == QString("GnomeAbout") ) {		emitGnomeAbout( copyright, authors, comments );	    } else if ( gtkClass == QString("GnomeApp") ) {		emitGnomeAppChildWidgetsPass1( childWidgets );	    } else if ( gtkClass == QString("GnomePropertyBox") ) {		emitOpening( QString("vbox") );		emitChildWidgets( childWidgets, TRUE );		emitOpeningWidget( QString("QLayoutWidget") );		emitOpening( QString("hbox") );		emitPushButton( QString("&Help"), QString("helpButton") );		emitSpacer( QString("Horizontal") );		emitPushButton( QString("&OK"), QString("okButton") );		emitPushButton( QString("&Apply"), QString("applyButton") );		emitPushButton( QString("&Close"), QString("closeButton") );		emitClosing( QString("hbox") );		emitClosing( QString("widget") );		emitClosing( QString("vbox") );	    } else if ( gtkClass.endsWith(QString("Button")) ) {		if ( label.isEmpty() )		    emitGtkButtonChildWidgets( childWidgets );	    } else if ( gtkClass == QString("GtkCombo") ) {		emitGtkComboChildWidgets( childWidgets, items );	    } else if ( gtkClass == QString("GtkNotebook") ) {		emitGtkNotebookChildWidgets( childWidgets );	    } else if ( gtkClass == QString("GtkWindow") ) {		emitGtkWindowChildWidgets( childWidgets, qtClass );	    } else if ( gtkClass == QString("GtkScrolledWindow") ) {		emitGtkScrolledWindowChildWidgets( childWidgets, qtClass );	    } else if ( qtClass == QString("QListView") ) {		emitQListViewColumns( widget );	    } else if ( unknown || gtkClass == QString("Placeholder") ) {		QString prefix;		if ( unknown )		    prefix = gtkClass;		emitProperty( QString("text"),			      QString("<font color=\"red\">%1<b>?</b></font>")			      .arg(prefix) );		emitProperty( QString("alignment"),			      QString("AlignAuto|AlignCenter"),			      QString("set") );	    } else if ( qtClass != QString("QListBox") ) {		emitChildWidgets( childWidgets, FALSE );	    }	    emitClosing( QString("widget") );	    if ( needFakeLayout )		emitClosing( QString("vbox") );	    if ( gtkClass == QString("GnomeApp") )		emitGnomeAppChildWidgetsPass2( childWidgets );	}    }    return name;}QStringList Glade2Ui::convertGladeFile( const QString& fileName ){    QStringList outFileNames;    yyFileName = fileName;    QDomDocument doc( QString("GTK-Interface") );    QFile f( fileName );    if ( !f.open(IO_ReadOnly) ) {	error( QString("Cannot open file for reading.") );	return QStringList();    }    if ( !doc.setContent(&f) ) {	error( QString("File is not an XML file.") );	f.close();	return QStringList();    }    f.close();    QDomElement root = doc.documentElement();    if ( root.tagName() != QString("GTK-Interface") ) {	error( QString("File is not a Glade XML file.") );	return QStringList();    }    int widgetNo = 0;    int numWidgets = 0;    QDomNode n = root.firstChild();    while ( !n.isNull() ) {	if ( n.toElement().tagName() == QString("widget") )	    numWidgets++;		n = n.nextSibling();    }    QProgressDialog fremskritt( QString("Converting Glade files..."),				QString("Abort Conversion"), numWidgets, 0,				"fremskritt", TRUE );    n = root.firstChild();    while ( !n.isNull() ) {	QString tagName = n.toElement().tagName();	if ( tagName == QString("project") ) {	    QDomNode child = n.firstChild();	    while ( !child.isNull() ) {		QString childTagName = child.toElement().tagName();		if ( childTagName == QString("pixmaps_directory") ) {		    yyPixmapDirectory = getTextValue( child );		} else if ( childTagName == QString("program_name") ) {		    yyProgramName = getTextValue( child );		}		child = child.nextSibling();	    }	} else if ( tagName == QString("widget") ) {	    yyOut = QString::null;	    yyCustomWidgets.clear();	    yyStockItemActions.clear();	    yyActions.clear();	    yyConnections.clear();	    yySlots.clear();	    yyFormName = QString::null;	    yyImages.clear();	    uniqueAction = 1;	    uniqueForm = 1;	    uniqueMenuBar = 1;	    uniqueSpacer = 1;	    uniqueToolBar = 1;	    emitHeader();	    QString name = emitWidget( n.toElement(), FALSE );	    if ( !yyCustomWidgets.isEmpty() ) {		emitOpening( QString("customwidgets") );		QMap<QString, QString>::Iterator c = yyCustomWidgets.begin();		while ( c != yyCustomWidgets.end() ) {		    emitOpening( QString("customwidget") );		    emitSimpleValue( QString("class"), c.key() );		    if ( !(*c).isEmpty() )			emitSimpleValue( QString("header"), *c,					 attribute(QString("location"),						   QString("local")) );		    emitClosing( QString("customwidget") );		    ++c;		}		emitClosing( QString("customwidgets") );	    }	    if ( !yyActions.isEmpty() ) {		emitOpening( QString("actions") );		QMap<QString, GladeAction>::Iterator a = yyActions.begin();		while ( a != yyActions.end() ) {		    emitOpening( QString("action") );		    emitProperty( QString("name"),				  fixedName(a.key()).latin1() );		    emitProperty( QString("text"), (*a).text );		    emitProperty( QString("menuText"), (*a).menuText );		    if ( (*a).toolTip )			emitProperty( QString("toolTip"), (*a).toolTip );		    if ( (*a).accel != 0 )			emitProperty( QString("accel"), (*a).accel );		    if ( !(*a).iconSet.isEmpty() )			emitProperty( QString("iconSet"),				      imageName((*a).iconSet),				      QString("iconset") );		    emitClosing( QString("action") );		    ++a;		}		emitClosing( QString("actions") );	    }	    if ( !yyImages.isEmpty() ) {		uint maxLength = 524288;		char *data = new char[maxLength];		QString dir = yyFileName;		dir.truncate( dir.findRev(QChar('/')) + 1 );		dir += yyPixmapDirectory;		emitOpening( QString("images") );		QMap<QString, QString>::ConstIterator im = yyImages.begin();		while ( im != yyImages.end() ) {		    uint length = 0;		    const char *format = 0;		    QString fn = dir + QChar( '/' ) + im.key();		    QFile f( fn );		    if ( !f.open(IO_ReadOnly) ) {			error( QString("Cannot open image '%1' for reading.")			       .arg(fn) );		    } else {			length = f.readBlock( data, maxLength );			f.at( 0 );			format = QImageIO::imageFormat( &f );			f.close();		    }		    if ( format == 0 )			format = "XPM";		    AttributeMap attr;		    attr.insert( QString("format"), QString(format) );		    attr.insert( QString("length"), QString::number(length) );		    emitOpening( QString("image"),				 attribute(QString("name"), *im) );		    emitSimpleValue( QString("data"), hexed(data, length),				     attr );		    emitClosing( QString("image") );		    ++im;		}		emitClosing( QString("images") );		delete[] data;	    }	    if ( yyConnections.count() + yySlots.count() > 0 ) {		emitOpening( QString("connections") );		QValueList<GladeConnection>::Iterator c = yyConnections.begin();		while ( c != yyConnections.end() ) {		    emitOpening( QString("connection") );		    emitSimpleValue( QString("sender"), (*c).sender );		    emitSimpleValue( QString("signal"), (*c).signal );		    emitSimpleValue( QString("receiver"), yyFormName );		    emitSimpleValue( QString("slot"), (*c).slot );		    emitClosing( QString("connection") );		    ++c;		}		QMap<QString, QString>::Iterator s = yySlots.begin();		while ( s != yySlots.end() ) {		    AttributeMap attr;		    attr.insert( QString("access"), *s );		    attr.insert( QString("language"), QString("C++") );		    attr.insert( QString("returntype"), QString("void") );		    emitSimpleValue( QString("slot"), s.key(), attr );		    ++s;		}		emitClosing( QString("connections") );	    }	    emitFooter();	    QString outFileName = fileName;	    int k = outFileName.findRev( "." );	    if ( k != -1 )		outFileName.truncate( k );	    if ( widgetNo != 0 )		outFileName += QString::number( widgetNo + 1 );	    outFileName += QString( ".ui" );	    FILE *out = fopen( outFileName.latin1(), "w" );	    if ( out == 0 ) {		qWarning( "glade2ui: Could not open file '%s'",			 outFileName.latin1() );	    } else {		if ( !yyOut.isEmpty() )		    fprintf( out, "%s",

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -