diff --git a/qt/base/details_dialog.py b/qt/base/details_dialog.py index 0f15ddd8..d9c52a2e 100644 --- a/qt/base/details_dialog.py +++ b/qt/base/details_dialog.py @@ -17,8 +17,10 @@ class DetailsDialog(QDialog): self.app = app self.model = app.model.details_panel self._setupUi() - if self.app.prefs.detailsWindowRect is not None: - self.setGeometry(self.app.prefs.detailsWindowRect) + # To avoid saving uninitialized geometry on appWillSavePrefs, we track whether our dialog + # has been shown. If it has, we know that our geometry should be saved. + self._shown_once = False + self.app.prefs.restoreGeometry('DetailsWindowRect', self) self.tableModel = DetailsModel(self.model) # tableView is defined in subclasses self.tableView.setModel(self.tableModel) @@ -29,9 +31,14 @@ class DetailsDialog(QDialog): def _setupUi(self): # Virtual pass + def show(self): + self._shown_once = True + QDialog.show(self) + #--- Events def appWillSavePrefs(self): - self.app.prefs.detailsWindowRect = self.geometry() + if self._shown_once: + self.app.prefs.saveGeometry('DetailsWindowRect', self) #--- model --> view def refresh(self): diff --git a/qt/base/preferences.py b/qt/base/preferences.py index 0154d8eb..e92a511b 100644 --- a/qt/base/preferences.py +++ b/qt/base/preferences.py @@ -33,7 +33,6 @@ class Preferences(PreferencesBase): self.tableFontSize = get('TableFontSize', self.tableFontSize) self.resultWindowIsMaximized = get('ResultWindowIsMaximized', self.resultWindowIsMaximized) self.resultWindowRect = self.get_rect('ResultWindowRect', self.resultWindowRect) - self.detailsWindowRect = self.get_rect('DetailsWindowRect', self.detailsWindowRect) self.directoriesWindowRect = self.get_rect('DirectoriesWindowRect', self.directoriesWindowRect) self.recentResults = get('RecentResults', self.recentResults) self.recentFolders = get('RecentFolders', self.recentFolders) @@ -58,7 +57,6 @@ class Preferences(PreferencesBase): self.tableFontSize = QApplication.font().pointSize() self.resultWindowIsMaximized = False self.resultWindowRect = None - self.detailsWindowRect = None self.directoriesWindowRect = None self.recentResults = [] self.recentFolders = [] @@ -84,7 +82,6 @@ class Preferences(PreferencesBase): set_('TableFontSize', self.tableFontSize) set_('ResultWindowIsMaximized', self.resultWindowIsMaximized) self.set_rect('ResultWindowRect', self.resultWindowRect) - self.set_rect('DetailsWindowRect', self.detailsWindowRect) self.set_rect('DirectoriesWindowRect', self.directoriesWindowRect) set_('RecentResults', self.recentResults) set_('RecentFolders', self.recentFolders)