Cockatrice 2026-09-01-Development-3.1.0-beta.10
A virtual tabletop for multiplayer card games
Loading...
Searching...
No Matches
user_card_settings_dialog.h
Go to the documentation of this file.
1#ifndef COCKATRICE_USER_CARD_ART_SETTINGS_DIALOG_H
2#define COCKATRICE_USER_CARD_ART_SETTINGS_DIALOG_H
3
4#include "user_list_painter.h"
5
6#include <QComboBox>
7#include <QDialog>
8#include <QPixmap>
9
10class QCompleter;
11class QFocusEvent;
12class QGroupBox;
13class QKeyEvent;
14class QMouseEvent;
15class QLineEdit;
16class QDoubleSpinBox;
17class QLabel;
18class QPushButton;
19class QWheelEvent;
22class CardSearchModel;
24
34class CardArtPreviewWidget : public QWidget
35{
36 Q_OBJECT
37
38public:
39 explicit CardArtPreviewWidget(QWidget *parent = nullptr);
40
41 void setPixmap(const QPixmap &pixmap);
42 void setParams(const CardArtParams &params);
43 void setAttribution(const QString &attribution);
44
45signals:
48
49protected:
50 void paintEvent(QPaintEvent *event) override;
51 void mousePressEvent(QMouseEvent *event) override;
52 void mouseMoveEvent(QMouseEvent *event) override;
53 void mouseReleaseEvent(QMouseEvent *event) override;
54 void wheelEvent(QWheelEvent *event) override;
55 void keyPressEvent(QKeyEvent *event) override;
56 void focusInEvent(QFocusEvent *event) override;
57
58private:
59 qreal bannerTravel() const;
60 void applyCropDelta(qreal dOffset, qreal zoomFactor);
61 bool sameCrop(const CardArtParams &a, const CardArtParams &b) const;
62 void restoreSnapshot();
63
64 QPixmap sourcePixmap;
68 QPoint lastDragPos;
69 bool dragging{false};
70};
71
72class UserCardArtSettingsDialog : public QDialog
73{
74 Q_OBJECT
75
76public:
77 explicit UserCardArtSettingsDialog(const CardArtParams &initial = {}, QWidget *parent = nullptr);
78
79 CardArtParams params() const;
80
81private slots:
82 void onCardNameChanged(const QString &name);
83 void reloadPreview();
84 void onParamChanged();
85
86private:
87 void setupUi();
88 void retranslateUi();
89 void populateProviderCombo(const QString &cardName);
91 QDoubleSpinBox *makeSpinBox(double min, double max, double value, double step);
92
93 QLineEdit *searchBar;
94 QCompleter *completer;
99
101
102 QMetaObject::Connection pixmapUpdatedConnection;
103
108 QGroupBox *controlsGroup;
110 QGroupBox *previewGroup;
111 QPushButton *removeBtn;
112 QDoubleSpinBox *marginLSpin;
113 QDoubleSpinBox *marginRSpin;
115
118};
119
120#endif // COCKATRICE_USER_CARD_ART_SETTINGS_DIALOG_H
Interactive preview of the user list banner art.
Definition user_card_settings_dialog.h:35
void focusInEvent(QFocusEvent *event) override
Definition user_card_settings_dialog.cpp:52
void setPixmap(const QPixmap &pixmap)
Definition user_card_settings_dialog.cpp:60
void restoreSnapshot()
Definition user_card_settings_dialog.cpp:189
void paintEvent(QPaintEvent *event) override
Definition user_card_settings_dialog.cpp:79
void paramsEdited(const CardArtParams &params)
Emitted whenever direct manipulation (drag, wheel, keys) changes the parameters.
bool dragging
true between an accepted press and its release, guards stale drag positions
Definition user_card_settings_dialog.h:69
void mouseMoveEvent(QMouseEvent *event) override
Definition user_card_settings_dialog.cpp:214
void applyCropDelta(qreal dOffset, qreal zoomFactor)
Definition user_card_settings_dialog.cpp:166
bool sameCrop(const CardArtParams &a, const CardArtParams &b) const
Definition user_card_settings_dialog.cpp:182
void wheelEvent(QWheelEvent *event) override
Definition user_card_settings_dialog.cpp:247
qreal bannerTravel() const
vertical travel of the art behind the strip, in output pixels
Definition user_card_settings_dialog.cpp:147
CardArtParams paramsAtFocusIn
crop as of the latest focus gain, restored by Esc or Backspace
Definition user_card_settings_dialog.h:66
void mouseReleaseEvent(QMouseEvent *event) override
Definition user_card_settings_dialog.cpp:236
void setParams(const CardArtParams &params)
Definition user_card_settings_dialog.cpp:66
QString attributionText
Definition user_card_settings_dialog.h:67
void setAttribution(const QString &attribution)
Definition user_card_settings_dialog.cpp:73
CardArtParams params
Definition user_card_settings_dialog.h:65
void keyPressEvent(QKeyEvent *event) override
Definition user_card_settings_dialog.cpp:262
QPixmap sourcePixmap
Definition user_card_settings_dialog.h:64
CardArtPreviewWidget(QWidget *parent=nullptr)
Definition user_card_settings_dialog.cpp:43
void mousePressEvent(QMouseEvent *event) override
Definition user_card_settings_dialog.cpp:202
QPoint lastDragPos
widget space position of the previous mouse move while panning
Definition user_card_settings_dialog.h:68
Definition card_completer_proxy_model.h:13
Definition card_database_display_model.h:17
Definition card_database_model.h:16
Definition card_search_model.h:15
void retranslateUi()
Definition user_card_settings_dialog.cpp:451
QLabel * previewCaptionLabel
Definition user_card_settings_dialog.h:109
void setupUi()
Definition user_card_settings_dialog.cpp:383
QLabel * marginLLabel
Definition user_card_settings_dialog.h:106
CardCompleterProxyModel * proxyModel
Definition user_card_settings_dialog.h:98
QGroupBox * previewGroup
Definition user_card_settings_dialog.h:110
CardArtParams currentParams
Definition user_card_settings_dialog.h:117
void populateProviderCombo(const QString &cardName)
Definition user_card_settings_dialog.cpp:466
void onCardNameChanged(const QString &name)
Definition user_card_settings_dialog.cpp:492
QPixmap currentPixmap
Definition user_card_settings_dialog.h:116
CardDatabaseDisplayModel * cardDatabaseDisplayModel
Definition user_card_settings_dialog.h:96
CardDatabaseModel * cardDatabaseModel
Definition user_card_settings_dialog.h:95
QMetaObject::Connection pixmapUpdatedConnection
Definition user_card_settings_dialog.h:102
QLineEdit * searchBar
Definition user_card_settings_dialog.h:93
void initializeSearchBar()
Definition user_card_settings_dialog.cpp:354
UserCardArtSettingsDialog(const CardArtParams &initial={}, QWidget *parent=nullptr)
Definition user_card_settings_dialog.cpp:302
CardArtPreviewWidget * preview
Definition user_card_settings_dialog.h:114
QPushButton * removeBtn
Definition user_card_settings_dialog.h:111
QCompleter * completer
Definition user_card_settings_dialog.h:94
QLabel * printingLabel
Definition user_card_settings_dialog.h:105
QGroupBox * controlsGroup
Definition user_card_settings_dialog.h:108
QDoubleSpinBox * makeSpinBox(double min, double max, double value, double step)
Definition user_card_settings_dialog.cpp:344
CardSearchModel * searchModel
Definition user_card_settings_dialog.h:97
QLabel * cardNameLabel
Definition user_card_settings_dialog.h:104
QLabel * marginRLabel
Definition user_card_settings_dialog.h:107
QDoubleSpinBox * marginLSpin
Definition user_card_settings_dialog.h:112
QDoubleSpinBox * marginRSpin
Definition user_card_settings_dialog.h:113
CardArtParams params() const
Definition user_card_settings_dialog.cpp:339
void onParamChanged()
Definition user_card_settings_dialog.cpp:573
void reloadPreview()
Definition user_card_settings_dialog.cpp:524
QComboBox * providerComboBox
Definition user_card_settings_dialog.h:100
Definition user_list_painter.h:20