diff --git a/src/plugins/projectexplorer/projectwindow.cpp b/src/plugins/projectexplorer/projectwindow.cpp index ce7a2db229a..f9da875f9ea 100644 --- a/src/plugins/projectexplorer/projectwindow.cpp +++ b/src/plugins/projectexplorer/projectwindow.cpp @@ -661,8 +661,38 @@ void ProjectWindow::activateProjectPanel(Utils::Id panelId) d->activateProjectPanel(panelId); } +void ProjectWindow::hideEvent(QHideEvent *event) +{ + savePersistentSettings(); + FancyMainWindow::hideEvent(event); +} + +void ProjectWindow::showEvent(QShowEvent *event) +{ + loadPersistentSettings(); + FancyMainWindow::showEvent(event); +} + ProjectWindow::~ProjectWindow() = default; +const char PROJECT_WINDOW_KEY[] = "ProjectExplorer.ProjectWindow"; + +void ProjectWindow::savePersistentSettings() const +{ + QSettings * const settings = ICore::settings(); + settings->beginGroup(PROJECT_WINDOW_KEY); + saveSettings(settings); + settings->endGroup(); +} + +void ProjectWindow::loadPersistentSettings() +{ + QSettings * const settings = ICore::settings(); + settings->beginGroup(PROJECT_WINDOW_KEY); + restoreSettings(settings); + settings->endGroup(); +} + QSize SelectorDelegate::sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const { QSize s = QStyledItemDelegate::sizeHint(option, index); diff --git a/src/plugins/projectexplorer/projectwindow.h b/src/plugins/projectexplorer/projectwindow.h index 09c242034c8..c048a4ac460 100644 --- a/src/plugins/projectexplorer/projectwindow.h +++ b/src/plugins/projectexplorer/projectwindow.h @@ -64,6 +64,12 @@ public: void activateProjectPanel(Utils::Id panelId); private: + void hideEvent(QHideEvent *event) override; + void showEvent(QShowEvent *event) override; + + void savePersistentSettings() const; + void loadPersistentSettings(); + const std::unique_ptr d; };