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
card_picture_loader_local_schemes.h
Go to the documentation of this file.
1
#ifndef COCKATRICE_CARD_PICTURE_LOADER_LOCAL_SCHEMES_H
2
#define COCKATRICE_CARD_PICTURE_LOADER_LOCAL_SCHEMES_H
3
4
#include <QList>
5
#include <QRegularExpression>
6
#include <QString>
7
#include <QStringList>
8
9
namespace
CardPictureLoaderLocalSchemes
10
{
11
12
enum class
NamingScheme
13
{
14
NameOnly
,
15
Name_Set
,
16
Name_Set_Collector
,
17
Set_Collector_Name
,
18
Name_ProviderId
,
19
Set_Folder_Name_ProviderId
,
20
Set_Folder_Name_Set_Collector
21
};
22
23
struct
NamingSchemeInfo
24
{
25
NamingScheme
id
;
26
QString
displayName
;
27
QString
pattern
;
28
};
29
30
inline
const
QList<NamingSchemeInfo>
&
importSchemes
()
31
{
32
static
QList<NamingSchemeInfo>
list = {
33
{
NamingScheme::Name_ProviderId
,
"Card Name + Provider ID"
,
"{name}_{providerId}"
},
34
{
NamingScheme::Name_Set_Collector
,
"Card Name + Set + Collector"
,
"{name}_{set}_{collector}"
},
35
{
NamingScheme::Set_Collector_Name
,
"Set + Collector + Card Name"
,
"{set}_{collector}_{name}"
},
36
{
NamingScheme::Name_Set
,
"Card Name + Set"
,
"{name}_{set}"
},
37
{
NamingScheme::NameOnly
,
"Card Name"
,
"{name}"
},
38
};
39
return
list;
40
}
41
42
inline
const
QList<NamingSchemeInfo>
&
exportSchemes
()
43
{
44
static
QList<NamingSchemeInfo>
list = {
45
{
NamingScheme::Set_Folder_Name_ProviderId
,
"Set Folder / Name + Provider ID"
,
"{set}/{name}_{providerId}"
},
46
{
NamingScheme::Set_Folder_Name_Set_Collector
,
"Set Folder / Name + Set Name + Collector"
,
47
"{set}/{name}_{set}_{collector}"
},
48
{
NamingScheme::Name_ProviderId
,
"Card Name + Provider ID"
,
"{name}_{providerId}"
},
49
{
NamingScheme::Name_Set_Collector
,
"Card Name + Set + Collector"
,
"{name}_{set}_{collector}"
},
50
{
NamingScheme::Set_Collector_Name
,
"Set + Collector + Card Name"
,
"{set}_{collector}_{name}"
},
51
};
52
return
list;
53
}
54
55
inline
QString
expandPattern
(
const
QString &pattern,
56
const
QString &name,
57
const
QString &set,
58
const
QString &collector,
59
const
QString &providerId)
60
{
61
QString result = pattern;
62
63
auto
replaceIfPresent = [&](
const
QString &
token
,
const
QString &value) ->
bool
{
64
if
(!result.contains(
token
)) {
65
return
true
;
66
}
67
68
if
(value.isEmpty()) {
69
return
false
;
70
}
71
72
result.replace(
token
, value);
73
return
true
;
74
};
75
76
if
(!replaceIfPresent(
"{name}"
, name)) {
77
return
{};
78
}
79
if
(!replaceIfPresent(
"{set}"
, set)) {
80
return
{};
81
}
82
if
(!replaceIfPresent(
"{collector}"
, collector)) {
83
return
{};
84
}
85
if
(!replaceIfPresent(
"{providerId}"
, providerId)) {
86
return
{};
87
}
88
89
return
result;
90
}
91
92
inline
QStringList
93
generateImportVariants
(
const
QString &name,
const
QString &set,
const
QString &collector,
const
QString &providerId)
94
{
95
QStringList variants;
96
const
QStringList separators = {
"_"
,
"-"
};
97
98
for
(
const
auto
&scheme :
importSchemes
()) {
99
for
(
const
QString &sep : separators) {
100
101
QString pattern = scheme.pattern;
102
pattern.replace(
"_"
, sep);
103
104
QString v =
expandPattern
(pattern, name, set, collector, providerId);
105
if
(!v.isEmpty()) {
106
variants << v;
107
}
108
}
109
}
110
111
return
variants;
112
}
113
114
}
// namespace CardPictureLoaderLocalSchemes
115
116
#endif
// COCKATRICE_CARD_PICTURE_LOADER_LOCAL_SCHEMES_H
QList
Definition
remote_connection_controller.h:20
CardPictureLoaderLocalSchemes
Definition
card_picture_loader_local_schemes.h:10
CardPictureLoaderLocalSchemes::generateImportVariants
QStringList generateImportVariants(const QString &name, const QString &set, const QString &collector, const QString &providerId)
Definition
card_picture_loader_local_schemes.h:93
CardPictureLoaderLocalSchemes::NamingScheme
NamingScheme
Definition
card_picture_loader_local_schemes.h:13
CardPictureLoaderLocalSchemes::NamingScheme::Name_Set
@ Name_Set
Definition
card_picture_loader_local_schemes.h:15
CardPictureLoaderLocalSchemes::NamingScheme::Name_ProviderId
@ Name_ProviderId
Definition
card_picture_loader_local_schemes.h:18
CardPictureLoaderLocalSchemes::NamingScheme::NameOnly
@ NameOnly
Definition
card_picture_loader_local_schemes.h:14
CardPictureLoaderLocalSchemes::NamingScheme::Set_Folder_Name_ProviderId
@ Set_Folder_Name_ProviderId
Definition
card_picture_loader_local_schemes.h:19
CardPictureLoaderLocalSchemes::NamingScheme::Set_Folder_Name_Set_Collector
@ Set_Folder_Name_Set_Collector
Definition
card_picture_loader_local_schemes.h:20
CardPictureLoaderLocalSchemes::NamingScheme::Set_Collector_Name
@ Set_Collector_Name
Definition
card_picture_loader_local_schemes.h:17
CardPictureLoaderLocalSchemes::NamingScheme::Name_Set_Collector
@ Name_Set_Collector
Definition
card_picture_loader_local_schemes.h:16
CardPictureLoaderLocalSchemes::exportSchemes
const QList< NamingSchemeInfo > & exportSchemes()
Definition
card_picture_loader_local_schemes.h:42
CardPictureLoaderLocalSchemes::importSchemes
const QList< NamingSchemeInfo > & importSchemes()
Definition
card_picture_loader_local_schemes.h:30
CardPictureLoaderLocalSchemes::expandPattern
QString expandPattern(const QString &pattern, const QString &name, const QString &set, const QString &collector, const QString &providerId)
Definition
card_picture_loader_local_schemes.h:55
token
EmailType const QString & token
Definition
smtpclient.cpp:31
CardPictureLoaderLocalSchemes::NamingSchemeInfo
Definition
card_picture_loader_local_schemes.h:24
CardPictureLoaderLocalSchemes::NamingSchemeInfo::pattern
QString pattern
Definition
card_picture_loader_local_schemes.h:27
CardPictureLoaderLocalSchemes::NamingSchemeInfo::id
NamingScheme id
Definition
card_picture_loader_local_schemes.h:25
CardPictureLoaderLocalSchemes::NamingSchemeInfo::displayName
QString displayName
Definition
card_picture_loader_local_schemes.h:26
cockatrice
src
interface
card_picture_loader
card_picture_loader_local_schemes.h
Generated by
1.18.0