mirror of
https://github.com/Cockatrice/Cockatrice.git
synced 2026-07-19 00:42:14 -07:00
move caching up a level
This commit is contained in:
parent
306708e96b
commit
371453d96a
1 changed files with 15 additions and 25 deletions
|
|
@ -241,13 +241,20 @@ QIcon UserLevelPixmapGenerator::generateIcon(int minHeight,
|
||||||
colorRight = QString::fromStdString(pawnColorsOverride.right_side());
|
colorRight = QString::fromStdString(pawnColorsOverride.right_side());
|
||||||
}
|
}
|
||||||
|
|
||||||
// Has Color Override
|
QString key = QString::number(minHeight * 10000) + ":" + static_cast<short>(userLevel) + ":" +
|
||||||
if (colorLeft.has_value()) {
|
static_cast<short>(isBuddy) + ":" + privLevel.toLower() + ":" + colorLeft.value_or("") + ":" +
|
||||||
return generateIconWithColorOverride(minHeight, isBuddy, privLevel, colorLeft, colorRight);
|
colorRight.value_or("");
|
||||||
|
|
||||||
|
if (iconCache.contains(key)) {
|
||||||
|
return iconCache.value(key);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Has No Color Override
|
QIcon icon = colorLeft.has_value()
|
||||||
return generateIconDefault(minHeight, userLevel, isBuddy, privLevel);
|
? generateIconWithColorOverride(minHeight, isBuddy, privLevel, colorLeft, colorRight)
|
||||||
|
: generateIconDefault(minHeight, userLevel, isBuddy, privLevel);
|
||||||
|
|
||||||
|
iconCache.insert(key, icon);
|
||||||
|
return icon;
|
||||||
}
|
}
|
||||||
|
|
||||||
QIcon UserLevelPixmapGenerator::generateIconDefault(int height,
|
QIcon UserLevelPixmapGenerator::generateIconDefault(int height,
|
||||||
|
|
@ -255,11 +262,6 @@ QIcon UserLevelPixmapGenerator::generateIconDefault(int height,
|
||||||
bool isBuddy,
|
bool isBuddy,
|
||||||
const QString &privLevel)
|
const QString &privLevel)
|
||||||
{
|
{
|
||||||
QString key = QString::number(height * 10000) + ":" + (short)userLevel + ":" + (short)isBuddy + ":" + privLevel;
|
|
||||||
if (iconCache.contains(key)) {
|
|
||||||
return iconCache.value(key);
|
|
||||||
}
|
|
||||||
|
|
||||||
QString iconType;
|
QString iconType;
|
||||||
if (isBuddy) {
|
if (isBuddy) {
|
||||||
iconType = "star";
|
iconType = "star";
|
||||||
|
|
@ -289,10 +291,7 @@ QIcon UserLevelPixmapGenerator::generateIconDefault(int height,
|
||||||
|
|
||||||
QString iconPath = QString("theme:usericons/%1_%2.svg").arg(iconType, arity);
|
QString iconPath = QString("theme:usericons/%1_%2.svg").arg(iconType, arity);
|
||||||
|
|
||||||
QIcon icon = loadAndColorSvg(iconPath, colorLeft, colorRight, height);
|
return loadAndColorSvg(iconPath, colorLeft, colorRight, height);
|
||||||
|
|
||||||
iconCache.insert(key, icon);
|
|
||||||
return icon;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
QIcon UserLevelPixmapGenerator::generateIconWithColorOverride(int height,
|
QIcon UserLevelPixmapGenerator::generateIconWithColorOverride(int height,
|
||||||
|
|
@ -301,13 +300,6 @@ QIcon UserLevelPixmapGenerator::generateIconWithColorOverride(int height,
|
||||||
std::optional<QString> colorLeft,
|
std::optional<QString> colorLeft,
|
||||||
std::optional<QString> colorRight)
|
std::optional<QString> colorRight)
|
||||||
{
|
{
|
||||||
QString key = QString::number(height * 10000) + ":" + (short)isBuddy + ":" + privLevel.toLower() + ":" +
|
|
||||||
colorLeft.value_or("") + ":" + colorRight.value_or("");
|
|
||||||
|
|
||||||
if (iconCache.contains(key)) {
|
|
||||||
return iconCache.value(key);
|
|
||||||
}
|
|
||||||
|
|
||||||
QString iconType;
|
QString iconType;
|
||||||
if (isBuddy) {
|
if (isBuddy) {
|
||||||
iconType = "star";
|
iconType = "star";
|
||||||
|
|
@ -319,11 +311,9 @@ QIcon UserLevelPixmapGenerator::generateIconWithColorOverride(int height,
|
||||||
|
|
||||||
QString arity = colorRight.has_value() ? "double" : "single";
|
QString arity = colorRight.has_value() ? "double" : "single";
|
||||||
|
|
||||||
QString iconPath = QString("theme:usericons/%1_%2.svg").arg(iconType).arg(arity);
|
QString iconPath = QString("theme:usericons/%1_%2.svg").arg(iconType, arity);
|
||||||
|
|
||||||
QIcon icon = loadAndColorSvg(iconPath, colorLeft.value(), colorRight, height);
|
return loadAndColorSvg(iconPath, colorLeft.value(), colorRight, height);
|
||||||
iconCache.insert(key, icon);
|
|
||||||
return icon;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
QMap<QString, QIcon> UserLevelPixmapGenerator::iconCache;
|
QMap<QString, QIcon> UserLevelPixmapGenerator::iconCache;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue