Cockatrice 2026-10-19-Development-3.1.2-beta.2
A virtual tabletop for multiplayer card games
Loading...
Searching...
No Matches
card_size_widget.h
Go to the documentation of this file.
1
8
9#ifndef CARD_SIZE_WIDGET_H
10#define CARD_SIZE_WIDGET_H
11
12#include <QTimer>
13#include <QWidget>
14#include <qtmetamacros.h>
15
16class QWheelEvent;
17class FlowWidget;
18class QHBoxLayout;
19class QLabel;
20class QSlider;
21
22class CardSizeWidget : public QWidget
23{
24 Q_OBJECT
25
26public:
27 explicit CardSizeWidget(QWidget *parent, FlowWidget *flowWidget = nullptr, int defaultValue = 100);
28 [[nodiscard]] QSlider *getSlider() const;
29
37 void enableCtrlScrollResize(QWidget *host);
38
39protected:
40 bool eventFilter(QObject *watched, QEvent *event) override;
41
42private slots:
43 void updateCardSizeSetting(int newValue);
44
45signals:
51 void cardSizeSettingUpdated(int newValue);
52
53private:
54 QWidget *parent;
56 QHBoxLayout *cardSizeLayout;
59 QTimer debounceTimer; // Debounce timer
60 int pendingValue; // Stores the latest slider value
61
62 bool adjustSliderForWheel(QWheelEvent *event);
63
64 static constexpr int CARD_SIZE_WHEEL_STEP = 10;
65};
66
67#endif // CARD_SIZE_WIDGET_H
FlowWidget * flowWidget
Definition card_size_widget.h:55
bool adjustSliderForWheel(QWheelEvent *event)
Definition card_size_widget.cpp:94
QTimer debounceTimer
Definition card_size_widget.h:59
void cardSizeSettingUpdated(int newValue)
QSlider * cardSizeSlider
Definition card_size_widget.h:58
QWidget * parent
Definition card_size_widget.h:54
QLabel * cardSizeLabel
Definition card_size_widget.h:57
int pendingValue
Definition card_size_widget.h:60
void updateCardSizeSetting(int newValue)
Updates the card size setting in the application's cache.
Definition card_size_widget.cpp:58
bool eventFilter(QObject *watched, QEvent *event) override
Definition card_size_widget.cpp:86
QHBoxLayout * cardSizeLayout
Definition card_size_widget.h:56
QSlider * getSlider() const
Gets the slider widget used for adjusting the card size.
Definition card_size_widget.cpp:69
CardSizeWidget(QWidget *parent, FlowWidget *flowWidget=nullptr, int defaultValue=100)
Definition card_size_widget.cpp:25
static constexpr int CARD_SIZE_WHEEL_STEP
Slider step applied per Ctrl + scroll notch.
Definition card_size_widget.h:64
void enableCtrlScrollResize(QWidget *host)
Resizes the cards when the user Ctrl + scrolls over host or any of its descendants.
Definition card_size_widget.cpp:74
Definition flow_widget.h:27