@@ -356,6 +356,8 @@ SCIRunMainWindow::SCIRunMainWindow() : shortcuts_(0), firstTimePythonShown_(true
356356
357357 hideNonfunctioningWidgets ();
358358
359+ connect (moduleSelectorDockWidget_, SIGNAL (topLevelChanged (bool )), this , SLOT (updateDockWidgetProperties (bool )));
360+
359361 statusBar ()->addPermanentWidget (new QLabel (" Version: " + QString::fromStdString (VersionInfo::GIT_VERSION_TAG)));
360362
361363 WidgetStyleMixin::tabStyle (optionsTabWidget_);
@@ -673,6 +675,7 @@ void SCIRunMainWindow::loadRecentNetwork()
673675
674676void SCIRunMainWindow::closeEvent (QCloseEvent* event)
675677{
678+ windowState_ = saveState ();
676679 if (okToContinue ())
677680 {
678681 writeSettings ();
@@ -1368,6 +1371,28 @@ void SCIRunMainWindow::adjustModuleDock(int state)
13681371 Preferences::Instance ().modulesAreDockable .setValue (dockable);
13691372}
13701373
1374+ void SCIRunMainWindow::showEvent (QShowEvent* event)
1375+ {
1376+ restoreState (windowState_);
1377+ QMainWindow::showEvent (event);
1378+ }
1379+
1380+ void SCIRunMainWindow::hideEvent (QHideEvent * event)
1381+ {
1382+ windowState_ = saveState ();
1383+ QMainWindow::hideEvent (event);
1384+ }
1385+
1386+ void SCIRunMainWindow::updateDockWidgetProperties (bool isFloating)
1387+ {
1388+ auto dock = qobject_cast<QDockWidget*>(sender ());
1389+ if (dock && isFloating)
1390+ {
1391+ dock->setWindowFlags (Qt::Window);
1392+ dock->show ();
1393+ }
1394+ }
1395+
13711396#ifdef __APPLE__
13721397static const Qt::Key MetadataShiftKey = Qt::Key_Meta;
13731398#else
0 commit comments