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

📄 command.cpp

📁 Linux下的基于X11的图形开发环境。
💻 CPP
📖 第 1 页 / 共 5 页
字号:
    }}// ------------------------------------------------------------PopulateMultiLineEditCommand::PopulateMultiLineEditCommand( const QString &n, FormWindow *fw,						    QTextEdit *mle, const QString &txt )    : Command( n, fw ), newText( txt ), mlined( mle ){    oldText = mlined->text();    wasChanged = MetaDataBase::isPropertyChanged( mlined, "text" );}void PopulateMultiLineEditCommand::execute(){    mlined->setText( newText );    MetaDataBase::setPropertyChanged( mlined, "text", TRUE );    formWindow()->emitUpdateProperties( mlined );}void PopulateMultiLineEditCommand::unexecute(){    mlined->setText( oldText );    MetaDataBase::setPropertyChanged( mlined, "text", wasChanged );    formWindow()->emitUpdateProperties( mlined );}// ------------------------------------------------------------PopulateTableCommand::PopulateTableCommand( const QString &n, FormWindow *fw, QTable *t,					    const QValueList<Row> &rows,					    const QValueList<Column> &columns )    : Command( n, fw ), newRows( rows ), newColumns( columns ), table( t ){#ifndef QT_NO_TABLE    int i = 0;    QMap<QString, QString> columnFields = MetaDataBase::columnFields( table );    for ( i = 0; i < table->horizontalHeader()->count(); ++i ) {	PopulateTableCommand::Column col;	col.text = table->horizontalHeader()->label( i );	if ( table->horizontalHeader()->iconSet( i ) )	    col.pix = table->horizontalHeader()->iconSet( i )->pixmap();	col.field = *columnFields.find( col.text );	oldColumns.append( col );    }    for ( i = 0; i < table->verticalHeader()->count(); ++i ) {	PopulateTableCommand::Row row;	row.text = table->verticalHeader()->label( i );	if ( table->verticalHeader()->iconSet( i ) )	    row.pix = table->verticalHeader()->iconSet( i )->pixmap();	oldRows.append( row );    }#endif}void PopulateTableCommand::execute(){#ifndef QT_NO_TABLE    QMap<QString, QString> columnFields;    table->setNumCols( newColumns.count() );    int i = 0;    for ( QValueList<Column>::Iterator cit = newColumns.begin(); cit != newColumns.end(); ++cit, ++i ) {	table->horizontalHeader()->setLabel( i, (*cit).pix, (*cit).text );	if ( !(*cit).field.isEmpty() )	    columnFields.insert( (*cit).text, (*cit).field );    }    MetaDataBase::setColumnFields( table, columnFields );    table->setNumRows( newRows.count() );    i = 0;    for ( QValueList<Row>::Iterator rit = newRows.begin(); rit != newRows.end(); ++rit, ++i )	table->verticalHeader()->setLabel( i, (*rit).pix, (*rit).text );#endif}void PopulateTableCommand::unexecute(){#ifndef QT_NO_TABLE    QMap<QString, QString> columnFields;    table->setNumCols( oldColumns.count() );    int i = 0;    for ( QValueList<Column>::Iterator cit = oldColumns.begin(); cit != oldColumns.end(); ++cit, ++i ) {	table->horizontalHeader()->setLabel( i, (*cit).pix, (*cit).text );	if ( !(*cit).field.isEmpty() )	    columnFields.insert( (*cit).text, (*cit).field );    }    MetaDataBase::setColumnFields( table, columnFields );    table->setNumRows( oldRows.count() );    i = 0;    for ( QValueList<Row>::Iterator rit = oldRows.begin(); rit != oldRows.end(); ++rit, ++i )	table->verticalHeader()->setLabel( i, (*rit).pix, (*rit).text );#endif}// ------------------------------------------------------------AddActionToToolBarCommand::AddActionToToolBarCommand( const QString &n, FormWindow *fw,						      QAction *a, QDesignerToolBar *tb, int idx )    : Command( n, fw ), action( a ), toolBar( tb ), index( idx ){}void AddActionToToolBarCommand::execute(){    action->addTo( toolBar );    if ( action->inherits( "QDesignerAction" ) ) {	QString s = ( (QDesignerAction*)action )->widget()->name();	if ( s.startsWith( "qt_dead_widget_" ) ) {	    s.remove( 0, QString( "qt_dead_widget_" ).length() );	    ( (QDesignerAction*)action )->widget()->setName( s );	}    }    if ( action->inherits( "QDesignerAction" ) ) {	toolBar->insertAction( ( (QDesignerAction*)action )->widget(), action );	( (QDesignerAction*)action )->widget()->installEventFilter( toolBar );    } else if ( action->inherits( "QDesignerActionGroup" ) ) {	if ( ( (QDesignerActionGroup*)action )->usesDropDown() ) {	    toolBar->insertAction( ( (QDesignerActionGroup*)action )->widget(), action );	    ( (QDesignerActionGroup*)action )->widget()->installEventFilter( toolBar );	}    } else if ( action->inherits( "QSeparatorAction" ) ) {	toolBar->insertAction( ( (QSeparatorAction*)action )->widget(), action );	( (QSeparatorAction*)action )->widget()->installEventFilter( toolBar );    }    if ( !action->inherits( "QActionGroup" ) || ( (QActionGroup*)action )->usesDropDown()) {	if ( index == -1 )	    toolBar->appendAction( action );	else	    toolBar->insertAction( index, action );	toolBar->reInsert();	QObject::connect( action, SIGNAL( destroyed() ), toolBar, SLOT( actionRemoved() ) );    } else {	QObjectListIt it( *action->children() );	if ( action->children() ) {	    int i = 0;	    while ( it.current() ) {		QObject *o = it.current();		++it;		if ( !o->inherits( "QAction" ) )		    continue;		// ### fix it for nested actiongroups		if ( o->inherits( "QDesignerAction" ) ) {		    QDesignerAction *ac = (QDesignerAction*)o;		    toolBar->insertAction( ac->widget(), ac );		    ac->widget()->installEventFilter( toolBar );		    if ( index == -1 )			toolBar->appendAction( ac );		    else			toolBar->insertAction( index + (i++), ac );		}		QObject::connect( o, SIGNAL( destroyed() ), toolBar, SLOT( actionRemoved() ) );	    }	}	toolBar->reInsert();	QObject::connect( action, SIGNAL( destroyed() ), toolBar, SLOT( actionRemoved() ) );    }    formWindow()->mainWindow()->objectHierarchy()->rebuild();}void AddActionToToolBarCommand::unexecute(){    if ( action->inherits( "QDesignerAction" ) ) {	QString s = ( (QDesignerAction*)action )->widget()->name();	s.prepend( "qt_dead_widget_" );	( (QDesignerAction*)action )->widget()->setName( s );    }    toolBar->removeAction( action );    action->removeFrom( toolBar );    QObject::disconnect( action, SIGNAL( destroyed() ), toolBar, SLOT( actionRemoved() ) );    if ( !action->inherits( "QActionGroup" ) || ( (QActionGroup*)action )->usesDropDown()) {	action->removeEventFilter( toolBar );    } else {	if ( action->children() ) {	    QObjectListIt it( *action->children() );	    while ( it.current() ) {		QObject *o = it.current();		++it;		if ( !o->inherits( "QAction" ) )		    continue;		if ( o->inherits( "QDesignerAction" ) ) {		    o->removeEventFilter( toolBar );		    toolBar->removeAction( (QAction*)o );		}		QObject::disconnect( o, SIGNAL( destroyed() ), toolBar, SLOT( actionRemoved() ) );	    }	}    }    formWindow()->mainWindow()->objectHierarchy()->rebuild();}// ------------------------------------------------------------AddActionToPopupCommand::AddActionToPopupCommand( const QString &n, FormWindow *fw,						  QAction *a, QDesignerPopupMenu *p, int idx )    : Command( n, fw ), action( a ), popup( p ), index( idx ){}void AddActionToPopupCommand::execute(){    if ( action->inherits( "QActionGroup" ) ) {	if ( ( (QActionGroup*)action )->usesDropDown() ) {	    action->addTo( popup );	    popup->insertAction( index, action );	} else {	    action->addTo( popup );	    if ( action->children() ) {		QObjectListIt it( *action->children() );		int i = 0;		while ( it.current() ) {		    QObject *o = it.current();		    ++it;		    if ( !o->inherits( "QAction" ) )			continue;		    QDesignerAction *ac = (QDesignerAction*)o;		    popup->insertAction( index + (i++), ac );		    QObject::connect( o, SIGNAL( destroyed() ), popup, SLOT( actionRemoved() ) );		}	    }	}	popup->reInsert();	QObject::connect( action, SIGNAL( destroyed() ), popup, SLOT( actionRemoved() ) );    } else {	if ( !action->inherits( "QDesignerAction" ) || ( (QDesignerAction*)action )->supportsMenu() ) {	    action->addTo( popup );	    popup->insertAction( index, action );	    popup->reInsert();	    QObject::connect( action, SIGNAL( destroyed() ), popup, SLOT( actionRemoved() ) );	}    }    formWindow()->mainWindow()->objectHierarchy()->rebuild();}void AddActionToPopupCommand::unexecute(){    action->removeFrom( popup );    popup->removeAction( action );    QObject::disconnect( action, SIGNAL( destroyed() ), popup, SLOT( actionRemoved() ) );    if ( !action->inherits( "QActionGroup" ) || ( (QActionGroup*)action )->usesDropDown()) {	action->removeEventFilter( popup );    } else {	if ( action->children() ) {	    QObjectListIt it( *action->children() );	    while ( it.current() ) {		QObject *o = it.current();		++it;		if ( !o->inherits( "QAction" ) )		    continue;		if ( o->inherits( "QDesignerAction" ) ) {		    o->removeEventFilter( popup );		    popup->removeAction( (QAction*)o );		}		QObject::disconnect( o, SIGNAL( destroyed() ), popup, SLOT( actionRemoved() ) );	    }	}    }    formWindow()->mainWindow()->objectHierarchy()->rebuild();}// ------------------------------------------------------------AddMenuCommand::AddMenuCommand( const QString &n, FormWindow *fw, QMainWindow *mw )    : Command( n, fw ), menuBar( 0 ), popup( 0 ), mainWindow( mw ), id( -1 ), name( "Menu" ){}void AddMenuCommand::execute(){    if ( !popup ) {	QString n = "PopupMenu";	popup = new QDesignerPopupMenu( mainWindow );	formWindow()->unify( popup, n, TRUE );	popup->setName( n );    }    if ( !mainWindow->child( 0, "QMenuBar" ) ) {	menuBar = new QDesignerMenuBar( (QWidget*)mainWindow );	menuBar->setName( "menubar" );    } else {	menuBar = (QDesignerMenuBar*)mainWindow->menuBar();    }    if ( id == -1 )	id = mainWindow->menuBar()->insertItem( name, popup );    else	id = mainWindow->menuBar()->insertItem( name, popup, id, index );    formWindow()->killAccels( formWindow() );    formWindow()->mainWindow()->objectHierarchy()->rebuild();}void AddMenuCommand::unexecute(){    if ( !popup || !menuBar )	return;    menuBar->removeItem( id );    formWindow()->killAccels( formWindow() );    formWindow()->mainWindow()->objectHierarchy()->rebuild();}// ------------------------------------------------------------RenameMenuCommand::RenameMenuCommand( const QString &n, FormWindow *fw, QDesignerMenuBar *mb,				      int i, const QString &on, const QString &nn )    : Command( n, fw ), menuBar( mb ), id( i ), oldName( on ), newName( nn ){}void RenameMenuCommand::execute(){    menuBar->changeItem( id, newName );    formWindow()->killAccels( formWindow() );    formWindow()->mainWindow()->objectHierarchy()->rebuild();}void RenameMenuCommand::unexecute(){    menuBar->changeItem( id, oldName );    formWindow()->killAccels( formWindow() );    formWindow()->mainWindow()->objectHierarchy()->rebuild();}// ------------------------------------------------------------MoveMenuCommand::MoveMenuCommand( const QString &n, FormWindow *fw, QDesignerMenuBar *mb,				  QDesignerPopupMenu *p, int fidx, int tidx, const QString &txt )    : Command( n, fw ), menuBar( mb ), popup( p ), fromIdx( fidx ), toIdx( tidx ), text( txt ){}void MoveMenuCommand::execute(){    menuBar->removeItem( menuBar->idAt( fromIdx ) );    menuBar->insertItem( text, popup, -1, toIdx );    formWindow()->killAccels( formWindow() );    formWindow()->mainWindow()->objectHierarchy()->rebuild();}void MoveMenuCommand::unexecute(){    menuBar->removeItem( menuBar->idAt( toIdx ) );    menuBar->insertItem( text, popup, -1, fromIdx );    formWindow()->killAccels( formWindow() );    formWindow()->mainWindow()->objectHierarchy()->rebuild();}// ------------------------------------------------------------AddToolBarCommand::AddToolBarCommand( const QString &n, FormWindow *fw, QMainWindow *mw )    : Command( n, fw ), toolBar( 0 ), mainWindow( mw ){}void AddToolBarCommand::execute(){    if ( !toolBar ) {	toolBar = new QDesignerToolBar( mainWindow );	QString n = "Toolbar";	formWindow()->unify( toolBar, n, TRUE );	toolBar->setName( n );	mainWindow->addToolBar( toolBar, n );    } else {	toolBar->show();    }    formWindow()->mainWindow()->objectHierarchy()->rebuild();}void AddToolBarCommand::unexecute(){    toolBar->hide();    formWindow()->mainWindow()->objectHierarchy()->rebuild();}// ------------------------------------------------------------#ifdef QT_CONTAINER_CUSTOM_WIDGETSAddContainerPageCommand::AddContainerPageCommand( const QString &n, FormWindow *fw,						  QWidget *c, const QString &label )    : Command( n, fw ), container( c ), index( -1 ), pageLabel( label ), page( 0 ){    WidgetInterface *iface = 0;    widgetManager()->queryInterface( WidgetFactory::classNameOf( container ), &iface );    if ( !iface )	return;    iface->queryInterface( IID_QWidgetContainer, (QUnknownInterface**)&wiface );    if ( !wiface )	return;    wClassName = WidgetFactory::classNameOf( container );}AddContainerPageCommand::~AddContainerPageCommand(){    if ( wiface )	wiface->release();}void AddContainerPageCommand::execute(){    if ( !wiface || !wiface->supportsPages( wClassName ) )	return;    if ( index == -1 )	index = wiface->count( wClassName, container );    if ( !page )	page = wiface->addPage( wClassName, container, pageLabel, index );    else	wiface->insertPage( wClassName, container, pageLabel, index, page );

⌨️ 快捷键说明

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