Skip to content

Commit 9fb9cb6

Browse files
committed
Fixing hidden/removed dock state so it is persisted in our settings between launches - so hidden docks don't magically reappear when you relaunch the app.
1 parent 8236c83 commit 9fb9cb6

2 files changed

Lines changed: 19 additions & 0 deletions

File tree

โ€Žsrc/settings/_default.settingsโ€Ž

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,13 @@
175175
"category": "Qt",
176176
"setting": "timeline_height"
177177
},
178+
{
179+
"value": [],
180+
"title": "",
181+
"type": "hidden",
182+
"category": "Qt",
183+
"setting": "hidden_docks"
184+
},
178185
{
179186
"value": "thumbnail",
180187
"title": "",

โ€Žsrc/windows/main_window.pyโ€Ž

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3175,6 +3175,10 @@ def save_settings(self):
31753175
s.set('window_state_v2', qt_types.bytes_to_str(self.saveState()))
31763176
s.set('window_geometry_v2', qt_types.bytes_to_str(self.saveGeometry()))
31773177
s.set('docks_frozen', self.docks_frozen)
3178+
# Qt's saveState() does not capture docks removed via removeDockWidget(); save them explicitly.
3179+
hidden = [d.objectName() for d in self.getDocks()
3180+
if self.dockWidgetArea(d) == Qt.NoDockWidgetArea]
3181+
s.set('hidden_docks', hidden)
31783182
dock = getattr(self, "dockTimeline", None)
31793183
if dock:
31803184
s.set('timeline_height', dock.height())
@@ -3651,6 +3655,14 @@ def _restore_state_and_timeline(self):
36513655
"""Restore saved dock state and then apply timeline height."""
36523656
if self.saved_state:
36533657
self.restoreState(self.saved_state)
3658+
# Re-apply removed-dock state that Qt's saveState/restoreState doesn't preserve.
3659+
hidden_names = get_app().get_settings().get('hidden_docks') or []
3660+
if hidden_names:
3661+
name_to_dock = {d.objectName(): d for d in self.getDocks()}
3662+
for name in hidden_names:
3663+
dock = name_to_dock.get(name)
3664+
if dock:
3665+
self.removeDockWidget(dock)
36543666
self._apply_saved_timeline_height()
36553667

36563668
def _apply_saved_timeline_height(self):

0 commit comments

Comments
ย (0)