Move the card size slider to its own widget.

This commit is contained in:
Lukas Brübach 2024-12-01 14:00:09 +01:00 committed by ZeldaZach
parent 9d0d62a72d
commit 44bbf26b4b
No known key found for this signature in database
5 changed files with 59 additions and 21 deletions

View file

@ -24,6 +24,7 @@ set(cockatrice_SOURCES
src/client/ui/widgets/cards/card_info_picture_widget.cpp
src/client/ui/widgets/cards/card_info_text_widget.cpp
src/client/ui/widgets/cards/card_info_display_widget.cpp
src/client/ui/widgets/cards/card_size_widget.cpp
src/game/cards/card_item.cpp
src/game/cards/card_list.cpp
src/game/zones/card_zone.cpp
@ -99,6 +100,7 @@ set(cockatrice_SOURCES
src/client/ui/widgets/printing_selector/printing_selector.cpp
src/client/ui/widgets/printing_selector/printing_selector_card_display_widget.cpp
src/client/ui/widgets/printing_selector/printing_selector_card_overlay_widget.cpp
src/client/ui/widgets/printing_selector/printing_selector_card_selection_widget.cpp
src/client/ui/widgets/printing_selector/set_name_and_collectors_number_display_widget.cpp
src/client/network/release_channel.cpp
src/server/remote/remote_client.cpp

View file

@ -0,0 +1,25 @@
#include "card_size_widget.h"
CardSizeWidget::CardSizeWidget(QWidget *parent, FlowWidget *flowWidget) : parent(parent), flowWidget(flowWidget)
{
cardSizeLayout = new QHBoxLayout(this);
setLayout(cardSizeLayout);
cardSizeLabel = new QLabel(tr("Card Size"), this);
cardSizeLabel->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);
cardSizeSlider = new QSlider(Qt::Horizontal, this);
cardSizeSlider->setRange(25, 250);
cardSizeSlider->setValue(100);
cardSizeLayout->addWidget(cardSizeLabel);
cardSizeLayout->addWidget(cardSizeSlider);
if (flowWidget != nullptr) {
connect(cardSizeSlider, &QSlider::valueChanged, flowWidget, &FlowWidget::setMinimumSizeToMaxSizeHint);
}
}
QSlider *CardSizeWidget::getSlider() const
{
return cardSizeSlider;
}

View file

@ -0,0 +1,27 @@
#ifndef CARD_SIZE_WIDGET_H
#define CARD_SIZE_WIDGET_H
#include "../general/layout_containers/flow_widget.h"
#include <QWidget>
#include <QHBoxLayout>
#include <QLabel>
#include <QSlider>
class CardSizeWidget : public QWidget
{
Q_OBJECT
public:
explicit CardSizeWidget(QWidget *parent, FlowWidget* flowWidget = nullptr);
QSlider* getSlider() const;
private:
QWidget *parent;
FlowWidget* flowWidget;
QHBoxLayout *cardSizeLayout;
QLabel *cardSizeLabel;
QSlider *cardSizeSlider;
};
#endif //CARD_SIZE_WIDGET_H

View file

@ -62,20 +62,7 @@ PrintingSelector::PrintingSelector(QWidget *parent,
flowWidget = new FlowWidget(this, Qt::ScrollBarAlwaysOff, Qt::ScrollBarAsNeeded);
layout->addWidget(flowWidget);
cardSizeWidget = new QWidget(this);
cardSizeLayout = new QHBoxLayout(this);
cardSizeWidget->setLayout(cardSizeLayout);
cardSizeLabel = new QLabel(tr("Card Size"), cardSizeWidget);
cardSizeLabel->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);
cardSizeSlider = new QSlider(Qt::Horizontal, cardSizeWidget);
cardSizeSlider->setRange(25, 250);
cardSizeSlider->setValue(100);
connect(cardSizeSlider, &QSlider::valueChanged, flowWidget, &FlowWidget::setMinimumSizeToMaxSizeHint);
cardSizeLayout->addWidget(cardSizeLabel);
cardSizeLayout->addWidget(cardSizeSlider);
cardSizeWidget = new CardSizeWidget(this);
layout->addWidget(cardSizeWidget);
cardSelectionBar = new PrintingSelectorCardSelectionWidget(this);
@ -311,9 +298,8 @@ void PrintingSelector::getAllSetsForCurrentCard()
connect(timer, &QTimer::timeout, this, [=]() mutable {
for (int i = 0; i < BATCH_SIZE && currentIndex < setsToUse.size(); ++i, ++currentIndex) {
auto *cardDisplayWidget =
new PrintingSelectorCardDisplayWidget(this, deckEditor, deckModel, deckView, cardSizeSlider,
selectedCard, setsToUse[currentIndex], currentZone);
auto *cardDisplayWidget = new PrintingSelectorCardDisplayWidget(this, deckEditor, deckModel, deckView,
cardSizeWidget->getSlider(), selectedCard, setsToUse[currentIndex], currentZone);
flowWidget->addWidget(cardDisplayWidget);
cardDisplayWidget->clampSetNameToPicture();
}

View file

@ -4,6 +4,7 @@
#include "../../../../deck/deck_list_model.h"
#include "../../../../deck/deck_view.h"
#include "../../../../game/cards/card_database.h"
#include "../cards/card_size_widget.h"
#include "../general/layout_containers/flow_widget.h"
#include <QComboBox>
@ -51,10 +52,7 @@ private:
QLineEdit *searchBar;
QTimer *searchDebounceTimer;
FlowWidget *flowWidget;
QWidget *cardSizeWidget;
QHBoxLayout *cardSizeLayout;
QLabel *cardSizeLabel;
QSlider *cardSizeSlider;
CardSizeWidget *cardSizeWidget;
PrintingSelectorCardSelectionWidget *cardSelectionBar;
TabDeckEditor *deckEditor;
DeckListModel *deckModel;