Cockatrice 2026-10-19-Development-3.1.2-beta.2
A virtual tabletop for multiplayer card games
Loading...
Searching...
No Matches
tab_card_art_rules.h
Go to the documentation of this file.
1#ifndef COCKATRICE_DLG_CARD_ART_RULES_H
2#define COCKATRICE_DLG_CARD_ART_RULES_H
3
4#include "tab.h"
5
6#include <QAbstractTableModel>
7#include <QModelIndex>
8#include <QString>
9#include <qnamespace.h>
10#include <qtmetamacros.h>
11#include <vector>
12
13class AbstractClient;
17class CardSearchModel;
18class QComboBox;
19class QCompleter;
20class QLineEdit;
21class QObject;
22class QPushButton;
23class QTableView;
24class Response;
25class TabSupervisor;
26
27class CardArtRulesModel : public QAbstractTableModel
28{
29 Q_OBJECT
30
31public:
32 struct Entry
33 {
34 QString cardName;
36 QString mode;
37 QString reason;
38 };
39
40 explicit CardArtRulesModel(AbstractClient *client, QObject *parent = nullptr);
41
42 int rowCount(const QModelIndex &parent = QModelIndex()) const override;
43 int columnCount(const QModelIndex &parent = QModelIndex()) const override;
44 QVariant data(const QModelIndex &index, int role) const override;
45 QVariant headerData(int section, Qt::Orientation orientation, int role) const override;
46
47 void refresh();
48 void clear();
49
50 QString cardAt(int row) const;
51 const Entry *entryAt(int row) const;
52
53private slots:
54 void onRefreshFinished(const Response &r);
55
56private:
58 std::vector<Entry> entries;
59};
60
61class TabCardArtRules : public Tab
62{
63 Q_OBJECT
64
65public:
67
68 QString getTabText() const override
69 {
70 return tr("Card Art Rules");
71 }
72 void retranslateUi() override;
73
74private:
75 void setupUi();
76
77private slots:
78 void addRule();
79 void removeSelected();
80 void refresh();
81
82private:
84
85 QLineEdit *searchEdit;
86 void initSearchBar();
87 void populateProviderCombo(const QString &cardName);
88 QCompleter *searchCompleter;
93 QComboBox *providerComboBox;
94 QComboBox *modeBox;
95 QLineEdit *reasonEdit;
96
97 QPushButton *addBtn;
98 QPushButton *removeBtn;
99 QPushButton *refreshBtn;
100
101 QTableView *table;
103};
104
105#endif // COCKATRICE_DLG_CARD_ART_RULES_H
Definition abstract_client.h:73
Definition tab_card_art_rules.h:28
AbstractClient * client
Definition tab_card_art_rules.h:57
QVariant headerData(int section, Qt::Orientation orientation, int role) const override
Definition tab_card_art_rules.cpp:81
int rowCount(const QModelIndex &parent=QModelIndex()) const override
Definition tab_card_art_rules.cpp:43
void refresh()
Definition tab_card_art_rules.cpp:101
void onRefreshFinished(const Response &r)
Definition tab_card_art_rules.cpp:137
QVariant data(const QModelIndex &index, int role) const override
Definition tab_card_art_rules.cpp:57
std::vector< Entry > entries
Definition tab_card_art_rules.h:58
const Entry * entryAt(int row) const
Definition tab_card_art_rules.cpp:128
void clear()
Definition tab_card_art_rules.cpp:112
QString cardAt(int row) const
Definition tab_card_art_rules.cpp:119
CardArtRulesModel(AbstractClient *client, QObject *parent=nullptr)
Definition tab_card_art_rules.cpp:38
int columnCount(const QModelIndex &parent=QModelIndex()) const override
Definition tab_card_art_rules.cpp:51
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
QLineEdit * searchEdit
Definition tab_card_art_rules.h:85
CardDatabaseModel * cardDbModel
Definition tab_card_art_rules.h:89
QLineEdit * reasonEdit
Definition tab_card_art_rules.h:95
CardArtRulesModel * tableModel
Definition tab_card_art_rules.h:102
CardCompleterProxyModel * cardProxyModel
Definition tab_card_art_rules.h:92
CardSearchModel * cardSearchModel
Definition tab_card_art_rules.h:91
void setupUi()
Definition tab_card_art_rules.cpp:162
QPushButton * refreshBtn
Definition tab_card_art_rules.h:99
QString getTabText() const override
Definition tab_card_art_rules.h:68
void populateProviderCombo(const QString &cardName)
Definition tab_card_art_rules.cpp:235
QPushButton * addBtn
Definition tab_card_art_rules.h:97
void refresh()
Definition tab_card_art_rules.cpp:268
QTableView * table
Definition tab_card_art_rules.h:101
TabCardArtRules(TabSupervisor *parent, AbstractClient *client)
Definition tab_card_art_rules.cpp:156
AbstractClient * client
Definition tab_card_art_rules.h:83
CardDatabaseDisplayModel * cardDbDisplayModel
Definition tab_card_art_rules.h:90
void addRule()
Definition tab_card_art_rules.cpp:273
void removeSelected()
Definition tab_card_art_rules.cpp:286
void initSearchBar()
Definition tab_card_art_rules.cpp:213
QCompleter * searchCompleter
Definition tab_card_art_rules.h:88
QPushButton * removeBtn
Definition tab_card_art_rules.h:98
QComboBox * modeBox
Definition tab_card_art_rules.h:94
void retranslateUi() override
Definition tab_card_art_rules.cpp:261
QComboBox * providerComboBox
Definition tab_card_art_rules.h:93
Definition tab_supervisor.h:92
Tab(TabSupervisor *_tabSupervisor)
Definition tab.cpp:16
Definition tab_card_art_rules.h:33
QString reason
Definition tab_card_art_rules.h:37
QString cardProviderId
Definition tab_card_art_rules.h:35
QString cardName
Definition tab_card_art_rules.h:34
QString mode
Definition tab_card_art_rules.h:36
Definition response.proto:11