📄 command.cpp
字号:
}}// ------------------------------------------------------------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 + -