From bdb42bbbbd1a30dfc7080e0837fbdc8e76e9b3bb Mon Sep 17 00:00:00 2001 From: RickyRister <42636155+RickyRister@users.noreply.github.com> Date: Sun, 8 Feb 2026 13:37:56 -0800 Subject: [PATCH] [VDE] Separate layout settings for visual deck editor (#6595) --- .../tab_deck_editor_visual.cpp | 12 +++---- .../settings/layouts_settings.cpp | 32 +++++++++++++++++++ .../libcockatrice/settings/layouts_settings.h | 8 +++++ 3 files changed, 46 insertions(+), 6 deletions(-) diff --git a/cockatrice/src/interface/widgets/tabs/visual_deck_editor/tab_deck_editor_visual.cpp b/cockatrice/src/interface/widgets/tabs/visual_deck_editor/tab_deck_editor_visual.cpp index 9d1611ed5..29f871823 100644 --- a/cockatrice/src/interface/widgets/tabs/visual_deck_editor/tab_deck_editor_visual.cpp +++ b/cockatrice/src/interface/widgets/tabs/visual_deck_editor/tab_deck_editor_visual.cpp @@ -266,19 +266,19 @@ void TabDeckEditorVisual::refreshShortcuts() void TabDeckEditorVisual::loadLayout() { LayoutsSettings &layouts = SettingsCache::instance().layouts(); - auto layoutState = layouts.getDeckEditorLayoutState(); + auto layoutState = layouts.getVisualDeckEditorLayoutState(); if (layoutState.isNull()) { restartLayout(); } else { restoreState(layoutState); - restoreGeometry(layouts.getDeckEditorGeometry()); + restoreGeometry(layouts.getVisualDeckEditorGeometry()); } for (auto it = dockToActions.constKeyValueBegin(); it != dockToActions.constKeyValueEnd(); ++it) { auto dockWidget = it->first; auto actions = it->second; - QSize size = layouts.getDeckEditorWidgetSize(dockWidget->objectName(), actions.defaultSize); + QSize size = layouts.getVisualDeckEditorWidgetSize(dockWidget->objectName(), actions.defaultSize); dockWidget->setMinimumSize(size); dockWidget->setMaximumSize(size); } @@ -344,11 +344,11 @@ bool TabDeckEditorVisual::eventFilter(QObject *o, QEvent *e) { if (o == this && e->type() == QEvent::Hide) { LayoutsSettings &layouts = SettingsCache::instance().layouts(); - layouts.setDeckEditorLayoutState(saveState()); - layouts.setDeckEditorGeometry(saveGeometry()); + layouts.setVisualDeckEditorLayoutState(saveState()); + layouts.setVisualDeckEditorGeometry(saveGeometry()); for (auto dockWidget : dockToActions.keys()) { - layouts.setDeckEditorWidgetSize(dockWidget->objectName(), dockWidget->size()); + layouts.setVisualDeckEditorWidgetSize(dockWidget->objectName(), dockWidget->size()); } } return false; diff --git a/libcockatrice_settings/libcockatrice/settings/layouts_settings.cpp b/libcockatrice_settings/libcockatrice/settings/layouts_settings.cpp index d58d84323..0ec03ba07 100644 --- a/libcockatrice_settings/libcockatrice/settings/layouts_settings.cpp +++ b/libcockatrice_settings/libcockatrice/settings/layouts_settings.cpp @@ -6,6 +6,7 @@ const static QString SIZE_PROP = "widgetSize"; const static QString GROUP_MAIN_WINDOW = "mainWindow"; const static QString GROUP_DECK_EDITOR = "deckEditor"; +const static QString GROUP_VISUAL_DECK_EDITOR = "visualDeckEditor"; const static QString GROUP_DECK_EDITOR_DB = "deckEditorDb"; const static QString GROUP_SETS_DIALOG = "setsDialog"; const static QString GROUP_TOKEN_DIALOG = "tokenDialog"; @@ -58,6 +59,37 @@ QSize LayoutsSettings::getDeckEditorWidgetSize(const QString &widgetName, const return previous == QVariant() ? defaultValue : previous.toSize(); } +QByteArray LayoutsSettings::getVisualDeckEditorLayoutState() +{ + return getValue(STATE_PROP, GROUP_VISUAL_DECK_EDITOR).toByteArray(); +} + +void LayoutsSettings::setVisualDeckEditorLayoutState(const QByteArray &value) +{ + setValue(value, STATE_PROP, GROUP_VISUAL_DECK_EDITOR); +} + +QByteArray LayoutsSettings::getVisualDeckEditorGeometry() +{ + return getValue(GEOMETRY_PROP, GROUP_VISUAL_DECK_EDITOR).toByteArray(); +} + +void LayoutsSettings::setVisualDeckEditorGeometry(const QByteArray &value) +{ + setValue(value, GEOMETRY_PROP, GROUP_VISUAL_DECK_EDITOR); +} + +void LayoutsSettings::setVisualDeckEditorWidgetSize(const QString &widgetName, const QSize &value) +{ + setValue(value, widgetName, GROUP_VISUAL_DECK_EDITOR, SIZE_PROP); +} + +QSize LayoutsSettings::getVisualDeckEditorWidgetSize(const QString &widgetName, const QSize &defaultValue) +{ + QVariant previous = getValue(widgetName, GROUP_VISUAL_DECK_EDITOR, SIZE_PROP); + return previous == QVariant() ? defaultValue : previous.toSize(); +} + QByteArray LayoutsSettings::getDeckEditorDbHeaderState() { return getValue(STATE_PROP, GROUP_DECK_EDITOR_DB, "header").toByteArray(); diff --git a/libcockatrice_settings/libcockatrice/settings/layouts_settings.h b/libcockatrice_settings/libcockatrice/settings/layouts_settings.h index e3dd9eac7..620753815 100644 --- a/libcockatrice_settings/libcockatrice/settings/layouts_settings.h +++ b/libcockatrice_settings/libcockatrice/settings/layouts_settings.h @@ -23,6 +23,10 @@ public: void setDeckEditorGeometry(const QByteArray &value); void setDeckEditorWidgetSize(const QString &widgetName, const QSize &value); + void setVisualDeckEditorLayoutState(const QByteArray &value); + void setVisualDeckEditorGeometry(const QByteArray &value); + void setVisualDeckEditorWidgetSize(const QString &widgetName, const QSize &value); + void setDeckEditorDbHeaderState(const QByteArray &value); void setSetsDialogHeaderState(const QByteArray &value); void setSetsDialogGeometry(const QByteArray &value); @@ -42,6 +46,10 @@ public: QByteArray getDeckEditorGeometry(); QSize getDeckEditorWidgetSize(const QString &widgetName, const QSize &defaultValue = {}); + QByteArray getVisualDeckEditorLayoutState(); + QByteArray getVisualDeckEditorGeometry(); + QSize getVisualDeckEditorWidgetSize(const QString &widgetName, const QSize &defaultValue = {}); + QByteArray getDeckEditorDbHeaderState(); QByteArray getSetsDialogHeaderState(); QByteArray getSetsDialogGeometry();