Skip to content

Commit b3541c7

Browse files
committed
Closes #1168
1 parent 4fb01de commit b3541c7

File tree

2 files changed

+29
-1
lines changed

2 files changed

+29
-1
lines changed

src/Interface/Application/SCIRunMainWindow.cc

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

674676
void 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__
13721397
static const Qt::Key MetadataShiftKey = Qt::Key_Meta;
13731398
#else

src/Interface/Application/SCIRunMainWindow.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,8 @@ public Q_SLOTS:
9090
virtual void closeEvent(QCloseEvent* event) override;
9191
virtual void keyPressEvent(QKeyEvent *event) override;
9292
virtual void keyReleaseEvent(QKeyEvent *event) override;
93+
virtual void showEvent(QShowEvent* event) override;
94+
virtual void hideEvent(QHideEvent* event) override;
9395
private:
9496
static SCIRunMainWindow* instance_;
9597
SCIRunMainWindow();
@@ -104,7 +106,7 @@ public Q_SLOTS:
104106
QAction* actionEnterWhatsThisMode_;
105107
QStringList favoriteModuleNames_;
106108
QToolButton* executeButton_;
107-
109+
QByteArray windowState_;
108110
void postConstructionSignalHookup();
109111
void executeCommandLineRequests();
110112
void setTipsAndWhatsThis();
@@ -170,6 +172,7 @@ private Q_SLOTS:
170172
void makeModulesLargeSize();
171173
void makeModulesSmallSize();
172174
void alertForNetworkCycles(int code);
175+
void updateDockWidgetProperties(bool isFloating);
173176
void setDataDirectoryFromGUI();
174177
void toolkitDownload();
175178
void addToPathFromGUI();

0 commit comments

Comments
 (0)