mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-07-10 12:23:58 -07:00
[Room][UserList] Introduce style delegate (#6981)
Some checks are pending
Build Desktop / Configure (push) Waiting to run
Build Desktop / Debian 13 (push) Blocked by required conditions
Build Desktop / Debian 12 (push) Blocked by required conditions
Build Desktop / Fedora 44 (push) Blocked by required conditions
Build Desktop / Fedora 43 (push) Blocked by required conditions
Build Desktop / Servatrice_Debian 12 (push) Blocked by required conditions
Build Desktop / Ubuntu 26.04 (push) Blocked by required conditions
Build Desktop / Ubuntu 24.04 (push) Blocked by required conditions
Build Desktop / Arch (push) Blocked by required conditions
Build Desktop / macOS 14 (push) Blocked by required conditions
Build Desktop / macOS 15 (push) Blocked by required conditions
Build Desktop / macOS 13 Intel (push) Blocked by required conditions
Build Desktop / macOS 15 Debug (push) Blocked by required conditions
Build Desktop / Windows 10 (push) Blocked by required conditions
Build Docker Image / amd64 & arm64 (push) Waiting to run
Some checks are pending
Build Desktop / Configure (push) Waiting to run
Build Desktop / Debian 13 (push) Blocked by required conditions
Build Desktop / Debian 12 (push) Blocked by required conditions
Build Desktop / Fedora 44 (push) Blocked by required conditions
Build Desktop / Fedora 43 (push) Blocked by required conditions
Build Desktop / Servatrice_Debian 12 (push) Blocked by required conditions
Build Desktop / Ubuntu 26.04 (push) Blocked by required conditions
Build Desktop / Ubuntu 24.04 (push) Blocked by required conditions
Build Desktop / Arch (push) Blocked by required conditions
Build Desktop / macOS 14 (push) Blocked by required conditions
Build Desktop / macOS 15 (push) Blocked by required conditions
Build Desktop / macOS 13 Intel (push) Blocked by required conditions
Build Desktop / macOS 15 Debug (push) Blocked by required conditions
Build Desktop / Windows 10 (push) Blocked by required conditions
Build Docker Image / amd64 & arm64 (push) Waiting to run
* [Room] Additionally show a tab for friends and ignored users instead of just all online users.
Took 21 minutes
Took 12 minutes
* [Room][UserList] Introduce style delegate for user list
- Allow users to set a card name and parameters as their background banner
- Allow mods to white/blacklist cards
- Allow toggling back to the old display style
Took 7 minutes
Took 28 seconds
Took 2 minutes
Took 2 minutes
* Right checkstate.
Took 14 minutes
Took 2 minutes
* Utility for test.
Took 9 minutes
Took 8 seconds
Took 2 seconds
* Lint.
Took 10 minutes
* Algorithm for sql schema migration
Took 13 minutes
* Use {prefix}, bound card name, return errors.
Took 27 seconds
* Convert queue to while loop.
Took 19 seconds
* Hover popup.
Took 36 minutes
Took 1 minute
* More granular signals, popup for user info.
Took 25 minutes
Took 8 seconds
Took 16 minutes
---------
Co-authored-by: Lukas Brübach <Bruebach.Lukas@bdosecurity.de>
This commit is contained in:
parent
c9ebdb451f
commit
2914874720
45 changed files with 3387 additions and 83 deletions
89
cockatrice/src/interface/widgets/tabs/tab_card_art_rules.h
Normal file
89
cockatrice/src/interface/widgets/tabs/tab_card_art_rules.h
Normal file
|
|
@ -0,0 +1,89 @@
|
|||
#ifndef COCKATRICE_DLG_CARD_ART_RULES_H
|
||||
#define COCKATRICE_DLG_CARD_ART_RULES_H
|
||||
|
||||
#include "card/card_search_model.h"
|
||||
#include "tab_supervisor.h"
|
||||
|
||||
#include <QAbstractTableModel>
|
||||
#include <QComboBox>
|
||||
#include <QLineEdit>
|
||||
#include <QPushButton>
|
||||
#include <QTableView>
|
||||
|
||||
class AbstractClient;
|
||||
|
||||
class CardArtRulesModel : public QAbstractTableModel
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
struct Entry
|
||||
{
|
||||
QString cardName;
|
||||
QString mode;
|
||||
QString reason;
|
||||
};
|
||||
|
||||
explicit CardArtRulesModel(AbstractClient *client, QObject *parent = nullptr);
|
||||
|
||||
int rowCount(const QModelIndex &parent = QModelIndex()) const override;
|
||||
int columnCount(const QModelIndex &parent = QModelIndex()) const override;
|
||||
QVariant data(const QModelIndex &index, int role) const override;
|
||||
QVariant headerData(int section, Qt::Orientation orientation, int role) const override;
|
||||
|
||||
void refresh();
|
||||
void clear();
|
||||
|
||||
QString cardAt(int row) const;
|
||||
|
||||
private slots:
|
||||
void onRefreshFinished(const Response &r);
|
||||
|
||||
private:
|
||||
AbstractClient *client;
|
||||
std::vector<Entry> entries;
|
||||
};
|
||||
|
||||
class TabCardArtRules : public Tab
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
TabCardArtRules(TabSupervisor *parent, AbstractClient *client);
|
||||
|
||||
QString getTabText() const override
|
||||
{
|
||||
return tr("Card Art Rules");
|
||||
}
|
||||
void retranslateUi() override;
|
||||
|
||||
private:
|
||||
void setupUi();
|
||||
|
||||
private slots:
|
||||
void addRule();
|
||||
void removeSelected();
|
||||
void refresh();
|
||||
|
||||
private:
|
||||
AbstractClient *client;
|
||||
|
||||
QLineEdit *searchEdit;
|
||||
void initSearchBar();
|
||||
QCompleter *searchCompleter;
|
||||
CardDatabaseModel *cardDbModel;
|
||||
CardDatabaseDisplayModel *cardDbDisplayModel;
|
||||
CardSearchModel *cardSearchModel;
|
||||
CardCompleterProxyModel *cardProxyModel;
|
||||
QComboBox *modeBox;
|
||||
QLineEdit *reasonEdit;
|
||||
|
||||
QPushButton *addBtn;
|
||||
QPushButton *removeBtn;
|
||||
QPushButton *refreshBtn;
|
||||
|
||||
QTableView *table;
|
||||
CardArtRulesModel *tableModel;
|
||||
};
|
||||
|
||||
#endif // COCKATRICE_DLG_CARD_ART_RULES_H
|
||||
Loading…
Add table
Add a link
Reference in a new issue