From c96847a3e67ea7ac200a3e720f7ef2d9771a1a5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Br=C3=BCbach?= Date: Mon, 10 Feb 2025 16:15:23 +0100 Subject: [PATCH] Move PrintingSelector card size slider to quick menu, adjust other layout from other options. --- cockatrice/CMakeLists.txt | 1 - .../ui/widgets/cards/card_size_widget.cpp | 4 +- .../printing_selector/printing_selector.cpp | 76 +++++++------------ .../printing_selector/printing_selector.h | 9 +-- .../printing_selector_card_sorting_widget.cpp | 1 + .../printing_selector_view_options_widget.cpp | 63 --------------- .../printing_selector_view_options_widget.h | 28 ------- cockatrice/src/settings/cache_settings.cpp | 23 ------ cockatrice/src/settings/cache_settings.h | 21 ----- dbconverter/src/mocks.cpp | 9 --- tests/carddatabase/mocks.cpp | 9 --- 11 files changed, 36 insertions(+), 208 deletions(-) delete mode 100644 cockatrice/src/client/ui/widgets/printing_selector/printing_selector_view_options_widget.cpp delete mode 100644 cockatrice/src/client/ui/widgets/printing_selector/printing_selector_view_options_widget.h diff --git a/cockatrice/CMakeLists.txt b/cockatrice/CMakeLists.txt index 072ed598e..b047b0ca6 100644 --- a/cockatrice/CMakeLists.txt +++ b/cockatrice/CMakeLists.txt @@ -110,7 +110,6 @@ set(cockatrice_SOURCES src/client/ui/widgets/printing_selector/printing_selector_card_search_widget.cpp src/client/ui/widgets/printing_selector/printing_selector_card_selection_widget.cpp src/client/ui/widgets/printing_selector/printing_selector_card_sorting_widget.cpp - src/client/ui/widgets/printing_selector/printing_selector_view_options_widget.cpp src/client/ui/widgets/printing_selector/set_name_and_collectors_number_display_widget.cpp src/client/ui/widgets/quick_settings/settings_button_widget.cpp src/client/ui/widgets/quick_settings/settings_popup_widget.cpp diff --git a/cockatrice/src/client/ui/widgets/cards/card_size_widget.cpp b/cockatrice/src/client/ui/widgets/cards/card_size_widget.cpp index d6ce09247..be231e67a 100644 --- a/cockatrice/src/client/ui/widgets/cards/card_size_widget.cpp +++ b/cockatrice/src/client/ui/widgets/cards/card_size_widget.cpp @@ -11,8 +11,8 @@ * This widget allows users to dynamically change the card size in a linked FlowWidget * and updates the application's settings accordingly. */ -CardSizeWidget::CardSizeWidget(QWidget *parent, FlowWidget *flowWidget, int defaultValue) - : parent(parent), flowWidget(flowWidget) +CardSizeWidget::CardSizeWidget(QWidget *parent, FlowWidget *_flowWidget, int defaultValue) + : parent(parent), flowWidget(_flowWidget) { cardSizeLayout = new QHBoxLayout(this); cardSizeLayout->setContentsMargins(9, 0, 9, 0); diff --git a/cockatrice/src/client/ui/widgets/printing_selector/printing_selector.cpp b/cockatrice/src/client/ui/widgets/printing_selector/printing_selector.cpp index 8a55ff520..daa0aeed3 100644 --- a/cockatrice/src/client/ui/widgets/printing_selector/printing_selector.cpp +++ b/cockatrice/src/client/ui/widgets/printing_selector/printing_selector.cpp @@ -5,7 +5,6 @@ #include "printing_selector_card_search_widget.h" #include "printing_selector_card_selection_widget.h" #include "printing_selector_card_sorting_widget.h" -#include "printing_selector_view_options_widget.h" #include @@ -34,36 +33,42 @@ PrintingSelector::PrintingSelector(QWidget *parent, widgetLoadingBufferTimer = new QTimer(this); - displayOptionsWidget = new SettingsButtonWidget(this); - displayOptionsWidget->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Preferred); - viewOptionsToolbar = new PrintingSelectorViewOptionsWidget(displayOptionsWidget, this); - - displayOptionsWidget->addSettingsWidget(viewOptionsToolbar); + flowWidget = new FlowWidget(this, Qt::Horizontal, Qt::ScrollBarAlwaysOff, Qt::ScrollBarAsNeeded); sortToolBar = new PrintingSelectorCardSortingWidget(this); sortToolBar->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred); - sortToolBar->setVisible(SettingsCache::instance().getPrintingSelectorSortOptionsVisible()); + + displayOptionsWidget = new SettingsButtonWidget(this); + displayOptionsWidget->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Preferred); + + // Create the checkbox for navigation buttons visibility + navigationCheckBox = new QCheckBox(this); + navigationCheckBox->setChecked(SettingsCache::instance().getPrintingSelectorNavigationButtonsVisible()); + connect(navigationCheckBox, &QCheckBox::QT_STATE_CHANGED, this, + &PrintingSelector::toggleVisibilityNavigationButtons); + connect(navigationCheckBox, &QCheckBox::QT_STATE_CHANGED, &SettingsCache::instance(), + &SettingsCache::setPrintingSelectorNavigationButtonsVisible); + + cardSizeWidget = + new CardSizeWidget(displayOptionsWidget, flowWidget, SettingsCache::instance().getPrintingSelectorCardSize()); + + displayOptionsWidget->addSettingsWidget(sortToolBar); + displayOptionsWidget->addSettingsWidget(navigationCheckBox); + displayOptionsWidget->addSettingsWidget(cardSizeWidget); sortAndOptionsContainer = new QWidget(this); sortAndOptionsLayout = new QHBoxLayout(sortAndOptionsContainer); sortAndOptionsContainer->setLayout(sortAndOptionsLayout); - sortAndOptionsLayout->addWidget(sortToolBar); + searchBar = new PrintingSelectorCardSearchWidget(this); + + sortAndOptionsLayout->addWidget(searchBar); sortAndOptionsLayout->addWidget(displayOptionsWidget); layout->addWidget(sortAndOptionsContainer); - searchBar = new PrintingSelectorCardSearchWidget(this); - searchBar->setVisible(SettingsCache::instance().getPrintingSelectorSearchBarVisible()); - layout->addWidget(searchBar); - - flowWidget = new FlowWidget(this, Qt::Horizontal, Qt::ScrollBarAlwaysOff, Qt::ScrollBarAsNeeded); layout->addWidget(flowWidget); - cardSizeWidget = new CardSizeWidget(this, flowWidget, SettingsCache::instance().getPrintingSelectorCardSize()); - cardSizeWidget->setVisible(SettingsCache::instance().getPrintingSelectorCardSizeSliderVisible()); - layout->addWidget(cardSizeWidget); - cardSelectionBar = new PrintingSelectorCardSelectionWidget(this); cardSelectionBar->setVisible(SettingsCache::instance().getPrintingSelectorNavigationButtonsVisible()); layout->addWidget(cardSelectionBar); @@ -71,6 +76,13 @@ PrintingSelector::PrintingSelector(QWidget *parent, // Connect deck model data change signal to update display connect(deckModel, &DeckListModel::rowsInserted, this, &PrintingSelector::printingsInDeckChanged); connect(deckModel, &DeckListModel::rowsRemoved, this, &PrintingSelector::printingsInDeckChanged); + + retranslateUi(); +} + +void PrintingSelector::retranslateUi() +{ + navigationCheckBox->setText(tr("Display Navigation Buttons")); } void PrintingSelector::printingsInDeckChanged() @@ -218,36 +230,6 @@ void PrintingSelector::getAllSetsForCurrentCard() widgetLoadingBufferTimer->start(0); // Process as soon as possible } -/** - * @brief Toggles the visibility of the sorting options toolbar. - * - * @param _state The visibility state to set. - */ -void PrintingSelector::toggleVisibilitySortOptions(bool _state) -{ - sortToolBar->setVisible(_state); -} - -/** - * @brief Toggles the visibility of the search bar. - * - * @param _state The visibility state to set. - */ -void PrintingSelector::toggleVisibilitySearchBar(bool _state) -{ - searchBar->setVisible(_state); -} - -/** - * @brief Toggles the visibility of the card size slider. - * - * @param _state The visibility state to set. - */ -void PrintingSelector::toggleVisibilityCardSizeSlider(bool _state) -{ - cardSizeWidget->setVisible(_state); -} - /** * @brief Toggles the visibility of the navigation buttons. * diff --git a/cockatrice/src/client/ui/widgets/printing_selector/printing_selector.h b/cockatrice/src/client/ui/widgets/printing_selector/printing_selector.h index db190eb32..ee66f3872 100644 --- a/cockatrice/src/client/ui/widgets/printing_selector/printing_selector.h +++ b/cockatrice/src/client/ui/widgets/printing_selector/printing_selector.h @@ -6,8 +6,8 @@ #include "../cards/card_size_widget.h" #include "../general/layout_containers/flow_widget.h" #include "../quick_settings/settings_button_widget.h" -#include "printing_selector_view_options_widget.h" +#include #include #include #include @@ -26,16 +26,15 @@ class PrintingSelector : public QWidget public: PrintingSelector(QWidget *parent, TabDeckEditor *deckEditor, DeckListModel *deckModel, QTreeView *deckView); + void setCard(const CardInfoPtr &newCard, const QString &_currentZone); void getAllSetsForCurrentCard(); public slots: + void retranslateUi(); void updateDisplay(); void selectPreviousCard(); void selectNextCard(); - void toggleVisibilitySortOptions(bool _state); - void toggleVisibilitySearchBar(bool _state); - void toggleVisibilityCardSizeSlider(bool _state); void toggleVisibilityNavigationButtons(bool _state); private slots: @@ -46,7 +45,7 @@ private: SettingsButtonWidget *displayOptionsWidget; QWidget *sortAndOptionsContainer; QHBoxLayout *sortAndOptionsLayout; - PrintingSelectorViewOptionsWidget *viewOptionsToolbar; + QCheckBox *navigationCheckBox; PrintingSelectorCardSortingWidget *sortToolBar; PrintingSelectorCardSearchWidget *searchBar; FlowWidget *flowWidget; diff --git a/cockatrice/src/client/ui/widgets/printing_selector/printing_selector_card_sorting_widget.cpp b/cockatrice/src/client/ui/widgets/printing_selector/printing_selector_card_sorting_widget.cpp index 734c5cec7..3b6cf4b94 100644 --- a/cockatrice/src/client/ui/widgets/printing_selector/printing_selector_card_sorting_widget.cpp +++ b/cockatrice/src/client/ui/widgets/printing_selector/printing_selector_card_sorting_widget.cpp @@ -18,6 +18,7 @@ const QStringList PrintingSelectorCardSortingWidget::SORT_OPTIONS = {SORT_OPTION */ PrintingSelectorCardSortingWidget::PrintingSelectorCardSortingWidget(PrintingSelector *parent) : parent(parent) { + setMinimumWidth(300); sortToolBar = new QHBoxLayout(this); sortToolBar->setContentsMargins(9, 0, 9, 0); diff --git a/cockatrice/src/client/ui/widgets/printing_selector/printing_selector_view_options_widget.cpp b/cockatrice/src/client/ui/widgets/printing_selector/printing_selector_view_options_widget.cpp deleted file mode 100644 index fa173834f..000000000 --- a/cockatrice/src/client/ui/widgets/printing_selector/printing_selector_view_options_widget.cpp +++ /dev/null @@ -1,63 +0,0 @@ -#include "printing_selector_view_options_widget.h" - -#include "../../../../settings/cache_settings.h" - -/** - * @class PrintingSelectorViewOptionsWidget - * @brief A widget that provides the view options for the PrintingSelector, including checkboxes - * for sorting, search bar, card size slider, and navigation buttons. - * - * This widget allows the user to toggle the visibility of various interface components of the - * PrintingSelector through checkboxes. The state of the checkboxes is saved and restored using - * the `SettingsCache`. - */ -PrintingSelectorViewOptionsWidget::PrintingSelectorViewOptionsWidget(QWidget *parent, - PrintingSelector *_printingSelector) - : QWidget(parent), printingSelector(_printingSelector) -{ - // Create the grid to hold the checkboxes - gridLayout = new QGridLayout(this); - setLayout(gridLayout); - - // Create the checkbox for sorting options visibility - sortCheckBox = new QCheckBox(this); - sortCheckBox->setText(tr("Display Sorting Options")); - sortCheckBox->setChecked(SettingsCache::instance().getPrintingSelectorSortOptionsVisible()); - connect(sortCheckBox, &QCheckBox::QT_STATE_CHANGED, printingSelector, - &PrintingSelector::toggleVisibilitySortOptions); - connect(sortCheckBox, &QCheckBox::QT_STATE_CHANGED, &SettingsCache::instance(), - &SettingsCache::setPrintingSelectorSortOptionsVisible); - - // Create the checkbox for search bar visibility - searchCheckBox = new QCheckBox(this); - searchCheckBox->setText(tr("Display Search Bar")); - searchCheckBox->setChecked(SettingsCache::instance().getPrintingSelectorSearchBarVisible()); - connect(searchCheckBox, &QCheckBox::QT_STATE_CHANGED, printingSelector, - &PrintingSelector::toggleVisibilitySearchBar); - connect(searchCheckBox, &QCheckBox::QT_STATE_CHANGED, &SettingsCache::instance(), - &SettingsCache::setPrintingSelectorSearchBarVisible); - - // Create the checkbox for card size slider visibility - cardSizeCheckBox = new QCheckBox(this); - cardSizeCheckBox->setText(tr("Display Card Size Slider")); - cardSizeCheckBox->setChecked(SettingsCache::instance().getPrintingSelectorCardSizeSliderVisible()); - connect(cardSizeCheckBox, &QCheckBox::QT_STATE_CHANGED, printingSelector, - &PrintingSelector::toggleVisibilityCardSizeSlider); - connect(cardSizeCheckBox, &QCheckBox::QT_STATE_CHANGED, &SettingsCache::instance(), - &SettingsCache::setPrintingSelectorCardSizeSliderVisible); - - // Create the checkbox for navigation buttons visibility - navigationCheckBox = new QCheckBox(this); - navigationCheckBox->setText(tr("Display Navigation Buttons")); - navigationCheckBox->setChecked(SettingsCache::instance().getPrintingSelectorNavigationButtonsVisible()); - connect(navigationCheckBox, &QCheckBox::QT_STATE_CHANGED, printingSelector, - &PrintingSelector::toggleVisibilityNavigationButtons); - connect(navigationCheckBox, &QCheckBox::QT_STATE_CHANGED, &SettingsCache::instance(), - &SettingsCache::setPrintingSelectorNavigationButtonsVisible); - - // Add checkboxes to the grid - gridLayout->addWidget(sortCheckBox, 0, 0); - gridLayout->addWidget(searchCheckBox, 0, 1); - gridLayout->addWidget(cardSizeCheckBox, 1, 0); - gridLayout->addWidget(navigationCheckBox, 1, 1); -} diff --git a/cockatrice/src/client/ui/widgets/printing_selector/printing_selector_view_options_widget.h b/cockatrice/src/client/ui/widgets/printing_selector/printing_selector_view_options_widget.h deleted file mode 100644 index 1aedab875..000000000 --- a/cockatrice/src/client/ui/widgets/printing_selector/printing_selector_view_options_widget.h +++ /dev/null @@ -1,28 +0,0 @@ -#ifndef PRINTING_SELECTOR_VIEW_OPTIONS_WIDGET_H -#define PRINTING_SELECTOR_VIEW_OPTIONS_WIDGET_H - -#include "../general/layout_containers/flow_widget.h" -#include "printing_selector.h" - -#include -#include -#include - -class PrintingSelector; -class PrintingSelectorViewOptionsWidget : public QWidget -{ - Q_OBJECT - -public: - explicit PrintingSelectorViewOptionsWidget(QWidget *parent, PrintingSelector *_printingSelector); - -private: - QGridLayout *gridLayout; - PrintingSelector *printingSelector; - QCheckBox *sortCheckBox; - QCheckBox *searchCheckBox; - QCheckBox *cardSizeCheckBox; - QCheckBox *navigationCheckBox; -}; - -#endif // PRINTING_SELECTOR_VIEW_OPTIONS_WIDGET_H diff --git a/cockatrice/src/settings/cache_settings.cpp b/cockatrice/src/settings/cache_settings.cpp index 0b33920fd..8b9834f90 100644 --- a/cockatrice/src/settings/cache_settings.cpp +++ b/cockatrice/src/settings/cache_settings.cpp @@ -260,8 +260,6 @@ SettingsCache::SettingsCache() printingSelectorCardSize = settings->value("cards/printingselectorcardsize", 100).toInt(); printingSelectorSortOptionsVisible = settings->value("cards/printingselectorsortoptionsvisible", true).toBool(); printingSelectorSearchBarVisible = settings->value("cards/printingselectorcardsearchbarvisible", true).toBool(); - printingSelectorCardSizeSliderVisible = - settings->value("cards/printingselectorcardsizeslidervisible", true).toBool(); printingSelectorNavigationButtonsVisible = settings->value("cards/printingselectornavigationbuttonsvisible", true).toBool(); visualDeckStorageCardSize = settings->value("interface/visualdeckstoragecardsize", 100).toInt(); @@ -648,27 +646,6 @@ void SettingsCache::setPrintingSelectorCardSize(int _printingSelectorCardSize) emit printingSelectorCardSizeChanged(); } -void SettingsCache::setPrintingSelectorSortOptionsVisible(QT_STATE_CHANGED_T _sortOptionsVisible) -{ - printingSelectorSortOptionsVisible = _sortOptionsVisible; - settings->setValue("cards/printingselectorsortoptionsvisible", printingSelectorSortOptionsVisible); - emit printingSelectorSortOptionsVisibleChanged(); -} - -void SettingsCache::setPrintingSelectorSearchBarVisible(QT_STATE_CHANGED_T _searchBarVisible) -{ - printingSelectorSearchBarVisible = _searchBarVisible; - settings->setValue("cards/printingselectorsearchbarvisible", printingSelectorSearchBarVisible); - emit printingSelectorSearchBarVisibleChanged(); -} - -void SettingsCache::setPrintingSelectorCardSizeSliderVisible(QT_STATE_CHANGED_T _cardSizeSliderVisible) -{ - printingSelectorCardSizeSliderVisible = _cardSizeSliderVisible; - settings->setValue("cards/printingselectorcardsizeslidervisible", printingSelectorCardSizeSliderVisible); - emit printingSelectorCardSizeSliderVisibleChanged(); -} - void SettingsCache::setPrintingSelectorNavigationButtonsVisible(QT_STATE_CHANGED_T _navigationButtonsVisible) { printingSelectorNavigationButtonsVisible = _navigationButtonsVisible; diff --git a/cockatrice/src/settings/cache_settings.h b/cockatrice/src/settings/cache_settings.h index a51d9444f..ff89bb9e9 100644 --- a/cockatrice/src/settings/cache_settings.h +++ b/cockatrice/src/settings/cache_settings.h @@ -58,9 +58,6 @@ signals: void bumpSetsWithCardsInDeckToTopChanged(); void printingSelectorSortOrderChanged(); void printingSelectorCardSizeChanged(); - void printingSelectorSortOptionsVisibleChanged(); - void printingSelectorSearchBarVisibleChanged(); - void printingSelectorCardSizeSliderVisibleChanged(); void printingSelectorNavigationButtonsVisibleChanged(); void visualDeckStorageShowTagFilterChanged(bool _visible); void visualDeckStorageShowTagsOnDeckPreviewsChanged(bool _visible); @@ -129,9 +126,6 @@ private: bool bumpSetsWithCardsInDeckToTop; int printingSelectorSortOrder; int printingSelectorCardSize; - bool printingSelectorSortOptionsVisible; - bool printingSelectorSearchBarVisible; - bool printingSelectorCardSizeSliderVisible; bool printingSelectorNavigationButtonsVisible; int visualDeckStorageSortingOrder; bool visualDeckStorageShowFolders; @@ -402,18 +396,6 @@ public: { return printingSelectorCardSize; } - bool getPrintingSelectorSortOptionsVisible() const - { - return printingSelectorSortOptionsVisible; - } - bool getPrintingSelectorSearchBarVisible() const - { - return printingSelectorSearchBarVisible; - } - bool getPrintingSelectorCardSizeSliderVisible() const - { - return printingSelectorCardSizeSliderVisible; - } bool getPrintingSelectorNavigationButtonsVisible() const { return printingSelectorNavigationButtonsVisible; @@ -774,9 +756,6 @@ public slots: void setBumpSetsWithCardsInDeckToTop(QT_STATE_CHANGED_T _bumpSetsWithCardsInDeckToTop); void setPrintingSelectorSortOrder(int _printingSelectorSortOrder); void setPrintingSelectorCardSize(int _printingSelectorCardSize); - void setPrintingSelectorSortOptionsVisible(QT_STATE_CHANGED_T _sortOptionsVisible); - void setPrintingSelectorSearchBarVisible(QT_STATE_CHANGED_T _searchBarVisible); - void setPrintingSelectorCardSizeSliderVisible(QT_STATE_CHANGED_T _cardSizeSliderVisible); void setPrintingSelectorNavigationButtonsVisible(QT_STATE_CHANGED_T _navigationButtonsVisible); void setVisualDeckStorageSortingOrder(int _visualDeckStorageSortingOrder); void setVisualDeckStorageShowFolders(QT_STATE_CHANGED_T value); diff --git a/dbconverter/src/mocks.cpp b/dbconverter/src/mocks.cpp index 268aec766..21769a5d4 100644 --- a/dbconverter/src/mocks.cpp +++ b/dbconverter/src/mocks.cpp @@ -196,15 +196,6 @@ void SettingsCache::setPrintingSelectorSortOrder(int /* _printingSelectorSortOrd void SettingsCache::setPrintingSelectorCardSize(int /* _printingSelectorCardSize */) { } -void SettingsCache::setPrintingSelectorSortOptionsVisible(QT_STATE_CHANGED_T /* _sortOptionsVisible */) -{ -} -void SettingsCache::setPrintingSelectorSearchBarVisible(QT_STATE_CHANGED_T /* _searchBarVisible */) -{ -} -void SettingsCache::setPrintingSelectorCardSizeSliderVisible(QT_STATE_CHANGED_T /* _cardSizeSliderVisible */) -{ -} void SettingsCache::setPrintingSelectorNavigationButtonsVisible(QT_STATE_CHANGED_T /* _navigationButtonsVisible */) { } diff --git a/tests/carddatabase/mocks.cpp b/tests/carddatabase/mocks.cpp index d1e660f14..db813a8f1 100644 --- a/tests/carddatabase/mocks.cpp +++ b/tests/carddatabase/mocks.cpp @@ -200,15 +200,6 @@ void SettingsCache::setPrintingSelectorSortOrder(int /* _printingSelectorSortOrd void SettingsCache::setPrintingSelectorCardSize(int /* _printingSelectorCardSize */) { } -void SettingsCache::setPrintingSelectorSortOptionsVisible(QT_STATE_CHANGED_T /* _sortOptionsVisible */) -{ -} -void SettingsCache::setPrintingSelectorSearchBarVisible(QT_STATE_CHANGED_T /* _searchBarVisible */) -{ -} -void SettingsCache::setPrintingSelectorCardSizeSliderVisible(QT_STATE_CHANGED_T /* _cardSizeSliderVisible */) -{ -} void SettingsCache::setPrintingSelectorNavigationButtonsVisible(QT_STATE_CHANGED_T /* _navigationButtonsVisible */) { }