Cockatrice 2026-06-27-Development-3.1.0-beta.3
A virtual tabletop for multiplayer card games
Loading...
Searching...
No Matches
user_card_art_provider.h
Go to the documentation of this file.
1#ifndef COCKATRICE_USER_CARD_ART_PROVIDER_H
2#define COCKATRICE_USER_CARD_ART_PROVIDER_H
3
4#include <QMap>
5#include <QObject>
6#include <QPixmap>
7#include <QQueue>
8#include <QSet>
9
10class UserCardArtProvider : public QObject
11{
12 Q_OBJECT
13
14public:
15 explicit UserCardArtProvider(QObject *parent = nullptr);
16
17 void requestCardArt(const QString &userName, const QString &cardName, const QString &providerId);
18 const QMap<QString, QPixmap> &cache() const;
19 static QPixmap cropCardArt(const QPixmap &fullRes);
20
21signals:
22 void cardArtUpdated(const QString &userName);
23
24public slots:
25 void onDatabaseReady();
26
27private:
28 bool dbReady = false;
29 static constexpr int MaxCacheEntries = 300;
30 QList<QString> cacheInsertionOrder; // FIFO eviction
31 QMap<QString, QPixmap> cardArtCache;
32 QSet<QString> pending;
33 QQueue<QString> queue;
34
35 void processQueue();
36 void insertIntoCache(const QString &key, const QPixmap &pixmap);
37};
38
39#endif // COCKATRICE_USER_CARD_ART_PROVIDER_H
QSet< QString > pending
Definition user_card_art_provider.h:32
static QPixmap cropCardArt(const QPixmap &fullRes)
Definition user_card_art_provider.cpp:52
QList< QString > cacheInsertionOrder
Definition user_card_art_provider.h:30
static constexpr int MaxCacheEntries
Definition user_card_art_provider.h:29
QQueue< QString > queue
Definition user_card_art_provider.h:33
QMap< QString, QPixmap > cardArtCache
Definition user_card_art_provider.h:31
const QMap< QString, QPixmap > & cache() const
Definition user_card_art_provider.cpp:29
void requestCardArt(const QString &userName, const QString &cardName, const QString &providerId)
Definition user_card_art_provider.cpp:34
bool dbReady
Definition user_card_art_provider.h:28
void cardArtUpdated(const QString &userName)
void processQueue()
Definition user_card_art_provider.cpp:76
void insertIntoCache(const QString &key, const QPixmap &pixmap)
Definition user_card_art_provider.cpp:64
UserCardArtProvider(QObject *parent=nullptr)
Definition user_card_art_provider.cpp:13
void onDatabaseReady()
Definition user_card_art_provider.cpp:23