Cockatrice
2026-10-19-Development-3.1.2-beta.2
A virtual tabletop for multiplayer card games
Toggle main menu visibility
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 <QList>
5
#include <QMap>
6
#include <QObject>
7
#include <QPixmap>
8
#include <QQueue>
9
#include <QSet>
10
#include <QString>
11
#include <qtmetamacros.h>
12
13
class
ExactCard
;
14
15
class
UserCardArtProvider
:
public
QObject
16
{
17
Q_OBJECT
18
19
public
:
20
explicit
UserCardArtProvider
(QObject *parent =
nullptr
);
21
22
void
requestCardArt
(
const
QString &userName,
const
QString &cardName,
const
QString &providerId);
23
const
QMap<QString, QPixmap>
&
cache
()
const
;
24
static
QPixmap
cropCardArt
(
const
QPixmap &fullRes,
const
ExactCard
&card);
25
26
signals:
27
void
cardArtUpdated
(
const
QString &userName);
28
29
public
slots:
30
void
onDatabaseReady
();
31
32
private
:
33
bool
dbReady
=
false
;
34
static
constexpr
int
MaxCacheEntries
= 1024;
35
QList<QString>
cacheInsertionOrder
;
// FIFO eviction
36
QMap<QString, QPixmap>
cardArtCache
;
37
QSet<QString>
pending
;
38
QQueue<QString>
queue
;
39
40
void
processQueue
();
41
void
insertIntoCache
(
const
QString &key,
const
QPixmap &pixmap);
42
};
43
44
#endif
// COCKATRICE_USER_CARD_ART_PROVIDER_H
ExactCard
Represents a specific card instance, defined by its CardInfo and a particular printing.
Definition
exact_card.h:24
QList
Definition
remote_connection_controller.h:20
QMap
Definition
game.h:18
QSet
Definition
dlg_manage_sets.h:29
UserCardArtProvider::pending
QSet< QString > pending
Definition
user_card_art_provider.h:37
UserCardArtProvider::cacheInsertionOrder
QList< QString > cacheInsertionOrder
Definition
user_card_art_provider.h:35
UserCardArtProvider::MaxCacheEntries
static constexpr int MaxCacheEntries
Definition
user_card_art_provider.h:34
UserCardArtProvider::queue
QQueue< QString > queue
Definition
user_card_art_provider.h:38
UserCardArtProvider::cardArtCache
QMap< QString, QPixmap > cardArtCache
Definition
user_card_art_provider.h:36
UserCardArtProvider::cache
const QMap< QString, QPixmap > & cache() const
Definition
user_card_art_provider.cpp:43
UserCardArtProvider::requestCardArt
void requestCardArt(const QString &userName, const QString &cardName, const QString &providerId)
Definition
user_card_art_provider.cpp:48
UserCardArtProvider::cropCardArt
static QPixmap cropCardArt(const QPixmap &fullRes, const ExactCard &card)
Definition
user_card_art_provider.cpp:69
UserCardArtProvider::dbReady
bool dbReady
Definition
user_card_art_provider.h:33
UserCardArtProvider::cardArtUpdated
void cardArtUpdated(const QString &userName)
UserCardArtProvider::processQueue
void processQueue()
Definition
user_card_art_provider.cpp:106
UserCardArtProvider::insertIntoCache
void insertIntoCache(const QString &key, const QPixmap &pixmap)
Definition
user_card_art_provider.cpp:90
UserCardArtProvider::UserCardArtProvider
UserCardArtProvider(QObject *parent=nullptr)
Definition
user_card_art_provider.cpp:27
UserCardArtProvider::onDatabaseReady
void onDatabaseReady()
Definition
user_card_art_provider.cpp:37
cockatrice
src
interface
widgets
server
user
user_card_art_provider.h
Generated by
1.18.0