diff options
Diffstat (limited to 'sigmodr/TileUI.cpp')
| -rw-r--r-- | sigmodr/TileUI.cpp | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/sigmodr/TileUI.cpp b/sigmodr/TileUI.cpp index acab991f..f360f438 100644 --- a/sigmodr/TileUI.cpp +++ b/sigmodr/TileUI.cpp @@ -49,16 +49,22 @@ void Sigmodr::TileUI::initGui() void Sigmodr::TileUI::refreshGui() { + int maxHeight = 0; + int maxWidth = 0; const bool blocked = varSprite->blockSignals(true); varSprite->clear(); for (int i = 0; i < sigmod()->spriteCount(); ++i) { const Sigmod::Sprite* sprite = sigmod()->sprite(i); - if (sprite->sprite().size() == QSize(64, 64)) - varSprite->addItem(QPixmap::fromImage(sprite->sprite()), sprite->name(), sprite->id()); + QPixmap icon; + icon.loadFromData(sprite->sprite()); + maxHeight = qMax(maxHeight, icon.height()); + maxWidth = qMax(maxWidth, icon.width()); + varSprite->addItem(icon, sprite->name(), sprite->id()); } varSprite->blockSignals(blocked); - varSprite->setIconSize(QSize(64, 64)); + const QSize maxSize(maxWidth, maxHeight); + varSprite->setIconSize(maxSize); } void Sigmodr::TileUI::setGui() |
