draw the scrap of a debris card as an icon, not a word
The debris card's row now reads "Remaining" with the amount and the bare scrap icon after it, and the count summary's indented sub-row states its total the same way; both fall back to naming the item in words when no scrap icon file exists. StatRow gained the value-plus-icon form: a label draws either text or a pixmap, so the two are composed into one via renderCaptionWithIcon, with the color passed in because a pixmap does not follow the palette. That also closes a gap in the building multi-selection, whose "Total cost" was specified to carry the building_block icon and showed the bare number. ItemIconCache::getInlineIcon() packages the sizing rule of the bare inline icon. It sits on the cache rather than in IconCaption so StatRow keeps pulling in nothing but the caption helper: StatRow.cpp is compiled into DotaFactory_balancing, which links neither the ui library nor QtSvg, and that target now compiles IconCaption.cpp along with it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Ne3mejABZoLWKLh8fgpM3x
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
#include "ItemIconCache.h"
|
||||
|
||||
#include <QFile>
|
||||
#include <QFontMetrics>
|
||||
#include <QPainter>
|
||||
#include <QRectF>
|
||||
#include <QSvgRenderer>
|
||||
@@ -94,6 +95,12 @@ QPixmap ItemIconCache::getPixmap(const std::string& itemId, int sizePx)
|
||||
return getPixmap(itemId, itemId, sizePx, false);
|
||||
}
|
||||
|
||||
QPixmap ItemIconCache::getInlineIcon(const std::string& itemId, const QFont& font)
|
||||
{
|
||||
if (!hasIcon(itemId)) { return QPixmap(); }
|
||||
return getPixmap(itemId, QFontMetrics(font).height());
|
||||
}
|
||||
|
||||
QPixmap ItemIconCache::getPixmap(const std::string& cacheKey, const std::string& itemId,
|
||||
int sizePx, bool withSquare)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user