Cockatrice 2026-10-19-Development-3.1.2-beta.2
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 <QDialog>
7#include <QMetaObject>
8#include <QPixmap>
9#include <QPoint>
10#include <QString>
11#include <QWidget>
12#include <QtGlobal>
13#include <qtmetamacros.h>
14
15class QCompleter;
16class QGroupBox;
17class QLineEdit;
18class QDoubleSpinBox;
19class QLabel;
20class QPushButton;
23class CardSearchModel;
25class QComboBox;
26
36class CardArtPreviewWidget : public QWidget
37{
38 Q_OBJECT
39
40public:
41 explicit CardArtPreviewWidget(QWidget *parent = nullptr);
42
43 void setPixmap(const QPixmap &pixmap);
44 void setParams(const CardArtParams &params);
45 void setAttribution(const QString &attribution);
46
47signals:
50
51protected:
52 void paintEvent(QPaintEvent *event) override;
53 void mousePressEvent(QMouseEvent *event) override;
54 void mouseMoveEvent(QMouseEvent *event) override;
55 void mouseReleaseEvent(QMouseEvent *event) override;
56 void wheelEvent(QWheelEvent *event) override;
57 void keyPressEvent(QKeyEvent *event) override;
58 void focusInEvent(QFocusEvent *event) override;
59
60private:
61 qreal bannerTravel() const;
62 void applyCropDelta(qreal dOffset, qreal zoomFactor);
63 bool sameCrop(const CardArtParams &a, const CardArtParams &b) const;
64 void restoreSnapshot();
65
66 QPixmap sourcePixmap;
70 QPoint lastDragPos;
71 bool dragging{false};
72};
73
74class UserCardArtSettingsDialog : public QDialog
75{
76 Q_OBJECT
77
78public:
79 explicit UserCardArtSettingsDialog(const CardArtParams &initial = {}, QWidget *parent = nullptr);
80
81 CardArtParams params() const;
82
83private slots:
84 void onCardNameChanged(const QString &name);
85 void reloadPreview();
86 void onParamChanged();
87
88private:
89 void setupUi();
90 void retranslateUi();
91 void populateProviderCombo(const QString &cardName);
93 QDoubleSpinBox *makeSpinBox(double min, double max, double value, double step);
94
95 QLineEdit *searchBar;
96 QCompleter *completer;
101
103
104 QMetaObject::Connection pixmapUpdatedConnection;
105
110 QGroupBox *controlsGroup;
112 QGroupBox *previewGroup;
113 QPushButton *removeBtn;
114 QDoubleSpinBox *marginLSpin;
115 QDoubleSpinBox *marginRSpin;
117
120};
121
122#endif // COCKATRICE_USER_CARD_ART_SETTINGS_DIALOG_H
Interactive preview of the user list banner art.
Definition user_card_settings_dialog.h:37
void focusInEvent(QFocusEvent *event) override
Definition user_card_settings_dialog.cpp:72
void setPixmap(const QPixmap &pixmap)
Definition user_card_settings_dialog.cpp:80
void restoreSnapshot()
Definition user_card_settings_dialog.cpp:209
void paintEvent(QPaintEvent *event) override
Definition user_card_settings_dialog.cpp:99
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:71
void mouseMoveEvent(QMouseEvent *event) override
Definition user_card_settings_dialog.cpp:234
void applyCropDelta(qreal dOffset, qreal zoomFactor)
Definition user_card_settings_dialog.cpp:186
bool sameCrop(const CardArtParams &a, const CardArtParams &b) const
Definition user_card_settings_dialog.cpp:202
void wheelEvent(QWheelEvent *event) override
Definition user_card_settings_dialog.cpp:267
qreal bannerTravel() const
vertical travel of the art behind the strip, in output pixels
Definition user_card_settings_dialog.cpp:167
CardArtParams paramsAtFocusIn
crop as of the latest focus gain, restored by Esc or Backspace
Definition user_card_settings_dialog.h:68
void mouseReleaseEvent(QMouseEvent *event) override
Definition user_card_settings_dialog.cpp:256
void setParams(const CardArtParams &params)
Definition user_card_settings_dialog.cpp:86
QString attributionText
Definition user_card_settings_dialog.h:69
void setAttribution(const QString &attribution)
Definition user_card_settings_dialog.cpp:93
CardArtParams params
Definition user_card_settings_dialog.h:67
void keyPressEvent(QKeyEvent *event) override
Definition user_card_settings_dialog.cpp:282
QPixmap sourcePixmap
Definition user_card_settings_dialog.h:66
CardArtPreviewWidget(QWidget *parent=nullptr)
Definition user_card_settings_dialog.cpp:63
void mousePressEvent(QMouseEvent *event) override
Definition user_card_settings_dialog.cpp:222
QPoint lastDragPos
widget space position of the previous mouse move while panning
Definition user_card_settings_dialog.h:70
Definition card_completer_proxy_model.h:16
Definition card_database_display_model.h:27
Definition card_database_model.h:23
Definition card_search_model.h:26
void retranslateUi()
Definition user_card_settings_dialog.cpp:471
QLabel * previewCaptionLabel
Definition user_card_settings_dialog.h:111
void setupUi()
Definition user_card_settings_dialog.cpp:403
QLabel * marginLLabel
Definition user_card_settings_dialog.h:108
CardCompleterProxyModel * proxyModel
Definition user_card_settings_dialog.h:100
QGroupBox * previewGroup
Definition user_card_settings_dialog.h:112
CardArtParams currentParams
Definition user_card_settings_dialog.h:119
void populateProviderCombo(const QString &cardName)
Definition user_card_settings_dialog.cpp:486
void onCardNameChanged(const QString &name)
Definition user_card_settings_dialog.cpp:512
QPixmap currentPixmap
Definition user_card_settings_dialog.h:118
CardDatabaseDisplayModel * cardDatabaseDisplayModel
Definition user_card_settings_dialog.h:98
CardDatabaseModel * cardDatabaseModel
Definition user_card_settings_dialog.h:97
QMetaObject::Connection pixmapUpdatedConnection
Definition user_card_settings_dialog.h:104
QLineEdit * searchBar
Definition user_card_settings_dialog.h:95
void initializeSearchBar()
Definition user_card_settings_dialog.cpp:374
UserCardArtSettingsDialog(const CardArtParams &initial={}, QWidget *parent=nullptr)
Definition user_card_settings_dialog.cpp:322
CardArtPreviewWidget * preview
Definition user_card_settings_dialog.h:116
QPushButton * removeBtn
Definition user_card_settings_dialog.h:113
QCompleter * completer
Definition user_card_settings_dialog.h:96
QLabel * printingLabel
Definition user_card_settings_dialog.h:107
QGroupBox * controlsGroup
Definition user_card_settings_dialog.h:110
QDoubleSpinBox * makeSpinBox(double min, double max, double value, double step)
Definition user_card_settings_dialog.cpp:364
CardSearchModel * searchModel
Definition user_card_settings_dialog.h:99
QLabel * cardNameLabel
Definition user_card_settings_dialog.h:106
QLabel * marginRLabel
Definition user_card_settings_dialog.h:109
QDoubleSpinBox * marginLSpin
Definition user_card_settings_dialog.h:114
QDoubleSpinBox * marginRSpin
Definition user_card_settings_dialog.h:115
CardArtParams params() const
Definition user_card_settings_dialog.cpp:359
void onParamChanged()
Definition user_card_settings_dialog.cpp:593
void reloadPreview()
Definition user_card_settings_dialog.cpp:544
QComboBox * providerComboBox
Definition user_card_settings_dialog.h:102
Definition user_list_painter.h:23