MainWindowApplication::MainWindowApplication(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindowApplication) { ui->setupUi(this); materialsWindow = new MaterialDockWindow(this); ui->dockMateriales->setWidget(materialsWindow); connect(ui->action_New, SIGNAL(triggered()), this, SLOT(newProject())); connect(ui->action_Open, SIGNAL(triggered()), this, SLOT(openProject())); connect(ui->action_Save, SIGNAL(triggered()), this, SLOT(saveProject())); connect(ui->actionSave_As, SIGNAL(triggered()), this, SLOT(saveProjectAs())); connect(ui->action_Close, SIGNAL(triggered()), this, SLOT(closeProject())); connect(ui->actionEdit_Material_defiinition, SIGNAL(triggered()), this, SLOT(editMaterialLibrary())); connect(ui->actionE_xit, SIGNAL(triggered()), this, SLOT(exitApp())); on_mdiArea_subWindowActivated(NULL); }
// slot conectado ao signal "activated" da comboBox // - permite a seleção do modo de visualização: void MainWindow::selectViewMode(int index) { if ( index > 1 ) // irá usar subWindows (e não abas) { // então, antes de modificar modo de exibição, // checa se há alguma "subWindow" minimizada: QList<QMdiSubWindow*> subWindows = ui->mdiArea->subWindowList(); foreach ( QMdiSubWindow* subWin, subWindows ) showSubWindow_(subWin); // se estiver minimizada, será restaurada } switch ( index ) { case 0: // abas triangulares ui->mdiArea->setViewMode(QMdiArea::TabbedView); ui->mdiArea->setTabShape(QTabWidget::Triangular); break; case 1: // abas retangulares com cantos arredondados ui->mdiArea->setViewMode(QMdiArea::TabbedView); ui->mdiArea->setTabShape(QTabWidget::Rounded); break; case 2: // cascata ui->mdiArea->setViewMode(QMdiArea::SubWindowView); ui->mdiArea->cascadeSubWindows(); break; case 3: // telhas ui->mdiArea->setViewMode(QMdiArea::SubWindowView); ui->mdiArea->tileSubWindows(); break; } // Se tiver mudado o "viewMode" de "subWindows" para "abas", // a janela ativa irá apresentar a action "restore" no menu de contexto. // Pois, como já está ativa, o slot "subWindowActivated" não será chamado; // então, forçamos aqui que o "restore" seja desabilitado // (ATENÇÃO: ver, abaixo, comentário sobre a "Bug Tracker" de Qt) on_mdiArea_subWindowActivated( ui->mdiArea->activeSubWindow()); // desabilitar a action "restore" }