From d187748bff71f25227d91b713c97d8df59c1a956 Mon Sep 17 00:00:00 2001 From: RickyRister Date: Fri, 23 Jan 2026 02:03:40 -0800 Subject: [PATCH] create printing disabled info widget --- cockatrice/CMakeLists.txt | 1 + ...k_editor_printing_selector_dock_widget.cpp | 20 ++++++- ...eck_editor_printing_selector_dock_widget.h | 8 +++ .../printing_disabled_info_widget.cpp | 56 +++++++++++++++++++ .../printing_disabled_info_widget.h | 24 ++++++++ 5 files changed, 107 insertions(+), 2 deletions(-) create mode 100644 cockatrice/src/interface/widgets/deck_editor/printing_disabled_info_widget.cpp create mode 100644 cockatrice/src/interface/widgets/deck_editor/printing_disabled_info_widget.h diff --git a/cockatrice/CMakeLists.txt b/cockatrice/CMakeLists.txt index 6f3ab38a4..d675b809d 100644 --- a/cockatrice/CMakeLists.txt +++ b/cockatrice/CMakeLists.txt @@ -179,6 +179,7 @@ set(cockatrice_SOURCES src/interface/widgets/deck_editor/deck_editor_printing_selector_dock_widget.cpp src/interface/widgets/deck_editor/deck_list_style_proxy.cpp src/interface/widgets/deck_editor/deck_state_manager.cpp + src/interface/widgets/deck_editor/printing_disabled_info_widget.cpp src/interface/widgets/general/background_sources.cpp src/interface/widgets/general/display/background_plate_widget.cpp src/interface/widgets/general/display/banner_widget.cpp diff --git a/cockatrice/src/interface/widgets/deck_editor/deck_editor_printing_selector_dock_widget.cpp b/cockatrice/src/interface/widgets/deck_editor/deck_editor_printing_selector_dock_widget.cpp index 7c4e0de18..7c2e1bec4 100644 --- a/cockatrice/src/interface/widgets/deck_editor/deck_editor_printing_selector_dock_widget.cpp +++ b/cockatrice/src/interface/widgets/deck_editor/deck_editor_printing_selector_dock_widget.cpp @@ -1,6 +1,8 @@ #include "deck_editor_printing_selector_dock_widget.h" +#include "../../../client/settings/cache_settings.h" #include "../../../interface/widgets/tabs/abstract_tab_deck_editor.h" +#include "printing_disabled_info_widget.h" #include @@ -14,6 +16,11 @@ DeckEditorPrintingSelectorDockWidget::DeckEditorPrintingSelectorDockWidget(Abstr setFloating(false); createPrintingSelectorDock(); + printingDisabledInfoWidget = new PrintingDisabledInfoWidget(this); + + setVisibleWidget(SettingsCache::instance().getOverrideAllCardArtWithPersonalPreference()); + connect(&SettingsCache::instance(), &SettingsCache::overrideAllCardArtWithPersonalPreferenceChanged, this, + &DeckEditorPrintingSelectorDockWidget::setVisibleWidget); retranslateUi(); } @@ -26,10 +33,9 @@ void DeckEditorPrintingSelectorDockWidget::createPrintingSelectorDock() printingSelectorFrame->setObjectName("printingSelectorFrame"); printingSelectorFrame->addWidget(printingSelector); - auto *printingSelectorDockContents = new QWidget(); + printingSelectorDockContents = new QWidget(); printingSelectorDockContents->setObjectName("printingSelectorDockContents"); printingSelectorDockContents->setLayout(printingSelectorFrame); - setWidget(printingSelectorDockContents); installEventFilter(deckEditor); connect(printingSelector, &PrintingSelector::prevCardRequested, deckEditor->getDeckDockWidget(), @@ -42,3 +48,13 @@ void DeckEditorPrintingSelectorDockWidget::retranslateUi() { setWindowTitle(tr("Printing Selector")); } + +void DeckEditorPrintingSelectorDockWidget::setVisibleWidget(bool overridePrintings) +{ + if (overridePrintings) { + setWidget(printingDisabledInfoWidget); + } else { + setWidget(printingSelectorDockContents); + printingSelector->updateDisplay(); + } +} diff --git a/cockatrice/src/interface/widgets/deck_editor/deck_editor_printing_selector_dock_widget.h b/cockatrice/src/interface/widgets/deck_editor/deck_editor_printing_selector_dock_widget.h index d7836a938..1037b55fb 100644 --- a/cockatrice/src/interface/widgets/deck_editor/deck_editor_printing_selector_dock_widget.h +++ b/cockatrice/src/interface/widgets/deck_editor/deck_editor_printing_selector_dock_widget.h @@ -12,7 +12,9 @@ #include +class PrintingDisabledInfoWidget; class TabDeckEditor; + class DeckEditorPrintingSelectorDockWidget : public QDockWidget { Q_OBJECT @@ -20,10 +22,16 @@ public: explicit DeckEditorPrintingSelectorDockWidget(AbstractTabDeckEditor *parent); void createPrintingSelectorDock(); void retranslateUi(); + PrintingSelector *printingSelector; private: AbstractTabDeckEditor *deckEditor; + QWidget *printingSelectorDockContents; + PrintingDisabledInfoWidget *printingDisabledInfoWidget; + +private slots: + void setVisibleWidget(bool overridePrintings); }; #endif // DECK_EDITOR_PRINTING_SELECTOR_DOCK_WIDGET_H diff --git a/cockatrice/src/interface/widgets/deck_editor/printing_disabled_info_widget.cpp b/cockatrice/src/interface/widgets/deck_editor/printing_disabled_info_widget.cpp new file mode 100644 index 000000000..7c48d1e81 --- /dev/null +++ b/cockatrice/src/interface/widgets/deck_editor/printing_disabled_info_widget.cpp @@ -0,0 +1,56 @@ +#include "printing_disabled_info_widget.h" + +#include "../dialogs/override_printing_warning.h" + +#include +#include +#include +#include +#include + +PrintingDisabledInfoWidget::PrintingDisabledInfoWidget(QWidget *parent) : QWidget(parent) +{ + auto layout = new QVBoxLayout(this); + layout->setObjectName("PrintingDisabledInfoWidgetFrame"); + setLayout(layout); + + QLabel *imageLabel = new QLabel(this); + imageLabel->setAlignment(Qt::AlignCenter); + QIcon icon = style()->standardIcon(QStyle::SP_MessageBoxWarning); + imageLabel->setPixmap(icon.pixmap({60, 60})); + + textLabel = new QLabel(this); + textLabel->setWordWrap(true); + textLabel->setAlignment(Qt::AlignCenter); + + settingsButton = new QPushButton(this); + connect(settingsButton, &QPushButton::clicked, this, &PrintingDisabledInfoWidget::disableOverridePrintings); + + auto buttonLayout = new QHBoxLayout(this); + buttonLayout->addStretch(); + buttonLayout->addWidget(settingsButton); + buttonLayout->addStretch(); + + layout->addStretch(); + layout->addWidget(imageLabel); + layout->addWidget(textLabel); + layout->addLayout(buttonLayout); + layout->addStretch(); + + retranslateUi(); +} + +void PrintingDisabledInfoWidget::retranslateUi() +{ + textLabel->setText( + tr("The Printing Selector is disabled because you have currently enabled the setting to override all " + "selected printings with personal set preferences.\n\n" + "This setting means you'll only see the default printing for each card, instead of being able to select a " + "printing, and will not see the printings other people have selected.\n\n")); + settingsButton->setText(tr("Enable printings again")); +} + +void PrintingDisabledInfoWidget::disableOverridePrintings() +{ + OverridePrintingWarning::execMessageBox(this, false); +} \ No newline at end of file diff --git a/cockatrice/src/interface/widgets/deck_editor/printing_disabled_info_widget.h b/cockatrice/src/interface/widgets/deck_editor/printing_disabled_info_widget.h new file mode 100644 index 000000000..0851ccfad --- /dev/null +++ b/cockatrice/src/interface/widgets/deck_editor/printing_disabled_info_widget.h @@ -0,0 +1,24 @@ +#ifndef COCKATRICE_PRINTING_DISABLED_INFO_WIDGET_H +#define COCKATRICE_PRINTING_DISABLED_INFO_WIDGET_H +#include + +class QPushButton; +class QLabel; + +class PrintingDisabledInfoWidget : public QWidget +{ + Q_OBJECT + + QLabel *textLabel; + QPushButton *settingsButton; + +private slots: + void disableOverridePrintings(); + +public: + explicit PrintingDisabledInfoWidget(QWidget *parent); + + void retranslateUi(); +}; + +#endif // COCKATRICE_PRINTING_DISABLED_INFO_WIDGET_H