From 2280a8cbfaad922c8f03f59eefd38ba82b4899cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jacob=20St=C3=B8ren?= Date: Wed, 17 Apr 2013 10:59:34 +0200 Subject: [PATCH] Toolbar and menu refinements Added Snapshot actions to a new toolbar. Moved the snapshot file actions from debug menu to File->Export Moved the Snapshot to Clip board to Edit menu. Moved create new Project tree and Property editor action to Windows menu Added a separator in the Windwsmenu after the "fixed Docks" Set unique names on the additional Prop and Project doc windows p4#: 21326 --- ApplicationCode/Resources/ResInsight.qrc | 1 + .../Resources/SnapShotSaveViews.png | Bin 0 -> 1745 bytes .../UserInterface/RiuMainWindow.cpp | 112 +++++++++++------- ApplicationCode/UserInterface/RiuMainWindow.h | 9 +- 4 files changed, 78 insertions(+), 44 deletions(-) create mode 100644 ApplicationCode/Resources/SnapShotSaveViews.png diff --git a/ApplicationCode/Resources/ResInsight.qrc b/ApplicationCode/Resources/ResInsight.qrc index a51739f3de..eb5bfbe0e7 100644 --- a/ApplicationCode/Resources/ResInsight.qrc +++ b/ApplicationCode/Resources/ResInsight.qrc @@ -36,6 +36,7 @@ draw_style_surface_24x24.png SnapShot.png SnapShotSave.png + SnapShotSaveViews.png fs_CellFace.glsl diff --git a/ApplicationCode/Resources/SnapShotSaveViews.png b/ApplicationCode/Resources/SnapShotSaveViews.png new file mode 100644 index 0000000000000000000000000000000000000000..ee526bc6eef2c8a8a782685b17d575cbc2b7408c GIT binary patch literal 1745 zcmV;?1}^!DP)Px#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FcU01FcV0GgZ_00007bV*G`2i*h_ z1_~!6ITAPk00vP>L_t(Y$DNi>Y*oh<#=kT7-go`}_}LiSxCEORFti{r!4-)KNh2t! zNKuCP6)lD}@U3C)`NJN}a^WSb82qutX+^1*9 z&%O`)z593O&YUg`Q5&UF>Di5R=KE>BqxohC|403FU?4l^y5g0?hq2P^a>%KjiTt=Z@+b7y8#1WFdG0^ zS{a66Mj{nds*t74CYxod$uJN}1+pD51I!F& zhGrmEDU?bfm0ALfjEsDJMMuXIZLO_ag|N023i%DfvU5rsD8q;o4b2+NKq6C8X$qBU zROau&aigUZ{2Qd|EkH^IB~#dY_Uy4srP9xLKK1kqfz%|m;kn2_n*;ze^XC>b07{f$ zsZuK4ox~si@Ouyui0Hme3}!&53irHu01UfYt@5Qymu`Q5@Bn801llY$@q;al&jkp8 zR2qp&5d=QG*=aNui~nJ7yRA^P#AM8LMRQCHl%q;I0_^BkT^H-ttpkH`@xle1Iei9>ZNn1Q(hSPw^0goc zVgT8CqB%7NDozM~joX^@_}i_|D2@{DXz^$&PTAgkaSC7``7MPEwS#fq+5E7UC#E6o$wb z3UC|;l}ZItN_d`!!1s~KWMJ7A*#MBuW`iqNu6(@bg`N%bbTNY9cTj zW1y76FMsd+ZCmhb3s~E|8r6k5T^;`jr#`rfi(}Vew2dfr@y6j-@QodtVKeh;DJ1|v zDFtH;4jeduef#zy3`4ZFwV_xnA`C;+YBe-C1f>!rafIF9`JuT}t_j$AWV1QE_^l^t z$M(&tp&@Ja_4bIVySM*g18BW}NgovD^LYe8fLty|$B!RJ6h%mqg!b>>56|_| z1Y3GHb=m;r7voxM4Py*~Ai&#qL zXWa%o|J+)&aecS7ZA*_>SeUzG1Gx7^i(J=5Lqh|mrlx3UXb6LYgNWmpYPA|1#~~tu z)*3AZHjnjwHFYhEpL_NhXZ5NTXe?y($jHdlYp?$5FXzvnKWh_Fxlkyu)*AVIo`eu= zSr*#b+Nf5m@$Bp@(ln(sO<4#*#bS{y%R-u_`0>z-xsH{c>0;IU^v1QZxzq1VmQI}b z&4@APh7e*3z@ly2_IP`Hd$4TTGW7NJQK?j7&+}m0Hbqgy<#HKO6cGS!YHFf-z0P46 zVt#(!x_6wYQj=y>7%bNZLCwgg9zKPG800000NkvXXu0mjfy!JBw literal 0 HcmV?d00001 diff --git a/ApplicationCode/UserInterface/RiuMainWindow.cpp b/ApplicationCode/UserInterface/RiuMainWindow.cpp index 07d8e3e145..f649b4c8be 100644 --- a/ApplicationCode/UserInterface/RiuMainWindow.cpp +++ b/ApplicationCode/UserInterface/RiuMainWindow.cpp @@ -176,7 +176,7 @@ void RiuMainWindow::closeEvent(QCloseEvent* event) void RiuMainWindow::createActions() { // File actions - m_openAction = new QAction(QIcon(":/AppLogo48x48.png"), "&Open Eclipse Case", this); + m_openEclipseCaseAction = new QAction(QIcon(":/AppLogo48x48.png"), "&Open Eclipse Case", this); m_openInputEclipseFileAction= new QAction(QIcon(":/EclipseInput48x48.png"), "&Open Input Eclipse Case", this); m_openMultipleEclipseCasesAction = new QAction(QIcon(":/CreateGridCaseGroup16x16.png"), "&Create Grid Case Group from Files", this); @@ -188,17 +188,17 @@ void RiuMainWindow::createActions() m_mockLargeResultsModelAction = new QAction("Large Mock Model", this); m_mockInputModelAction = new QAction("Input Mock Model", this); - m_snapshotToFile = new QAction("Snapshot To File", this); - m_snapshotToClipboard = new QAction("Snapshot To Clipboard", this); - m_snapshotAllViewsToFile = new QAction("Snapshot All Views To File", this); + m_snapshotToFile = new QAction(QIcon(":/SnapShotSave.png"), "Snapshot To File", this); + m_snapshotToClipboard = new QAction(QIcon(":/SnapShot.png"), "Copy Snapshot To Clipboard", this); + m_snapshotAllViewsToFile = new QAction(QIcon(":/SnapShotSaveViews.png"), "Snapshot All Views To File", this); m_saveProjectAction = new QAction(QIcon(":/Save.png"), "&Save Project", this); m_saveProjectAsAction = new QAction(QIcon(":/Save.png"), "Save Project &As", this); - m_closeAction = new QAction("&Close", this); + m_closeProjectAction = new QAction("&Close Project", this); m_exitAction = new QAction("E&xit", this); - connect(m_openAction, SIGNAL(triggered()), SLOT(slotOpenBinaryGridFiles())); + connect(m_openEclipseCaseAction, SIGNAL(triggered()), SLOT(slotOpenBinaryGridFiles())); connect(m_openInputEclipseFileAction,SIGNAL(triggered()), SLOT(slotOpenInputFiles())); connect(m_openMultipleEclipseCasesAction,SIGNAL(triggered()), SLOT(slotOpenMultipleCases())); connect(m_openProjectAction, SIGNAL(triggered()), SLOT(slotOpenProject())); @@ -216,7 +216,7 @@ void RiuMainWindow::createActions() connect(m_saveProjectAction, SIGNAL(triggered()), SLOT(slotSaveProject())); connect(m_saveProjectAsAction, SIGNAL(triggered()), SLOT(slotSaveProjectAs())); - connect(m_closeAction, SIGNAL(triggered()), SLOT(slotCloseProject())); + connect(m_closeProjectAction, SIGNAL(triggered()), SLOT(slotCloseProject())); connect(m_exitAction, SIGNAL(triggered()), QApplication::instance(), SLOT(closeAllWindows())); @@ -250,7 +250,7 @@ void RiuMainWindow::createActions() connect(m_zoomAll, SIGNAL(triggered()), SLOT(slotZoomAll())); // Debug actions - m_newPropertyView = new QAction("New Property View", this); + m_newPropertyView = new QAction("New Project and Property View", this); connect(m_newPropertyView, SIGNAL(triggered()), SLOT(slotNewObjectPropertyView())); // Help actions @@ -266,18 +266,26 @@ void RiuMainWindow::createMenus() { // File menu QMenu* fileMenu = menuBar()->addMenu("&File"); - fileMenu->addAction(m_openAction); - fileMenu->addAction(m_openInputEclipseFileAction); - fileMenu->addAction(m_openMultipleEclipseCasesAction); + fileMenu->addAction(m_openProjectAction); fileMenu->addAction(m_openLastUsedProjectAction); + fileMenu->addSeparator(); + + QMenu* importMenu = fileMenu->addMenu("&Import"); + importMenu->addAction(m_openEclipseCaseAction); + importMenu->addAction(m_openInputEclipseFileAction); + importMenu->addAction(m_openMultipleEclipseCasesAction); + + QMenu* exportMenu = fileMenu->addMenu("&Export"); + exportMenu->addAction(m_snapshotToFile); + exportMenu->addAction(m_snapshotAllViewsToFile); fileMenu->addSeparator(); fileMenu->addAction(m_saveProjectAction); fileMenu->addAction(m_saveProjectAsAction); fileMenu->addSeparator(); - fileMenu->addAction(m_closeAction); + fileMenu->addAction(m_closeProjectAction); fileMenu->addSeparator(); fileMenu->addAction(m_exitAction); @@ -285,7 +293,10 @@ void RiuMainWindow::createMenus() // Edit menu QMenu* editMenu = menuBar()->addMenu("&Edit"); + editMenu->addAction(m_snapshotToClipboard); + editMenu->addSeparator(); editMenu->addAction(m_editPreferences); + connect(editMenu, SIGNAL(aboutToShow()), SLOT(slotRefreshEditActions())); @@ -299,8 +310,6 @@ void RiuMainWindow::createMenus() viewMenu->addAction(m_viewFromEast); viewMenu->addAction(m_viewFromBelow); viewMenu->addAction(m_viewFromAbove); - viewMenu->addSeparator(); - viewMenu->addAction(m_newPropertyView); connect(viewMenu, SIGNAL(aboutToShow()), SLOT(slotRefreshViewActions())); @@ -311,11 +320,6 @@ void RiuMainWindow::createMenus() debugMenu->addAction(m_mockLargeResultsModelAction); debugMenu->addAction(m_mockInputModelAction); - debugMenu->addSeparator(); - debugMenu->addAction(m_snapshotToClipboard); - debugMenu->addAction(m_snapshotToFile); - debugMenu->addAction(m_snapshotAllViewsToFile); - connect(debugMenu, SIGNAL(aboutToShow()), SLOT(slotRefreshDebugActions())); m_windowMenu = menuBar()->addMenu("&Windows"); @@ -336,18 +340,20 @@ void RiuMainWindow::createToolBars() m_standardToolBar = addToolBar(tr("Standard")); m_standardToolBar->setObjectName(m_standardToolBar->windowTitle()); - m_standardToolBar->addAction(m_openAction); + m_standardToolBar->addAction(m_openEclipseCaseAction); m_standardToolBar->addAction(m_openInputEclipseFileAction); m_standardToolBar->addAction(m_openProjectAction); //m_standardToolBar->addAction(m_openLastUsedProjectAction); m_standardToolBar->addAction(m_saveProjectAction); - // Create animation toolbar - m_animationToolBar = new caf::AnimationToolBar("Animation", this); - addToolBar(m_animationToolBar); - //connect(m_animationToolBar, SIGNAL(signalFrameRateChanged(double)), SLOT(slotFramerateChanged(double))); + // Snapshots + m_snapshotToolbar = addToolBar(tr("View Snapshots")); + m_snapshotToolbar->setObjectName(m_snapshotToolbar->windowTitle()); + m_snapshotToolbar->addAction(m_snapshotToClipboard); + m_snapshotToolbar->addAction(m_snapshotToFile); + m_snapshotToolbar->addAction(m_snapshotAllViewsToFile); - // View toolbar + // View toolbar m_viewToolBar = addToolBar(tr("View")); m_viewToolBar->setObjectName(m_viewToolBar->windowTitle()); m_viewToolBar->addAction(m_zoomAll); @@ -358,6 +364,11 @@ void RiuMainWindow::createToolBars() m_viewToolBar->addAction(m_viewFromAbove); m_viewToolBar->addAction(m_viewFromBelow); + // Create animation toolbar + m_animationToolBar = new caf::AnimationToolBar("Animation", this); + addToolBar(m_animationToolBar); + //connect(m_animationToolBar, SIGNAL(signalFrameRateChanged(double)), SLOT(slotFramerateChanged(double))); + refreshAnimationActions(); } @@ -369,7 +380,7 @@ void RiuMainWindow::createToolBars() void RiuMainWindow::createDockPanels() { { - QDockWidget* dockWidget = new QDockWidget("Project", this); + QDockWidget* dockWidget = new QDockWidget("Project Tree", this); dockWidget->setObjectName("dockWidget"); dockWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea); @@ -388,6 +399,19 @@ void RiuMainWindow::createDockPanels() addDockWidget(Qt::LeftDockWidgetArea, dockWidget); } + { + QDockWidget* dockWidget = new QDockWidget("Property Editor", this); + dockWidget->setObjectName("dockWidget"); + dockWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea); + + m_pdmUiPropertyView = new caf::PdmUiPropertyView(dockWidget); + dockWidget->setWidget(m_pdmUiPropertyView); + + connect(m_treeView, SIGNAL(selectedObjectChanged( caf::PdmObject* )), m_pdmUiPropertyView, SLOT(showProperties( caf::PdmObject* ))); + + addDockWidget(Qt::LeftDockWidgetArea, dockWidget); + } + { QDockWidget* dockPanel = new QDockWidget("Result Info", this); dockPanel->setObjectName("dockResultInfoPanel"); @@ -408,19 +432,7 @@ void RiuMainWindow::createDockPanels() addDockWidget(Qt::BottomDockWidgetArea, dockPanel); } - { - QDockWidget* dockWidget = new QDockWidget("Properties", this); - dockWidget->setObjectName("dockWidget"); - dockWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea); - - m_pdmUiPropertyView = new caf::PdmUiPropertyView(dockWidget); - dockWidget->setWidget(m_pdmUiPropertyView); - - connect(m_treeView, SIGNAL(selectedObjectChanged( caf::PdmObject* )), m_pdmUiPropertyView, SLOT(showProperties( caf::PdmObject* ))); - - addDockWidget(Qt::LeftDockWidgetArea, dockWidget); - } - + setCorner(Qt::BottomLeftCorner, Qt::LeftDockWidgetArea); setCorner(Qt::BottomRightCorner, Qt::BottomDockWidgetArea); } @@ -491,7 +503,7 @@ void RiuMainWindow::slotRefreshFileActions() bool projectExists = true; m_saveProjectAction->setEnabled(projectExists); m_saveProjectAsAction->setEnabled(projectExists); - m_closeAction->setEnabled(projectExists); + m_closeProjectAction->setEnabled(projectExists); } @@ -1132,13 +1144,19 @@ RiuProcessMonitor* RiuMainWindow::processMonitor() void RiuMainWindow::slotBuildWindowActions() { m_windowMenu->clear(); + m_windowMenu->addAction(m_newPropertyView); + m_windowMenu->addSeparator(); QList dockWidgets = findChildren(); + + int i = 0; foreach (QDockWidget* dock, dockWidgets) { if (dock) { + if (i == 4) m_windowMenu->addSeparator(); m_windowMenu->addAction(dock->toggleViewAction()); + ++i; } } } @@ -1199,14 +1217,23 @@ void RiuMainWindow::slotNewObjectPropertyView() RimUiTreeView* treeView = NULL; { - QDockWidget* dockWidget = new QDockWidget("Project", this); + QDockWidget* dockWidget = new QDockWidget("Additional Project Tree " + QString::number(additionalProjectTrees.size() + 1), this); dockWidget->setObjectName("dockWidget"); dockWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea); treeView = new RimUiTreeView(dockWidget); + treeView->setSelectionMode(QAbstractItemView::ExtendedSelection); + + // Drag and drop configuration + m_treeView->setDragEnabled(true); + m_treeView->viewport()->setAcceptDrops(true); + m_treeView->setDropIndicatorShown(true); + m_treeView->setDragDropMode(QAbstractItemView::DragDrop); + dockWidget->setWidget(treeView); addDockWidget(Qt::RightDockWidgetArea, dockWidget); + additionalProjectTrees.push_back(dockWidget); } treeView->setModel(m_treeModelPdm); @@ -1214,7 +1241,7 @@ void RiuMainWindow::slotNewObjectPropertyView() { - QDockWidget* dockWidget = new QDockWidget("Properties", this); + QDockWidget* dockWidget = new QDockWidget("Additional Property Editor " + QString::number(additionalPropertyEditors.size() + 1), this); dockWidget->setObjectName("dockWidget"); dockWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea); @@ -1224,6 +1251,7 @@ void RiuMainWindow::slotNewObjectPropertyView() addDockWidget(Qt::RightDockWidgetArea, dockWidget); connect(treeView, SIGNAL(selectedObjectChanged( caf::PdmObject* )), propView, SLOT(showProperties( caf::PdmObject* ))); + additionalPropertyEditors.push_back(dockWidget); } } diff --git a/ApplicationCode/UserInterface/RiuMainWindow.h b/ApplicationCode/UserInterface/RiuMainWindow.h index 463599aa36..d8ffab1ecc 100644 --- a/ApplicationCode/UserInterface/RiuMainWindow.h +++ b/ApplicationCode/UserInterface/RiuMainWindow.h @@ -104,14 +104,14 @@ private: private: // File actions - QAction* m_openAction; + QAction* m_openEclipseCaseAction; QAction* m_openInputEclipseFileAction; QAction* m_openMultipleEclipseCasesAction; QAction* m_openProjectAction; QAction* m_openLastUsedProjectAction; QAction* m_saveProjectAction; QAction* m_saveProjectAsAction; - QAction* m_closeAction; + QAction* m_closeProjectAction; QAction* m_exitAction; // Edit actions @@ -146,6 +146,7 @@ private: // Toolbars QToolBar* m_viewToolBar; QToolBar* m_standardToolBar; + QToolBar* m_snapshotToolbar; QFrame* m_CentralFrame; @@ -224,4 +225,8 @@ private: RimUiTreeModelPdm* m_treeModelPdm; caf::PdmObject* m_pdmRoot; caf::PdmUiPropertyView* m_pdmUiPropertyView; + + std::vector > additionalProjectTrees; + std::vector > additionalPropertyEditors; + };