From f9d94a45eebd5fb7b14d4bcc6ad77cb96ecdd771 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Thu, 10 Nov 2016 02:54:53 +0100 Subject: [PATCH] NOISSUE allow using icon themes for instances and instance badges --- api/gui/icons/IconList.cpp | 47 +++++++++-- api/gui/icons/IconList.h | 3 +- api/gui/icons/MMCIcon.cpp | 21 ++++- api/gui/icons/MMCIcon.h | 5 +- application/CMakeLists.txt | 1 - application/MultiMC.cpp | 8 +- application/groupview/InstanceDelegate.cpp | 76 ++++++------------ application/groupview/InstanceDelegate.h | 5 -- application/main.cpp | 1 - application/resources/instances/broken.png | Bin 1139 -> 0 bytes application/resources/instances/derp.png | Bin 5225 -> 0 bytes application/resources/instances/instances.qrc | 51 ------------ application/resources/instances/kitten.png | Bin 1605 -> 0 bytes .../resources/instances/status-bad.png | Bin 1102 -> 0 bytes .../resources/instances/status-running.png | Bin 1059 -> 0 bytes .../resources/instances/updateavailable.png | Bin 2480 -> 0 bytes .../128x128/instances/chicken.png} | Bin .../128x128/instances/creeper.png} | Bin .../128x128/instances/enderpearl.png} | Bin .../128x128/instances/ftb_glow.png} | Bin .../128x128/instances/ftb_logo.png} | Bin .../128x128/instances/gear.png} | Bin .../128x128/instances/herobrine.png} | Bin .../128x128/instances/infinity.png} | Bin .../128x128/instances/magitech.png} | Bin .../128x128/instances/meat.png} | Bin .../128x128/instances/netherstar.png} | Bin .../128x128/instances/skeleton.png} | Bin .../128x128/instances/squarecreeper.png} | Bin .../128x128/instances/steve.png} | Bin .../{ => multimc/32x32}/instances/brick.png | Bin .../{ => multimc/32x32}/instances/chicken.png | Bin .../{ => multimc/32x32}/instances/creeper.png | Bin .../{ => multimc/32x32}/instances/diamond.png | Bin .../{ => multimc/32x32}/instances/dirt.png | Bin .../32x32}/instances/enderpearl.png | Bin .../32x32}/instances/ftb_glow.png | Bin .../32x32}/instances/ftb_logo.png | Bin .../{ => multimc/32x32}/instances/gear.png | Bin .../{ => multimc/32x32}/instances/gold.png | Bin .../{ => multimc/32x32}/instances/grass.png | Bin .../32x32}/instances/herobrine.png | Bin .../32x32}/instances/infinity.png | Bin .../{ => multimc/32x32}/instances/iron.png | Bin .../32x32}/instances/magitech.png | Bin .../{ => multimc/32x32}/instances/meat.png | Bin .../32x32}/instances/netherstar.png | Bin .../{ => multimc/32x32}/instances/planks.png | Bin .../32x32}/instances/skeleton.png | Bin .../32x32}/instances/squarecreeper.png | Bin .../{ => multimc/32x32}/instances/steve.png | Bin .../{ => multimc/32x32}/instances/stone.png | Bin .../{ => multimc/32x32}/instances/tnt.png | Bin .../50x50}/instances/enderman.png | Bin application/resources/multimc/index.theme | 22 +++-- application/resources/multimc/multimc.qrc | 56 ++++++++++++- 56 files changed, 165 insertions(+), 131 deletions(-) delete mode 100644 application/resources/instances/broken.png delete mode 100644 application/resources/instances/derp.png delete mode 100644 application/resources/instances/instances.qrc delete mode 100644 application/resources/instances/kitten.png delete mode 100644 application/resources/instances/status-bad.png delete mode 100644 application/resources/instances/status-running.png delete mode 100644 application/resources/instances/updateavailable.png rename application/resources/{instances/chicken128.png => multimc/128x128/instances/chicken.png} (100%) rename application/resources/{instances/creeper128.png => multimc/128x128/instances/creeper.png} (100%) rename application/resources/{instances/enderpearl128.png => multimc/128x128/instances/enderpearl.png} (100%) rename application/resources/{instances/ftb_glow128.png => multimc/128x128/instances/ftb_glow.png} (100%) rename application/resources/{instances/ftb_logo128.png => multimc/128x128/instances/ftb_logo.png} (100%) rename application/resources/{instances/gear128.png => multimc/128x128/instances/gear.png} (100%) rename application/resources/{instances/herobrine128.png => multimc/128x128/instances/herobrine.png} (100%) rename application/resources/{instances/infinity128.png => multimc/128x128/instances/infinity.png} (100%) rename application/resources/{instances/magitech128.png => multimc/128x128/instances/magitech.png} (100%) rename application/resources/{instances/meat128.png => multimc/128x128/instances/meat.png} (100%) rename application/resources/{instances/netherstar128.png => multimc/128x128/instances/netherstar.png} (100%) rename application/resources/{instances/skeleton128.png => multimc/128x128/instances/skeleton.png} (100%) rename application/resources/{instances/squarecreeper128.png => multimc/128x128/instances/squarecreeper.png} (100%) rename application/resources/{instances/steve128.png => multimc/128x128/instances/steve.png} (100%) rename application/resources/{ => multimc/32x32}/instances/brick.png (100%) rename application/resources/{ => multimc/32x32}/instances/chicken.png (100%) rename application/resources/{ => multimc/32x32}/instances/creeper.png (100%) rename application/resources/{ => multimc/32x32}/instances/diamond.png (100%) rename application/resources/{ => multimc/32x32}/instances/dirt.png (100%) rename application/resources/{ => multimc/32x32}/instances/enderpearl.png (100%) rename application/resources/{ => multimc/32x32}/instances/ftb_glow.png (100%) rename application/resources/{ => multimc/32x32}/instances/ftb_logo.png (100%) rename application/resources/{ => multimc/32x32}/instances/gear.png (100%) rename application/resources/{ => multimc/32x32}/instances/gold.png (100%) rename application/resources/{ => multimc/32x32}/instances/grass.png (100%) rename application/resources/{ => multimc/32x32}/instances/herobrine.png (100%) rename application/resources/{ => multimc/32x32}/instances/infinity.png (100%) rename application/resources/{ => multimc/32x32}/instances/iron.png (100%) rename application/resources/{ => multimc/32x32}/instances/magitech.png (100%) rename application/resources/{ => multimc/32x32}/instances/meat.png (100%) rename application/resources/{ => multimc/32x32}/instances/netherstar.png (100%) rename application/resources/{ => multimc/32x32}/instances/planks.png (100%) rename application/resources/{ => multimc/32x32}/instances/skeleton.png (100%) rename application/resources/{ => multimc/32x32}/instances/squarecreeper.png (100%) rename application/resources/{ => multimc/32x32}/instances/steve.png (100%) rename application/resources/{ => multimc/32x32}/instances/stone.png (100%) rename application/resources/{ => multimc/32x32}/instances/tnt.png (100%) rename application/resources/{ => multimc/50x50}/instances/enderman.png (100%) diff --git a/api/gui/icons/IconList.cpp b/api/gui/icons/IconList.cpp index bdcada323..100a69c3e 100644 --- a/api/gui/icons/IconList.cpp +++ b/api/gui/icons/IconList.cpp @@ -25,15 +25,23 @@ #define MAX_SIZE 1024 -IconList::IconList(QString builtinPath, QString path, QObject *parent) : QAbstractListModel(parent) +IconList::IconList(const QStringList &builtinPaths, QString path, QObject *parent) : QAbstractListModel(parent) { + QSet builtinNames; + // add builtin icons - QDir instance_icons(builtinPath); - auto file_info_list = instance_icons.entryInfoList(QDir::Files, QDir::Name); - for (auto file_info : file_info_list) + for(auto & builtinPath: builtinPaths) { - QString key = file_info.baseName(); - addIcon(key, key, file_info.absoluteFilePath(), IconType::Builtin); + QDir instance_icons(builtinPath); + auto file_info_list = instance_icons.entryInfoList(QDir::Files, QDir::Name); + for (auto file_info : file_info_list) + { + builtinNames.insert(file_info.baseName()); + } + } + for(auto & builtinName : builtinNames) + { + addThemeIcon(builtinName); } m_watcher.reset(new QFileSystemWatcher()); @@ -292,6 +300,33 @@ bool IconList::deleteIcon(const QString &key) return false; } +bool IconList::addThemeIcon(const QString& key) +{ + auto iter = name_index.find(key); + if (iter != name_index.end()) + { + auto &oldOne = icons[*iter]; + oldOne.replace(Builtin, key); + dataChanged(index(*iter), index(*iter)); + return true; + } + else + { + // add a new icon + beginInsertRows(QModelIndex(), icons.size(), icons.size()); + { + MMCIcon mmc_icon; + mmc_icon.m_name = key; + mmc_icon.m_key = key; + mmc_icon.replace(Builtin, key); + icons.push_back(mmc_icon); + name_index[key] = icons.size() - 1; + } + endInsertRows(); + return true; + } +} + bool IconList::addIcon(const QString &key, const QString &name, const QString &path, const IconType type) { // replace the icon even? is the input valid? diff --git a/api/gui/icons/IconList.h b/api/gui/icons/IconList.h index 7b07797fe..f6b2ed0a6 100644 --- a/api/gui/icons/IconList.h +++ b/api/gui/icons/IconList.h @@ -34,7 +34,7 @@ class MULTIMC_GUI_EXPORT IconList : public QAbstractListModel, public IIconList { Q_OBJECT public: - explicit IconList(QString builtinPath, QString path, QObject *parent = 0); + explicit IconList(const QStringList &builtinPaths, QString path, QObject *parent = 0); virtual ~IconList() {}; QIcon getIcon(const QString &key) const; @@ -44,6 +44,7 @@ public: virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; virtual int rowCount(const QModelIndex &parent = QModelIndex()) const override; + bool addThemeIcon(const QString &key); bool addIcon(const QString &key, const QString &name, const QString &path, const IconType type) override; void saveIcon(const QString &key, const QString &path, const char * format) const override; bool deleteIcon(const QString &key) override; diff --git a/api/gui/icons/MMCIcon.cpp b/api/gui/icons/MMCIcon.cpp index f71281d0b..11ad93e2c 100644 --- a/api/gui/icons/MMCIcon.cpp +++ b/api/gui/icons/MMCIcon.cpp @@ -15,6 +15,7 @@ #include "MMCIcon.h" #include +#include IconType operator--(IconType &t, int) { @@ -58,7 +59,11 @@ QIcon MMCIcon::icon() const { if (m_current_type == IconType::ToBeDeleted) return QIcon(); - return m_images[m_current_type].icon; + auto & icon = m_images[m_current_type].icon; + if(!icon.isNull()) + return icon; + // FIXME: inject this. + return XdgIcon::fromTheme(m_images[m_current_type].key); } void MMCIcon::remove(IconType rm_type) @@ -78,12 +83,22 @@ void MMCIcon::remove(IconType rm_type) void MMCIcon::replace(IconType new_type, QIcon icon, QString path) { - QFileInfo foo(path); if (new_type > m_current_type || m_current_type == IconType::ToBeDeleted) { m_current_type = new_type; } m_images[new_type].icon = icon; - m_images[new_type].changed = foo.lastModified(); m_images[new_type].filename = path; + m_images[new_type].key = QString(); +} + +void MMCIcon::replace(IconType new_type, const QString& key) +{ + if (new_type > m_current_type || m_current_type == IconType::ToBeDeleted) + { + m_current_type = new_type; + } + m_images[new_type].icon = QIcon(); + m_images[new_type].filename = QString(); + m_images[new_type].key = key; } diff --git a/api/gui/icons/MMCIcon.h b/api/gui/icons/MMCIcon.h index 4bc7ecdc1..23231945e 100644 --- a/api/gui/icons/MMCIcon.h +++ b/api/gui/icons/MMCIcon.h @@ -24,11 +24,11 @@ struct MULTIMC_GUI_EXPORT MMCImage { QIcon icon; + QString key; QString filename; - QDateTime changed; bool present() const { - return !icon.isNull(); + return !icon.isNull() && !key.isEmpty(); } }; @@ -45,4 +45,5 @@ struct MULTIMC_GUI_EXPORT MMCIcon QIcon icon() const; void remove(IconType rm_type); void replace(IconType new_type, QIcon icon, QString path = QString()); + void replace(IconType new_type, const QString &key); }; diff --git a/application/CMakeLists.txt b/application/CMakeLists.txt index f89de0cbd..64879e27e 100644 --- a/application/CMakeLists.txt +++ b/application/CMakeLists.txt @@ -304,7 +304,6 @@ set(MULTIMC_QRCS resources/pe_blue/pe_blue.qrc resources/OSX/OSX.qrc resources/iOS/iOS.qrc - resources/instances/instances.qrc resources/versions/versions.qrc resources/certs/certs.qrc ) diff --git a/application/MultiMC.cpp b/application/MultiMC.cpp index 2cc934f1e..c102e1984 100644 --- a/application/MultiMC.cpp +++ b/application/MultiMC.cpp @@ -411,7 +411,13 @@ void MultiMC::initTranslations() void MultiMC::initIcons() { auto setting = MMC->settings()->getSetting("IconsDir"); - m_icons.reset(new IconList(QString(":/icons/instances/"), setting->get().toString())); + QStringList instFolders = + { + ":/icons/multimc/32x32/instances/", + ":/icons/multimc/50x50/instances/", + ":/icons/multimc/128x128/instances/" + }; + m_icons.reset(new IconList(instFolders, setting->get().toString())); connect(setting.get(), &Setting::SettingChanged,[&](const Setting &, QVariant value) { m_icons->directoryChanged(value.toString()); diff --git a/application/groupview/InstanceDelegate.cpp b/application/groupview/InstanceDelegate.cpp index b88f9a8a5..532b9d5bb 100644 --- a/application/groupview/InstanceDelegate.cpp +++ b/application/groupview/InstanceDelegate.cpp @@ -23,8 +23,7 @@ #include "GroupView.h" #include "BaseInstance.h" #include "InstanceList.h" - -QCache ListViewDelegate::m_pixmapCache; +#include // Origin: Qt static void viewItemTextLayout(QTextLayout &textLayout, int lineWidth, qreal &height, @@ -110,47 +109,22 @@ void drawProgressOverlay(QPainter *painter, const QStyleOptionViewItemV4 &option painter->restore(); } -void drawBadges(QPainter *painter, const QStyleOptionViewItemV4 &option, BaseInstance *instance) +void drawBadges(QPainter *painter, const QStyleOptionViewItemV4 &option, BaseInstance *instance, QIcon::Mode mode, QIcon::State state) { QList pixmaps; if (instance->isRunning()) { pixmaps.append("status-running"); } - else if (instance->hasCrashed()) + else if (instance->hasCrashed() || instance->hasVersionBroken()) { pixmaps.append("status-bad"); } - if (instance->hasVersionBroken()) - { - pixmaps.append("broken"); - } if (instance->hasUpdateAvailable()) { - pixmaps.append("updateavailable"); + pixmaps.append("checkupdate"); } - // begin easter eggs - if (instance->name().contains("btw", Qt::CaseInsensitive) || - instance->name().contains("better then wolves", Qt::CaseInsensitive) || - instance->name().contains("better than wolves", Qt::CaseInsensitive)) - { - pixmaps.append("herobrine"); - } - if (instance->name().contains("direwolf", Qt::CaseInsensitive)) - { - pixmaps.append("enderman"); - } - if (instance->name().contains("kitten", Qt::CaseInsensitive)) - { - pixmaps.append("kitten"); - } - if (instance->name().contains("derp", Qt::CaseInsensitive)) - { - pixmaps.append("derp"); - } - // end easter eggs - static const int itemSide = 24; static const int spacing = 1; const int itemsPerRow = qMax(1, qFloor(double(option.rect.width() + spacing) / double(itemSide + spacing))); @@ -165,11 +139,18 @@ void drawBadges(QPainter *painter, const QStyleOptionViewItemV4 &option, BaseIns { return; } - const QPixmap pixmap = ListViewDelegate::requestBadgePixmap(it.next()).scaled( - itemSide, itemSide, Qt::KeepAspectRatio, Qt::FastTransformation); - painter->drawPixmap(option.rect.width() - x * itemSide + qMax(x - 1, 0) * spacing - itemSide, - y * itemSide + qMax(y - 1, 0) * spacing, itemSide, itemSide, - pixmap); + // FIXME: inject this. + auto icon = XdgIcon::fromTheme(it.next()); + // opt.icon.paint(painter, iconbox, Qt::AlignCenter, mode, state); + const QPixmap pixmap; + // itemSide + QRect badgeRect( + option.rect.width() - x * itemSide + qMax(x - 1, 0) * spacing - itemSide, + y * itemSide + qMax(y - 1, 0) * spacing, + itemSide, + itemSide + ); + icon.paint(painter, badgeRect, Qt::AlignCenter, mode, state); } } painter->translate(-option.rect.topLeft()); @@ -274,15 +255,16 @@ void ListViewDelegate::paint(QPainter *painter, const QStyleOptionViewItem &opti */ } + // icon mode and state, also used for badges + QIcon::Mode mode = QIcon::Normal; + if (!(opt.state & QStyle::State_Enabled)) + mode = QIcon::Disabled; + else if (opt.state & QStyle::State_Selected) + mode = QIcon::Selected; + QIcon::State state = opt.state & QStyle::State_Open ? QIcon::On : QIcon::Off; + // draw the icon { - QIcon::Mode mode = QIcon::Normal; - if (!(opt.state & QStyle::State_Enabled)) - mode = QIcon::Disabled; - else if (opt.state & QStyle::State_Selected) - mode = QIcon::Selected; - QIcon::State state = opt.state & QStyle::State_Open ? QIcon::On : QIcon::Off; - iconbox.setHeight(iconSize); opt.icon.paint(painter, iconbox, Qt::AlignCenter, mode, state); } @@ -329,7 +311,7 @@ void ListViewDelegate::paint(QPainter *painter, const QStyleOptionViewItem &opti .value(); if (instance) { - drawBadges(painter, opt, instance); + drawBadges(painter, opt, instance, mode, state); } drawProgressOverlay(painter, opt, index.data(GroupViewRoles::ProgressValueRole).toInt(), @@ -359,11 +341,3 @@ QSize ListViewDelegate::sizeHint(const QStyleOptionViewItem &option, return sz; } -QPixmap ListViewDelegate::requestBadgePixmap(const QString &key) -{ - if (!m_pixmapCache.contains(key)) - { - m_pixmapCache.insert(key, new QPixmap(":/icons/badges/" + key + ".png")); - } - return *m_pixmapCache.object(key); -} diff --git a/application/groupview/InstanceDelegate.h b/application/groupview/InstanceDelegate.h index 2b5439cb1..f62df99e6 100644 --- a/application/groupview/InstanceDelegate.h +++ b/application/groupview/InstanceDelegate.h @@ -23,13 +23,8 @@ class ListViewDelegate : public QStyledItemDelegate public: explicit ListViewDelegate(QObject *parent = 0); - static QPixmap requestBadgePixmap(const QString &key); - protected: void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const; QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const; - -private: - static QCache m_pixmapCache; }; diff --git a/application/main.cpp b/application/main.cpp index 5b557170b..61771f6e5 100644 --- a/application/main.cpp +++ b/application/main.cpp @@ -13,7 +13,6 @@ int main(int argc, char *argv[]) { case MultiMC::Initialized: { - Q_INIT_RESOURCE(instances); Q_INIT_RESOURCE(multimc); Q_INIT_RESOURCE(backgrounds); Q_INIT_RESOURCE(versions); diff --git a/application/resources/instances/broken.png b/application/resources/instances/broken.png deleted file mode 100644 index 7a80a76e53c3fd4e6a407e18c569f6cef05b25b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1139 zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4mJh`h6m-gKNuKTtUO&DLn>}fotEvP94>M^ zy{A8;mp`ONF)GmINZ3c`(1@lBzZ`nvx%NefB-b|aX_)*>Xw4JJy7FRI)HSUY9IMk7 zFPdL7{l=;lUlebIscd7Lx@bj)i0SH?^Q_OvrcElm9cOW7?(FLG@8|sA`#jB~DfjZ_ z%Uw&BEV*vtEBrqDNBNf{Y5(tCyY}tt_6rv*I>q^Tc%Dq3Hf`U+o1!WvzwJyerENAm z{K4hijKVtkv-QouNeEd#}jk)B{6 z@vp0^Ytqr9M}OXQJ#+HVdv6t?MQhghEWZBwzih*t(9qDA$;rvNrlzKqCr%zc%KG;0 zTU{-|u9t7#yiwHGU!Rzr{dy_Gg_}2L#)pR=_iPc9m6wnH{p(j-m}&Y%B3nxTQi-rL9L%G`PL?#-D$Kl*^)*|g7v z)z#JiK79C)Q(OD@`M!Po@>*M4V?TcUc&V+et!Rp1*V89Yp3IF}JMZT0+tn+BR(7$o zv)9j?JGWMqAtXH9`Y_A<2@?cXcXyw*mY1K;ejzq6AYj4#S+jnfyn8ox(yUp(3d6&% zzdCZn<@KdYlN`0CdOa}T?6&ygvZYJ^#zjZp=Dm3Q*|TS>od^Kf7BuZro_jIy>R?Q@yEEr^<42 za^Cdw^J6h$IdSe>m?eXPl$NThYkK{g51E;Hd3D)aqwF(sa?b48zhAwosw%3xt7{%R z8ynl^b2Ecm7$PGhU$wTfDkh|+wsv)PUaYLD5?Z%z9bapTiInf|-MjaTiiDncaK$ZoPZw&W%5R|Ek(7SCKet_3YQn zmoHx(J?g5+;KwQ|DY^3S)ei9uyB-}?`I2eJaPrW5WrjJdray$48a!Ox-CqaHpKr!3 zY}$R)DJC|y&}h?5Ayrk?_(SuySutFYTX5*0;KxNrZx%!0{{R3 diff --git a/application/resources/instances/derp.png b/application/resources/instances/derp.png deleted file mode 100644 index 4c361942218d286b124f3ea4fd76f20c8e336584..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5225 zcmeAS@N?(olHy`uVBq!ia0y~yU{C;I4mJh`hT^KKFANL}oCO|{#S9GG!XV7ZFl&wk z0|S?Trn7TEKt_H^esM;Afr6*AvqC{pep+TuDg#5st+~PJA;B-jY`@?8;^f`YFvUAR zNR&e%$f>(QWTKjuBBy{?hvLGUqJakmU0qqEPb}zQ?(1vl5e?Mg>EgP<{zP$6U-ROQ zu2a7sRxi%Jw&(k^v;VeUw|lQz`~GlIyvbvLx3(rf_nY4%M1;3f6T0AWQd-kD9X5C zB7=f(YKIF$hBd>Q^I=`C3=swlB5B@7EE#U-G8lMT#JFBV&*2Bohp{DjnN#sh3w(sdU6`)JjJy| z%o3RrXF2E{s+=il)M�PV*|l=S%D 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 diff --git a/application/resources/instances/instances.qrc b/application/resources/instances/instances.qrc deleted file mode 100644 index 1f90762a0..000000000 --- a/application/resources/instances/instances.qrc +++ /dev/null @@ -1,51 +0,0 @@ - - - - - brick.png - diamond.png - dirt.png - gold.png - grass.png - stone.png - tnt.png - iron.png - planks.png - - - derp.png - enderman.png - - - chicken128.png - creeper128.png - enderpearl128.png - ftb_glow128.png - ftb_logo128.png - gear128.png - herobrine128.png - infinity128.png - magitech128.png - meat128.png - netherstar128.png - skeleton128.png - squarecreeper128.png - steve128.png - - - - enderman.png - herobrine.png - derp.png - status-running.png - status-bad.png - - - updateavailable.png - - - kitten.png - - broken.png - - diff --git a/application/resources/instances/kitten.png b/application/resources/instances/kitten.png deleted file mode 100644 index d17661ce5775bfe1493b7ed23d8632174ff431cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1605 zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4mJh`h6m-gKNuL;csyMkLn>}<4XrE?4wd*H zH|gxvlFc_|eAi#NP^O{Vc*|?!^s7w@aRxG6T2`!qd)(PwUA6m)I{FqnG)gjxy0Hp6 zTCy^3eNf`%-?NlGb2i(gEiWhTw*3Ax=p_%wi})Jr{gu|c-`~DpegFIKy{-k_%)R$Q z_Ws+^m3WiMZvJ}?cZ=PpAHS_lJp1j!i{HN5^QV2P@bKo;5aIeEbAJ8bL$<&2vY#4t zrDpJ|K2R@;33>ayYPR^^y*I0P5AI6k-#cf*oL?(Flvo*E6NMD_AHQm4Vo-4A`RA$2 zUzO~XeVZ$yoW8-tPpq{1j+>?Le;=_>y~UzzM;>?X%n&(rF!9ZXX#0w?yXQ`2bHvRI zo>BXIO5`yfXUWR01C=M4wr-7gnxdlm`jUgf0tE@4h6a6xrBTdt#cw;Ph&UM-@XY*` zxxnW%gA)^$%;w$e@Ra&C%PQ?sZfw=eNi zmrE?0)VFE{LtSp~r&>=o%u>{~=5MOg|F(0khgx{T{L76wv1=8kp4@o&R_m*5zx@9R z>0g7*r@YL_se63#>qnm5G3QnZ`i8AF7fD#C!pEs0_~FN&8zMnVIl5Y$Ekr&jw?9>? zV3WOJd!s$)*}1!?uf2(=DEYq4L`mfL8TV-{7uNY}{e1a&lihOBRWr~1yVqR0Uw(VQ zln;AvpH6ECS;`!CvME4?k#VKHzk)<0i+HDlg-C~|(3>!6mpyzLE3LU}x1DD9PCJ(z zWPEJ;u6DMZuwr+^Tiag!tma;JuiixF!{ZE-?i03-jSNYfujPEMGf&9HQmhKEk0@6>k1!XBn)I(jV} zHye*XZF;qN>jWqFgO~DDtd}%|u5?@%;%vbb)4s9rmIwd6*plI{$j6&zZxM zFY<(~FkSKGV5`E?$T!Nn!ZU&on7&|{m0Ebx9c&r8ti+U;Qn-J%81rh&@*S&!yB>Rq+RM z`OjW+II_~!C6H6uPQmMt3a6lu&#yMU^6iKJ{kuN?uFkKT_0Kx(`SLld zD}K$aS*pf)#K`hxCtJ&rl#Uof*2DQ+chzdYibGm&vW}86RUde zx%j(1=d&q30(TQn*qClyu%YAPs|9y&G#r2SL|MBq=h+g?2PHQQoU1O~z1H&hk!Z$= zd(19DKWd6MXMSBLJoA6JQeD`ps(Z!!{{PLglk_xBTBxi$i?TVkkjs+vJz9p z-rUV~=wV*lYkJ{gQcJG=zh4v2O8zi7RoHB<)X{4=dzGrwtA$Iy-`{AbZasO5t>7Iw zeKQ|T=f8WyF7%&g?OrK*{4&of`(m!g84`T*w(s7&_&U$*CR^WxKUPeeR6G8@T@)^S zfyJuHg=uGmhJ>|UXspx6iE4gI6IE0*U5~W5 c)qhC;+p;7|S5S370|Nttr>mdKI;Vst02<`~FaQ7m diff --git a/application/resources/instances/status-bad.png b/application/resources/instances/status-bad.png deleted file mode 100644 index d1547a4744ae6b20201a74267c5ac1b71b364704..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1102 zcmeAS@N?(olHy`uVBq!ia0y~yV2}V|4mJh`h6m-gKNuJoSc;uILpV4%IBGajIv5xj zI14-?iy0WW5Zh4mOMdn7ND?BR9!70>QlTy}47PPg%p zJ)_4JeNgP$H^+r%Sk~w~nqsyIt+E3n+}isABeYgS(ooqqqU zt=*m3U(9@;#n}|>d^qp^&${#X?{^9bN}W9JFfd9 z2Hq7?&ioN9=a`?@Ec$6wA}=yC+vCH`Abod*?8dE}8CfFby??lBIAcC9ep&1OWUnd9 ze2uHS`26njUTbbB?0z76@qow&*$nY{73LjB80??R^++e!3NVQ$aN5gmeZ;!U>yOw6 znGJ$EjUVNfuF+yNSfcpNK!B5R4#PJ~zQx;oEm`8&+;V5v_8sn=z$`k6<4A)eLvqN< z3`w^4%x5=_saaYXI-Wkju(M$a&y$?l(;6B3{Co_i`V<+7oc!ys`u)!Uuaz3? ziO+8L8z)CV#_rpr63)#rKby@`scbqV9#{>_)V#0qvsJh}b#_04%63A5C03v-^+ILdZ>VgCO*pUX!|WBF1yo5))_ zIlW%>m+iq6`M2LE>Q$5~=Tw?ZNoL)WdDh47yyVibi7I7pRy6ge7{z!me;FCK?%KMf z|IPPVyeBSyxc2OYEjyQa_cWyJYCB@kqxHi{_Cwbn#y@Q3Qh5P8{(CF=A2dENZLMin z!SWrKGsb8&)fRd+neomtL;5m8(W^ZkpoUG?mE*OJjX5r<7~CD#|^tIgKC?nf#^KujSr;aeMdl=j!T}DpMLC zA4t8x_C-4WYX>?jsx=l_kR@k%@y3MFtxnJMxRlhq1!a~$G^|h{Y z^=NmLGUWcq-W=EUkL6jzdd9}e1=i)8r$$bcTe?Pw=i&XA(>U*N=Wu=5&m8`tJ2G{>`Ip-)-|Gwv3=E#GelF{r G5}E)U;Nlhl diff --git a/application/resources/instances/status-running.png b/application/resources/instances/status-running.png deleted file mode 100644 index ecd64451f0f6ee861adf9a3090986da80b3ce991..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1059 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 U17x?p1~r&GUHx3vIVCg!03sP^n*aa+ diff --git a/application/resources/instances/chicken128.png b/application/resources/multimc/128x128/instances/chicken.png similarity index 100% rename from application/resources/instances/chicken128.png rename to application/resources/multimc/128x128/instances/chicken.png diff --git a/application/resources/instances/creeper128.png b/application/resources/multimc/128x128/instances/creeper.png similarity index 100% rename from application/resources/instances/creeper128.png rename to application/resources/multimc/128x128/instances/creeper.png diff --git a/application/resources/instances/enderpearl128.png b/application/resources/multimc/128x128/instances/enderpearl.png similarity index 100% rename from application/resources/instances/enderpearl128.png rename to application/resources/multimc/128x128/instances/enderpearl.png diff --git a/application/resources/instances/ftb_glow128.png b/application/resources/multimc/128x128/instances/ftb_glow.png similarity index 100% rename from application/resources/instances/ftb_glow128.png rename to application/resources/multimc/128x128/instances/ftb_glow.png diff --git a/application/resources/instances/ftb_logo128.png b/application/resources/multimc/128x128/instances/ftb_logo.png similarity index 100% rename from application/resources/instances/ftb_logo128.png rename to application/resources/multimc/128x128/instances/ftb_logo.png diff --git a/application/resources/instances/gear128.png b/application/resources/multimc/128x128/instances/gear.png similarity index 100% rename from application/resources/instances/gear128.png rename to application/resources/multimc/128x128/instances/gear.png diff --git a/application/resources/instances/herobrine128.png b/application/resources/multimc/128x128/instances/herobrine.png similarity index 100% rename from application/resources/instances/herobrine128.png rename to application/resources/multimc/128x128/instances/herobrine.png diff --git a/application/resources/instances/infinity128.png b/application/resources/multimc/128x128/instances/infinity.png similarity index 100% rename from application/resources/instances/infinity128.png rename to application/resources/multimc/128x128/instances/infinity.png diff --git a/application/resources/instances/magitech128.png b/application/resources/multimc/128x128/instances/magitech.png similarity index 100% rename from application/resources/instances/magitech128.png rename to application/resources/multimc/128x128/instances/magitech.png diff --git a/application/resources/instances/meat128.png b/application/resources/multimc/128x128/instances/meat.png similarity index 100% rename from application/resources/instances/meat128.png rename to application/resources/multimc/128x128/instances/meat.png diff --git a/application/resources/instances/netherstar128.png b/application/resources/multimc/128x128/instances/netherstar.png similarity index 100% rename from application/resources/instances/netherstar128.png rename to application/resources/multimc/128x128/instances/netherstar.png diff --git a/application/resources/instances/skeleton128.png b/application/resources/multimc/128x128/instances/skeleton.png similarity index 100% rename from application/resources/instances/skeleton128.png rename to application/resources/multimc/128x128/instances/skeleton.png diff --git a/application/resources/instances/squarecreeper128.png b/application/resources/multimc/128x128/instances/squarecreeper.png similarity index 100% rename from application/resources/instances/squarecreeper128.png rename to application/resources/multimc/128x128/instances/squarecreeper.png diff --git a/application/resources/instances/steve128.png b/application/resources/multimc/128x128/instances/steve.png similarity index 100% rename from application/resources/instances/steve128.png rename to application/resources/multimc/128x128/instances/steve.png diff --git a/application/resources/instances/brick.png b/application/resources/multimc/32x32/instances/brick.png similarity index 100% rename from application/resources/instances/brick.png rename to application/resources/multimc/32x32/instances/brick.png diff --git a/application/resources/instances/chicken.png b/application/resources/multimc/32x32/instances/chicken.png similarity index 100% rename from application/resources/instances/chicken.png rename to application/resources/multimc/32x32/instances/chicken.png diff --git a/application/resources/instances/creeper.png b/application/resources/multimc/32x32/instances/creeper.png similarity index 100% rename from application/resources/instances/creeper.png rename to application/resources/multimc/32x32/instances/creeper.png diff --git a/application/resources/instances/diamond.png b/application/resources/multimc/32x32/instances/diamond.png similarity index 100% rename from application/resources/instances/diamond.png rename to application/resources/multimc/32x32/instances/diamond.png diff --git a/application/resources/instances/dirt.png b/application/resources/multimc/32x32/instances/dirt.png similarity index 100% rename from application/resources/instances/dirt.png rename to application/resources/multimc/32x32/instances/dirt.png diff --git a/application/resources/instances/enderpearl.png b/application/resources/multimc/32x32/instances/enderpearl.png similarity index 100% rename from application/resources/instances/enderpearl.png rename to application/resources/multimc/32x32/instances/enderpearl.png diff --git a/application/resources/instances/ftb_glow.png b/application/resources/multimc/32x32/instances/ftb_glow.png similarity index 100% rename from application/resources/instances/ftb_glow.png rename to application/resources/multimc/32x32/instances/ftb_glow.png diff --git a/application/resources/instances/ftb_logo.png b/application/resources/multimc/32x32/instances/ftb_logo.png similarity index 100% rename from application/resources/instances/ftb_logo.png rename to application/resources/multimc/32x32/instances/ftb_logo.png diff --git a/application/resources/instances/gear.png b/application/resources/multimc/32x32/instances/gear.png similarity index 100% rename from application/resources/instances/gear.png rename to application/resources/multimc/32x32/instances/gear.png diff --git a/application/resources/instances/gold.png b/application/resources/multimc/32x32/instances/gold.png similarity index 100% rename from application/resources/instances/gold.png rename to application/resources/multimc/32x32/instances/gold.png diff --git a/application/resources/instances/grass.png b/application/resources/multimc/32x32/instances/grass.png similarity index 100% rename from application/resources/instances/grass.png rename to application/resources/multimc/32x32/instances/grass.png diff --git a/application/resources/instances/herobrine.png b/application/resources/multimc/32x32/instances/herobrine.png similarity index 100% rename from application/resources/instances/herobrine.png rename to application/resources/multimc/32x32/instances/herobrine.png diff --git a/application/resources/instances/infinity.png b/application/resources/multimc/32x32/instances/infinity.png similarity index 100% rename from application/resources/instances/infinity.png rename to application/resources/multimc/32x32/instances/infinity.png diff --git a/application/resources/instances/iron.png b/application/resources/multimc/32x32/instances/iron.png similarity index 100% rename from application/resources/instances/iron.png rename to application/resources/multimc/32x32/instances/iron.png diff --git a/application/resources/instances/magitech.png b/application/resources/multimc/32x32/instances/magitech.png similarity index 100% rename from application/resources/instances/magitech.png rename to application/resources/multimc/32x32/instances/magitech.png diff --git a/application/resources/instances/meat.png b/application/resources/multimc/32x32/instances/meat.png similarity index 100% rename from application/resources/instances/meat.png rename to application/resources/multimc/32x32/instances/meat.png diff --git a/application/resources/instances/netherstar.png b/application/resources/multimc/32x32/instances/netherstar.png similarity index 100% rename from application/resources/instances/netherstar.png rename to application/resources/multimc/32x32/instances/netherstar.png diff --git a/application/resources/instances/planks.png b/application/resources/multimc/32x32/instances/planks.png similarity index 100% rename from application/resources/instances/planks.png rename to application/resources/multimc/32x32/instances/planks.png diff --git a/application/resources/instances/skeleton.png b/application/resources/multimc/32x32/instances/skeleton.png similarity index 100% rename from application/resources/instances/skeleton.png rename to application/resources/multimc/32x32/instances/skeleton.png diff --git a/application/resources/instances/squarecreeper.png b/application/resources/multimc/32x32/instances/squarecreeper.png similarity index 100% rename from application/resources/instances/squarecreeper.png rename to application/resources/multimc/32x32/instances/squarecreeper.png diff --git a/application/resources/instances/steve.png b/application/resources/multimc/32x32/instances/steve.png similarity index 100% rename from application/resources/instances/steve.png rename to application/resources/multimc/32x32/instances/steve.png diff --git a/application/resources/instances/stone.png b/application/resources/multimc/32x32/instances/stone.png similarity index 100% rename from application/resources/instances/stone.png rename to application/resources/multimc/32x32/instances/stone.png diff --git a/application/resources/instances/tnt.png b/application/resources/multimc/32x32/instances/tnt.png similarity index 100% rename from application/resources/instances/tnt.png rename to application/resources/multimc/32x32/instances/tnt.png diff --git a/application/resources/instances/enderman.png b/application/resources/multimc/50x50/instances/enderman.png similarity index 100% rename from application/resources/instances/enderman.png rename to application/resources/multimc/50x50/instances/enderman.png diff --git a/application/resources/multimc/index.theme b/application/resources/multimc/index.theme index 5f7d3f3f7..0fe7e7d78 100644 --- a/application/resources/multimc/index.theme +++ b/application/resources/multimc/index.theme @@ -2,14 +2,7 @@ Name=multimc Comment=MultiMC Default Icons Inherits=default -Directories=scalable/apps,8x8,16x16,22x22,24x24,32x32,48x48,scalable - -[scalable/apps] -Size=48 -Type=scalable -MinSize=1 -MaxSize=512 -Context=Applications +Directories=8x8,16x16,22x22,24x24,32x32,32x32/instances,48x48,50x50/instances,64x64,128x128/instances,256x256,scalable [8x8] Size=8 @@ -26,12 +19,25 @@ Size=24 [32x32] Size=32 +[32x32/instances] +Size=32 +MinSize=1 +MaxSize=32 + [48x48] Size=48 +[50x50/instances] +Size=50 + [64x64] Size=64 +[128x128/instances] +Size=128 +MinSize=33 +MaxSize=128 + [256x256] Size=256 diff --git a/application/resources/multimc/multimc.qrc b/application/resources/multimc/multimc.qrc index 91e190659..ef3e9ab6e 100644 --- a/application/resources/multimc/multimc.qrc +++ b/application/resources/multimc/multimc.qrc @@ -233,5 +233,59 @@ scalable/discord.svg - + + 32x32/instances/chicken.png + 128x128/instances/chicken.png + + 32x32/instances/creeper.png + 128x128/instances/creeper.png + + 32x32/instances/enderpearl.png + 128x128/instances/enderpearl.png + + 32x32/instances/ftb_glow.png + 128x128/instances/ftb_glow.png + + 32x32/instances/ftb_logo.png + 128x128/instances/ftb_logo.png + + 32x32/instances/gear.png + 128x128/instances/gear.png + + 32x32/instances/herobrine.png + 128x128/instances/herobrine.png + + 32x32/instances/infinity.png + 128x128/instances/infinity.png + + 32x32/instances/magitech.png + 128x128/instances/magitech.png + + 32x32/instances/meat.png + 128x128/instances/meat.png + + 32x32/instances/netherstar.png + 128x128/instances/netherstar.png + + 32x32/instances/skeleton.png + 128x128/instances/skeleton.png + + 32x32/instances/squarecreeper.png + 128x128/instances/squarecreeper.png + + 32x32/instances/steve.png + 128x128/instances/steve.png + + 32x32/instances/brick.png + 32x32/instances/diamond.png + 32x32/instances/dirt.png + 32x32/instances/gold.png + 32x32/instances/grass.png + 32x32/instances/iron.png + 32x32/instances/planks.png + 32x32/instances/stone.png + 32x32/instances/tnt.png + + 50x50/instances/enderman.png +