From ebdc00b3be73ebb9f7c6ab8b9f1cd96538da0638 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Br=C3=BCbach?= Date: Mon, 5 May 2025 22:55:55 +0200 Subject: [PATCH] Actually call retranslateUi, add spinBox to change sample hand size, add card size slider. --- .../visual_deck_editor_sample_hand_widget.cpp | 32 ++++++++++++++++--- .../visual_deck_editor_sample_hand_widget.h | 6 ++++ cockatrice/src/settings/cache_settings.cpp | 8 +++++ cockatrice/src/settings/cache_settings.h | 9 +++++- dbconverter/src/mocks.cpp | 3 ++ tests/carddatabase/mocks.cpp | 3 ++ 6 files changed, 56 insertions(+), 5 deletions(-) diff --git a/cockatrice/src/client/ui/widgets/visual_deck_editor/visual_deck_editor_sample_hand_widget.cpp b/cockatrice/src/client/ui/widgets/visual_deck_editor/visual_deck_editor_sample_hand_widget.cpp index 7868627e2..bd16eb9fe 100644 --- a/cockatrice/src/client/ui/widgets/visual_deck_editor/visual_deck_editor_sample_hand_widget.cpp +++ b/cockatrice/src/client/ui/widgets/visual_deck_editor/visual_deck_editor_sample_hand_widget.cpp @@ -1,7 +1,9 @@ #include "visual_deck_editor_sample_hand_widget.h" +#include "../../../../../../../../../../../mnt/games-hdd/coding/CLionProjects/Cockatrice/cockatrice/src/client/ui/widgets/cards/card_size_widget.h" #include "../../../../deck/deck_loader.h" #include "../../../../game/cards/card_database_manager.h" +#include "../../../../settings/cache_settings.h" #include "../cards/card_info_picture_widget.h" #include @@ -12,23 +14,43 @@ VisualDeckEditorSampleHandWidget::VisualDeckEditorSampleHandWidget(QWidget *pare layout = new QVBoxLayout(this); setLayout(layout); + resetAndHandSizeContainerWidget = new QWidget(this); + resetAndHandSizeLayout = new QHBoxLayout(resetAndHandSizeContainerWidget); + resetAndHandSizeContainerWidget->setLayout(resetAndHandSizeLayout); + resetButton = new QPushButton(this); connect(resetButton, SIGNAL(clicked()), this, SLOT(updateDisplay())); - layout->addWidget(resetButton); + resetAndHandSizeLayout->addWidget(resetButton); + + handSizeSpinBox = new QSpinBox(this); + handSizeSpinBox->setValue(SettingsCache::instance().getVisualDeckEditorSampleHandSize()); + handSizeSpinBox->setMinimum(1); + connect(handSizeSpinBox, &QSpinBox::valueChanged, &SettingsCache::instance(), &SettingsCache::setVisualDeckEditorSampleHandSize); + connect(handSizeSpinBox, &QSpinBox::valueChanged, this, &VisualDeckEditorSampleHandWidget::updateDisplay); + resetAndHandSizeLayout->addWidget(handSizeSpinBox); + + layout->addWidget(resetAndHandSizeContainerWidget); flowWidget = new FlowWidget(this, Qt::Horizontal, Qt::ScrollBarAlwaysOff, Qt::ScrollBarAsNeeded); layout->addWidget(flowWidget); - for (CardInfoPtr card : getRandomCards(7)) { + cardSizeWidget = new CardSizeWidget(this, flowWidget); + layout->addWidget(cardSizeWidget); + + for (CardInfoPtr card : getRandomCards(handSizeSpinBox->value())) { auto displayWidget = new CardInfoPictureWidget(this); displayWidget->setCard(card); + displayWidget->setScaleFactor(cardSizeWidget->getSlider()->value()); flowWidget->addWidget(displayWidget); } + + retranslateUi(); } void VisualDeckEditorSampleHandWidget::retranslateUi() { - resetButton->setText(tr("Reset")); + resetButton->setText(tr("Draw a new sample hand")); + handSizeSpinBox->setToolTip(tr("Sample hand size")); } void VisualDeckEditorSampleHandWidget::setDeckModel(DeckListModel *deckModel) @@ -41,9 +63,11 @@ void VisualDeckEditorSampleHandWidget::setDeckModel(DeckListModel *deckModel) void VisualDeckEditorSampleHandWidget::updateDisplay() { flowWidget->clearLayout(); - for (CardInfoPtr card : getRandomCards(7)) { + for (CardInfoPtr card : getRandomCards(handSizeSpinBox->value())) { auto displayWidget = new CardInfoPictureWidget(this); displayWidget->setCard(card); + displayWidget->setScaleFactor(cardSizeWidget->getSlider()->value()); + connect(cardSizeWidget->getSlider(), &QSlider::valueChanged, displayWidget, &CardInfoPictureWidget::setScaleFactor); flowWidget->addWidget(displayWidget); } } diff --git a/cockatrice/src/client/ui/widgets/visual_deck_editor/visual_deck_editor_sample_hand_widget.h b/cockatrice/src/client/ui/widgets/visual_deck_editor/visual_deck_editor_sample_hand_widget.h index 44dc04cab..e075dc16c 100644 --- a/cockatrice/src/client/ui/widgets/visual_deck_editor/visual_deck_editor_sample_hand_widget.h +++ b/cockatrice/src/client/ui/widgets/visual_deck_editor/visual_deck_editor_sample_hand_widget.h @@ -1,10 +1,12 @@ #ifndef VISUAL_DECK_EDITOR_SAMPLE_HAND_WIDGET_H #define VISUAL_DECK_EDITOR_SAMPLE_HAND_WIDGET_H +#include "../../../../../../../../../../../mnt/games-hdd/coding/CLionProjects/Cockatrice/cockatrice/src/client/ui/widgets/cards/card_size_widget.h" #include "../../../../deck/deck_list_model.h" #include "../general/layout_containers/flow_widget.h" #include +#include #include class VisualDeckEditorSampleHandWidget : public QWidget @@ -22,8 +24,12 @@ public slots: private: DeckListModel *deckListModel; QVBoxLayout *layout; + QWidget *resetAndHandSizeContainerWidget; + QHBoxLayout *resetAndHandSizeLayout; QPushButton *resetButton; + QSpinBox *handSizeSpinBox; FlowWidget *flowWidget; + CardSizeWidget *cardSizeWidget; }; #endif // VISUAL_DECK_EDITOR_SAMPLE_HAND_WIDGET_H diff --git a/cockatrice/src/settings/cache_settings.cpp b/cockatrice/src/settings/cache_settings.cpp index 6507780fe..ef369641b 100644 --- a/cockatrice/src/settings/cache_settings.cpp +++ b/cockatrice/src/settings/cache_settings.cpp @@ -291,6 +291,7 @@ SettingsCache::SettingsCache() settings->value("interface/visualdatabasedisplayfiltertomostrecentsetsenabled", true).toBool(); visualDatabaseDisplayFilterToMostRecentSetsAmount = settings->value("interface/visualdatabasedisplayfiltertomostrecentsetsamount", 10).toInt(); + visualDeckEditorSampleHandSize = settings->value("interface/visualdeckeditorsamplehandsize", 7).toInt(); horizontalHand = settings->value("hand/horizontal", true).toBool(); invertVerticalCoordinate = settings->value("table/invert_vertical", false).toBool(); minPlayersForMultiColumnLayout = settings->value("interface/min_players_multicolumn", 4).toInt(); @@ -821,6 +822,13 @@ void SettingsCache::setVisualDatabaseDisplayFilterToMostRecentSetsAmount(int _am emit visualDatabaseDisplayFilterToMostRecentSetsAmountChanged(visualDatabaseDisplayFilterToMostRecentSetsAmount); } +void SettingsCache::setVisualDeckEditorSampleHandSize(int _amount) +{ + visualDeckEditorSampleHandSize = _amount; + settings->setValue("interface/visualdeckeditorsamplehandsize", visualDeckEditorSampleHandSize); + emit visualDeckEditorSampleHandSizeAmountChanged(visualDeckEditorSampleHandSize); +} + void SettingsCache::setHorizontalHand(QT_STATE_CHANGED_T _horizontalHand) { horizontalHand = static_cast(_horizontalHand); diff --git a/cockatrice/src/settings/cache_settings.h b/cockatrice/src/settings/cache_settings.h index bb4bed95f..d326a3834 100644 --- a/cockatrice/src/settings/cache_settings.h +++ b/cockatrice/src/settings/cache_settings.h @@ -62,7 +62,7 @@ signals: void includeRebalancedCardsChanged(bool _includeRebalancedCards); void printingSelectorNavigationButtonsVisibleChanged(); void deckEditorBannerCardComboBoxVisibleChanged(bool _visible); - void deckEditorTagsWidgetVisibleChanged(bool _visible); + void deckEditorTagsWidgetVisibleChanged(bool _visible);\ void visualDeckStorageShowTagFilterChanged(bool _visible); void visualDeckStorageShowBannerCardComboBoxChanged(bool _visible); void visualDeckStorageShowTagsOnDeckPreviewsChanged(bool _visible); @@ -73,6 +73,7 @@ signals: void visualDeckStorageSelectionAnimationChanged(bool enabled); void visualDatabaseDisplayFilterToMostRecentSetsEnabledChanged(bool enabled); void visualDatabaseDisplayFilterToMostRecentSetsAmountChanged(int amount); + void visualDeckEditorSampleHandSizeAmountChanged(int amount); void horizontalHandChanged(); void handJustificationChanged(); void invertVerticalCoordinateChanged(); @@ -156,6 +157,7 @@ private: int defaultDeckEditorType; bool visualDatabaseDisplayFilterToMostRecentSetsEnabled; int visualDatabaseDisplayFilterToMostRecentSetsAmount; + int visualDeckEditorSampleHandSize; bool horizontalHand; bool invertVerticalCoordinate; int minPlayersForMultiColumnLayout; @@ -502,6 +504,10 @@ public: { return visualDatabaseDisplayFilterToMostRecentSetsAmount; } + int getVisualDeckEditorSampleHandSize() const + { + return visualDeckEditorSampleHandSize; + } bool getHorizontalHand() const { return horizontalHand; @@ -853,6 +859,7 @@ public slots: void setDefaultDeckEditorType(int value); void setVisualDatabaseDisplayFilterToMostRecentSetsEnabled(QT_STATE_CHANGED_T _enabled); void setVisualDatabaseDisplayFilterToMostRecentSetsAmount(int _amount); + void setVisualDeckEditorSampleHandSize(int _amount); void setHorizontalHand(QT_STATE_CHANGED_T _horizontalHand); void setInvertVerticalCoordinate(QT_STATE_CHANGED_T _invertVerticalCoordinate); void setMinPlayersForMultiColumnLayout(int _minPlayersForMultiColumnLayout); diff --git a/dbconverter/src/mocks.cpp b/dbconverter/src/mocks.cpp index 890294870..032cdc95e 100644 --- a/dbconverter/src/mocks.cpp +++ b/dbconverter/src/mocks.cpp @@ -268,6 +268,9 @@ void SettingsCache::setVisualDatabaseDisplayFilterToMostRecentSetsEnabled(QT_STA void SettingsCache::setVisualDatabaseDisplayFilterToMostRecentSetsAmount(int /* _amount */) { } +void SettingsCache::setVisualDeckEditorSampleHandSize(int /* _amount */) +{ +} void SettingsCache::setHorizontalHand(QT_STATE_CHANGED_T /* _horizontalHand */) { } diff --git a/tests/carddatabase/mocks.cpp b/tests/carddatabase/mocks.cpp index b34c28727..db7dd9353 100644 --- a/tests/carddatabase/mocks.cpp +++ b/tests/carddatabase/mocks.cpp @@ -272,6 +272,9 @@ void SettingsCache::setVisualDatabaseDisplayFilterToMostRecentSetsEnabled(QT_STA void SettingsCache::setVisualDatabaseDisplayFilterToMostRecentSetsAmount(int /* _amount */) { } +void SettingsCache::setVisualDeckEditorSampleHandSize(int /* _amount */) +{ +} void SettingsCache::setHorizontalHand(QT_STATE_CHANGED_T /* _horizontalHand */) { }