create printing disabled info widget

This commit is contained in:
RickyRister 2026-01-23 02:03:40 -08:00
parent afed3853a5
commit d187748bff
5 changed files with 107 additions and 2 deletions

View file

@ -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

View file

@ -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 <QVBoxLayout>
@ -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();
}
}

View file

@ -12,7 +12,9 @@
#include <QDockWidget>
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

View file

@ -0,0 +1,56 @@
#include "printing_disabled_info_widget.h"
#include "../dialogs/override_printing_warning.h"
#include <QHBoxLayout>
#include <QLabel>
#include <QPushButton>
#include <QStyle>
#include <qguiapplication.h>
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);
}

View file

@ -0,0 +1,24 @@
#ifndef COCKATRICE_PRINTING_DISABLED_INFO_WIDGET_H
#define COCKATRICE_PRINTING_DISABLED_INFO_WIDGET_H
#include <QWidget>
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