📄 mainwindowactions.cpp
字号:
if ( w->inherits( "SourceEditor" ) ) { SourceEditor *se = (SourceEditor*)w; if ( se->formWindow() ) fw = se->formWindow(); else if ( se->sourceFile() ) { se->sourceFile()->save(); return TRUE; } } } if ( !fw ) fw = formWindow(); if ( !fw || !fw->formFile()->save() ) return FALSE; QApplication::restoreOverrideCursor(); return TRUE;}bool MainWindow::fileSaveProject(){ currentProject->save(); statusBar()->message( tr( "Project '%1' saved.").arg( currentProject->projectName() ), 3000 ); return TRUE;}bool MainWindow::fileSaveAs(){ statusBar()->message( tr( "Enter a filename..." ) ); QWidget *w = qworkspace->activeWindow(); if ( !w ) return TRUE; if ( w->inherits( "FormWindow" ) ) return ( (FormWindow*)w )->formFile()->saveAs(); else if ( w->inherits( "SourceEditor" ) ) return ( (SourceEditor*)w )->saveAs(); return FALSE;}void MainWindow::fileSaveAll(){ for ( QMap<QAction*, Project* >::Iterator it = projects.begin(); it != projects.end(); ++it ) (*it)->save();}void MainWindow::fileCreateTemplate(){ CreateTemplate dia( this, 0, TRUE ); int i = 0; for ( i = 0; i < WidgetDatabase::count(); ++i ) { if ( WidgetDatabase::isForm( i ) && WidgetDatabase::widgetGroup( i ) != "Temp") { dia.listClass->insertItem( WidgetDatabase::className( i ) ); } } for ( i = 0; i < WidgetDatabase::count(); ++i ) { if ( WidgetDatabase::isContainer( i ) && !WidgetDatabase::isForm(i) && WidgetDatabase::className( i ) != "QTabWidget" && WidgetDatabase::widgetGroup( i ) != "Temp" ) { dia.listClass->insertItem( WidgetDatabase::className( i ) ); } } QPtrList<MetaDataBase::CustomWidget> *lst = MetaDataBase::customWidgets(); for ( MetaDataBase::CustomWidget *w = lst->first(); w; w = lst->next() ) { if ( w->isContainer ) dia.listClass->insertItem( w->className ); } dia.editName->setText( tr( "NewTemplate" ) ); connect( dia.buttonCreate, SIGNAL( clicked() ), this, SLOT( createNewTemplate() ) ); dia.exec();}void MainWindow::createNewTemplate(){ CreateTemplate *dia = (CreateTemplate*)sender()->parent(); QString fn = dia->editName->text(); QString cn = dia->listClass->currentText(); if ( fn.isEmpty() || cn.isEmpty() ) { QMessageBox::information( this, tr( "Create Template" ), tr( "Couldn't create the template" ) ); return; } QStringList templRoots; const char *qtdir = getenv( "QTDIR" ); if(qtdir) templRoots << qtdir; templRoots << qInstallPathData(); if(qtdir) //try the tools/designer directory last! templRoots << (QString(qtdir) + "/tools/designer"); QFile f; for ( QStringList::Iterator it = templRoots.begin(); it != templRoots.end(); ++it ) { if ( QFile::exists( (*it) + "/templates/" )) { QString tmpfn = (*it) + "/templates/" + fn + ".ui"; f.setName(tmpfn); if(f.open(IO_WriteOnly)) break; } } if ( !f.isOpen() ) { QMessageBox::information( this, tr( "Create Template" ), tr( "Couldn't create the template" ) ); return; } QTextStream ts( &f ); ts << "<!DOCTYPE UI><UI>" << endl; ts << "<widget>" << endl; ts << "<class>" << cn << "</class>" << endl; ts << "<property stdset=\"1\">" << endl; ts << " <name>name</name>" << endl; ts << " <cstring>" << cn << "Form</cstring>" << endl; ts << "</property>" << endl; ts << "<property stdset=\"1\">" << endl; ts << " <name>geometry</name>" << endl; ts << " <rect>" << endl; ts << " <width>300</width>" << endl; ts << " <height>400</height>" << endl; ts << " </rect>" << endl; ts << "</property>" << endl; ts << "</widget>" << endl; ts << "</UI>" << endl; dia->editName->setText( tr( "NewTemplate" ) ); f.close();}void MainWindow::editUndo(){ if ( qWorkspace()->activeWindow() && qWorkspace()->activeWindow()->inherits( "SourceEditor" ) ) { ( (SourceEditor*)qWorkspace()->activeWindow() )->editUndo(); return; } if ( formWindow() ) formWindow()->undo();}void MainWindow::editRedo(){ if ( qWorkspace()->activeWindow() && qWorkspace()->activeWindow()->inherits( "SourceEditor" ) ) { ( (SourceEditor*)qWorkspace()->activeWindow() )->editRedo(); return; } if ( formWindow() ) formWindow()->redo();}void MainWindow::editCut(){ if ( qWorkspace()->activeWindow() && qWorkspace()->activeWindow()->inherits( "SourceEditor" ) ) { ( (SourceEditor*)qWorkspace()->activeWindow() )->editCut(); return; } editCopy(); editDelete();}void MainWindow::editCopy(){ if ( qWorkspace()->activeWindow() && qWorkspace()->activeWindow()->inherits( "SourceEditor" ) ) { ( (SourceEditor*)qWorkspace()->activeWindow() )->editCopy(); return; } if ( formWindow() ) qApp->clipboard()->setText( formWindow()->copy() );}void MainWindow::editPaste(){ if ( qWorkspace()->activeWindow() && qWorkspace()->activeWindow()->inherits( "SourceEditor" ) ) { ( (SourceEditor*)qWorkspace()->activeWindow() )->editPaste(); return; } if ( !formWindow() ) return; QWidget *w = formWindow()->mainContainer(); QWidgetList l( formWindow()->selectedWidgets() ); if ( l.count() == 1 ) { w = l.first(); if ( WidgetFactory::layoutType( w ) != WidgetFactory::NoLayout || ( !WidgetDatabase::isContainer( WidgetDatabase::idFromClassName( WidgetFactory::classNameOf( w ) ) ) && w != formWindow()->mainContainer() ) ) w = formWindow()->mainContainer(); } if ( w && WidgetFactory::layoutType( w ) == WidgetFactory::NoLayout ) { formWindow()->paste( qApp->clipboard()->text(), WidgetFactory::containerOfWidget( w ) ); hierarchyView->widgetInserted( 0 ); formWindow()->commandHistory()->setModified( TRUE ); } else { QMessageBox::information( this, tr( "Paste error" ), tr( "Can't paste widgets. Designer couldn't find a container\n" "to paste into which does not contain a layout. Break the layout\n" "of the container you want to paste into and select this container\n" "and then paste again." ) ); }}void MainWindow::editDelete(){ if ( formWindow() ) formWindow()->deleteWidgets();}void MainWindow::editSelectAll(){ if ( qWorkspace()->activeWindow() && qWorkspace()->activeWindow()->inherits( "SourceEditor" ) ) { ( (SourceEditor*)qWorkspace()->activeWindow() )->editSelectAll(); return; } if ( formWindow() ) formWindow()->selectAll();}void MainWindow::editLower(){ if ( formWindow() ) formWindow()->lowerWidgets();}void MainWindow::editRaise(){ if ( formWindow() ) formWindow()->raiseWidgets();}void MainWindow::editAdjustSize(){ if ( formWindow() ) formWindow()->editAdjustSize();}void MainWindow::editLayoutHorizontal(){ if ( layoutChilds ) editLayoutContainerHorizontal(); else if ( layoutSelected && formWindow() ) formWindow()->layoutHorizontal();}void MainWindow::editLayoutVertical(){ if ( layoutChilds ) editLayoutContainerVertical(); else if ( layoutSelected && formWindow() ) formWindow()->layoutVertical();}void MainWindow::editLayoutHorizontalSplit(){ if ( layoutChilds ) ; // no way to do that else if ( layoutSelected && formWindow() ) formWindow()->layoutHorizontalSplit();}void MainWindow::editLayoutVerticalSplit(){ if ( layoutChilds ) ; // no way to do that else if ( layoutSelected && formWindow() ) formWindow()->layoutVerticalSplit();}void MainWindow::editLayoutGrid(){ if ( layoutChilds ) editLayoutContainerGrid(); else if ( layoutSelected && formWindow() ) formWindow()->layoutGrid();}void MainWindow::editLayoutContainerVertical(){ if ( !formWindow() ) return; QWidget *w = formWindow()->mainContainer(); QWidgetList l( formWindow()->selectedWidgets() ); if ( l.count() == 1 ) w = l.first(); if ( w ) formWindow()->layoutVerticalContainer( w );}void MainWindow::editLayoutContainerHorizontal(){ if ( !formWindow() ) return; QWidget *w = formWindow()->mainContainer(); QWidgetList l( formWindow()->selectedWidgets() ); if ( l.count() == 1 ) w = l.first(); if ( w ) formWindow()->layoutHorizontalContainer( w );}void MainWindow::editLayoutContainerGrid(){ if ( !formWindow() ) return; QWidget *w = formWindow()->mainContainer(); QWidgetList l( formWindow()->selectedWidgets() ); if ( l.count() == 1 ) w = l.first(); if ( w ) formWindow()->layoutGridContainer( w );}void MainWindow::editBreakLayout(){ if ( !formWindow() || !breakLayout ) return; QWidget *w = formWindow()->mainContainer(); if ( formWindow()->currentWidget() ) w = formWindow()->currentWidget(); if ( WidgetFactory::layoutType( w ) != WidgetFactory::NoLayout || w->parentWidget() && WidgetFactory::layoutType( w->parentWidget() ) != WidgetFactory::NoLayout ) { formWindow()->breakLayout( w ); return; } else { QWidgetList widgets = formWindow()->selectedWidgets(); for ( w = widgets.first(); w; w = widgets.next() ) { if ( WidgetFactory::layoutType( w ) != WidgetFactory::NoLayout || w->parentWidget() && WidgetFac
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -