From 354a8d1ac1c352e03cfad8efce88982326f0c742 Mon Sep 17 00:00:00 2001 From: Adeel Asghar Date: Fri, 27 Jan 2017 18:05:07 +0100 Subject: [PATCH] ticket:4234 Added a menu item to toggle between tab and sub window view. --- OMEdit/OMEditGUI/MainWindow.cpp | 46 ++++++++++++++++++++++ OMEdit/OMEditGUI/MainWindow.h | 2 + OMEdit/OMEditGUI/Options/OptionsDialog.cpp | 4 +- 3 files changed, 50 insertions(+), 2 deletions(-) diff --git a/OMEdit/OMEditGUI/MainWindow.cpp b/OMEdit/OMEditGUI/MainWindow.cpp index 9296a202032..7f9454a5439 100644 --- a/OMEdit/OMEditGUI/MainWindow.cpp +++ b/OMEdit/OMEditGUI/MainWindow.cpp @@ -1618,6 +1618,46 @@ void MainWindow::tileSubWindowsVertically() } } +/*! + * \brief MainWindow::toggleTabOrSubWindowView + * Slot activated when mpToggleTabOrSubWindowView triggered signal is raised.\n + * Toggles between tab or sub-window view mode. + */ +void MainWindow::toggleTabOrSubWindowView() +{ + QMdiArea *pMdiArea = 0; + // get the current QMdiArea + switch (mpCentralStackedWidget->currentIndex()) { + case 1: + pMdiArea = mpModelWidgetContainer; + break; + case 2: + pMdiArea = mpPlotWindowContainer; + break; + default: + return; + } + // set the QMdiArea view mode + if (pMdiArea) { + QMdiSubWindow *pSubWindow = 0; + switch (pMdiArea->viewMode()) { + case QMdiArea::SubWindowView: + pMdiArea->setViewMode(QMdiArea::TabbedView); + break; + case QMdiArea::TabbedView: + pMdiArea->setViewMode(QMdiArea::SubWindowView); + pSubWindow = pMdiArea->currentSubWindow(); + if (pSubWindow) { + pSubWindow->show(); + pSubWindow->setWindowState(Qt::WindowMaximized); + } + break; + default: + break; + } + } +} + void MainWindow::instantiateModel() { ModelWidget *pModelWidget = mpModelWidgetContainer->getCurrentModelWidget(); @@ -2545,6 +2585,10 @@ void MainWindow::createActions() mpTileWindowsVerticallyAction = new QAction(tr("Tile Windows Vertically"), this); mpTileWindowsVerticallyAction->setStatusTip(tr("Arranges all child windows in a vertically tiled pattern")); connect(mpTileWindowsVerticallyAction, SIGNAL(triggered()), SLOT(tileSubWindowsVertically())); + // Toggle between tab or sub-window view + mpToggleTabOrSubWindowView = new QAction(tr("Toggle Tab/Sub-window View"), this); + mpToggleTabOrSubWindowView->setStatusTip(tr("Toggle between tab or sub-window view mode")); + connect(mpToggleTabOrSubWindowView, SIGNAL(triggered()), SLOT(toggleTabOrSubWindowView())); // Simulation Menu // instantiate model action mpInstantiateModelAction = new QAction(QIcon(":/Resources/icons/flatmodel.svg"), tr("Instantiate Model"), this); @@ -2915,6 +2959,8 @@ void MainWindow::createMenus() pViewMenu->addAction(pViewToolbarsMenu->menuAction()); pViewMenu->addAction(pViewWindowsMenu->menuAction()); pViewMenu->addSeparator(); + pViewMenu->addAction(mpToggleTabOrSubWindowView); + pViewMenu->addSeparator(); pViewMenu->addAction(mpShowGridLinesAction); pViewMenu->addAction(mpResetZoomAction); pViewMenu->addAction(mpZoomInAction); diff --git a/OMEdit/OMEditGUI/MainWindow.h b/OMEdit/OMEditGUI/MainWindow.h index f0dddb3ddcc..3ddc79c6d1e 100644 --- a/OMEdit/OMEditGUI/MainWindow.h +++ b/OMEdit/OMEditGUI/MainWindow.h @@ -274,6 +274,7 @@ class MainWindow : public QMainWindow QAction *mpCascadeWindowsAction; QAction *mpTileWindowsHorizontallyAction; QAction *mpTileWindowsVerticallyAction; + QAction *mpToggleTabOrSubWindowView; // Simulation Menu QAction *mpInstantiateModelAction; QAction *mpCheckModelAction; @@ -389,6 +390,7 @@ public slots: void cascadeSubWindows(); void tileSubWindowsHorizontally(); void tileSubWindowsVertically(); + void toggleTabOrSubWindowView(); void instantiateModel(); void checkModel(); void checkAllModels(); diff --git a/OMEdit/OMEditGUI/Options/OptionsDialog.cpp b/OMEdit/OMEditGUI/Options/OptionsDialog.cpp index c453874175b..58ca1c183c0 100644 --- a/OMEdit/OMEditGUI/Options/OptionsDialog.cpp +++ b/OMEdit/OMEditGUI/Options/OptionsDialog.cpp @@ -1502,7 +1502,7 @@ GeneralSettingsPage::GeneralSettingsPage(OptionsDialog *pOptionsDialog) pLibrariesBrowserLayout->addWidget(mpShowProtectedClasses, 1, 0, 1, 2); mpLibrariesBrowserGroupBox->setLayout(pLibrariesBrowserLayout); // Modeling View Mode - mpModelingViewModeGroupBox = new QGroupBox(tr("Modeling View Mode")); + mpModelingViewModeGroupBox = new QGroupBox(tr("Default Modeling View Mode")); mpModelingTabbedViewRadioButton = new QRadioButton(tr("Tabbed View")); mpModelingTabbedViewRadioButton->setChecked(true); mpModelingSubWindowViewRadioButton = new QRadioButton(tr("SubWindow View")); @@ -3768,7 +3768,7 @@ PlottingPage::PlottingPage(OptionsDialog *pOptionsDialog) pGeneralGroupBoxLayout->addWidget(mpAutoScaleCheckBox, 0, 0); mpGeneralGroupBox->setLayout(pGeneralGroupBoxLayout); // Plotting View Mode - mpPlottingViewModeGroupBox = new QGroupBox(tr("Plotting View Mode")); + mpPlottingViewModeGroupBox = new QGroupBox(tr("Default Plotting View Mode")); mpPlottingTabbedViewRadioButton = new QRadioButton(tr("Tabbed View")); mpPlottingTabbedViewRadioButton->setChecked(true); mpPlottingSubWindowViewRadioButton = new QRadioButton(tr("SubWindow View"));