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: 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/brick.png | Bin 713 -> 0 bytes application/resources/instances/broken.png | Bin 1139 -> 0 bytes application/resources/instances/chicken.png | Bin 1181 -> 0 bytes application/resources/instances/chicken128.png | Bin 6369 -> 0 bytes application/resources/instances/creeper.png | Bin 1524 -> 0 bytes application/resources/instances/creeper128.png | Bin 9046 -> 0 bytes application/resources/instances/derp.png | Bin 5225 -> 0 bytes application/resources/instances/diamond.png | Bin 708 -> 0 bytes application/resources/instances/dirt.png | Bin 482 -> 0 bytes application/resources/instances/enderman.png | Bin 2429 -> 0 bytes application/resources/instances/enderpearl.png | Bin 2120 -> 0 bytes application/resources/instances/enderpearl128.png | Bin 21425 -> 0 bytes application/resources/instances/ftb_glow.png | Bin 1747 -> 0 bytes application/resources/instances/ftb_glow128.png | Bin 12708 -> 0 bytes application/resources/instances/ftb_logo.png | Bin 1607 -> 0 bytes application/resources/instances/ftb_logo128.png | Bin 7883 -> 0 bytes application/resources/instances/gear.png | Bin 2414 -> 0 bytes application/resources/instances/gear128.png | Bin 18321 -> 0 bytes application/resources/instances/gold.png | Bin 978 -> 0 bytes application/resources/instances/grass.png | Bin 618 -> 0 bytes application/resources/instances/herobrine.png | Bin 1034 -> 0 bytes application/resources/instances/herobrine128.png | Bin 4937 -> 0 bytes application/resources/instances/infinity.png | Bin 1714 -> 0 bytes application/resources/instances/infinity128.png | Bin 9237 -> 0 bytes application/resources/instances/instances.qrc | 51 -------------- application/resources/instances/iron.png | Bin 532 -> 0 bytes application/resources/instances/kitten.png | Bin 1605 -> 0 bytes application/resources/instances/magitech.png | Bin 2646 -> 0 bytes application/resources/instances/magitech128.png | Bin 23097 -> 0 bytes application/resources/instances/meat.png | Bin 1514 -> 0 bytes application/resources/instances/meat128.png | Bin 10583 -> 0 bytes application/resources/instances/netherstar.png | Bin 1942 -> 0 bytes application/resources/instances/netherstar128.png | Bin 14062 -> 0 bytes application/resources/instances/planks.png | Bin 461 -> 0 bytes application/resources/instances/skeleton.png | Bin 696 -> 0 bytes application/resources/instances/skeleton128.png | Bin 3673 -> 0 bytes application/resources/instances/squarecreeper.png | Bin 1623 -> 0 bytes .../resources/instances/squarecreeper128.png | Bin 9136 -> 0 bytes application/resources/instances/status-bad.png | Bin 1102 -> 0 bytes application/resources/instances/status-running.png | Bin 1059 -> 0 bytes application/resources/instances/steve.png | Bin 969 -> 0 bytes application/resources/instances/steve128.png | Bin 4312 -> 0 bytes application/resources/instances/stone.png | Bin 438 -> 0 bytes application/resources/instances/tnt.png | Bin 378 -> 0 bytes .../resources/instances/updateavailable.png | Bin 2480 -> 0 bytes .../multimc/128x128/instances/chicken.png | Bin 0 -> 6369 bytes .../multimc/128x128/instances/creeper.png | Bin 0 -> 9046 bytes .../multimc/128x128/instances/enderpearl.png | Bin 0 -> 21425 bytes .../multimc/128x128/instances/ftb_glow.png | Bin 0 -> 12708 bytes .../multimc/128x128/instances/ftb_logo.png | Bin 0 -> 7883 bytes .../resources/multimc/128x128/instances/gear.png | Bin 0 -> 18321 bytes .../multimc/128x128/instances/herobrine.png | Bin 0 -> 4937 bytes .../multimc/128x128/instances/infinity.png | Bin 0 -> 9237 bytes .../multimc/128x128/instances/magitech.png | Bin 0 -> 23097 bytes .../resources/multimc/128x128/instances/meat.png | Bin 0 -> 10583 bytes .../multimc/128x128/instances/netherstar.png | Bin 0 -> 14062 bytes .../multimc/128x128/instances/skeleton.png | Bin 0 -> 3673 bytes .../multimc/128x128/instances/squarecreeper.png | Bin 0 -> 9136 bytes .../resources/multimc/128x128/instances/steve.png | Bin 0 -> 4312 bytes .../resources/multimc/32x32/instances/brick.png | Bin 0 -> 713 bytes .../resources/multimc/32x32/instances/chicken.png | Bin 0 -> 1181 bytes .../resources/multimc/32x32/instances/creeper.png | Bin 0 -> 1524 bytes .../resources/multimc/32x32/instances/diamond.png | Bin 0 -> 708 bytes .../resources/multimc/32x32/instances/dirt.png | Bin 0 -> 482 bytes .../multimc/32x32/instances/enderpearl.png | Bin 0 -> 2120 bytes .../resources/multimc/32x32/instances/ftb_glow.png | Bin 0 -> 1747 bytes .../resources/multimc/32x32/instances/ftb_logo.png | Bin 0 -> 1607 bytes .../resources/multimc/32x32/instances/gear.png | Bin 0 -> 2414 bytes .../resources/multimc/32x32/instances/gold.png | Bin 0 -> 978 bytes .../resources/multimc/32x32/instances/grass.png | Bin 0 -> 618 bytes .../multimc/32x32/instances/herobrine.png | Bin 0 -> 1034 bytes .../resources/multimc/32x32/instances/infinity.png | Bin 0 -> 1714 bytes .../resources/multimc/32x32/instances/iron.png | Bin 0 -> 532 bytes .../resources/multimc/32x32/instances/magitech.png | Bin 0 -> 2646 bytes .../resources/multimc/32x32/instances/meat.png | Bin 0 -> 1514 bytes .../multimc/32x32/instances/netherstar.png | Bin 0 -> 1942 bytes .../resources/multimc/32x32/instances/planks.png | Bin 0 -> 461 bytes .../resources/multimc/32x32/instances/skeleton.png | Bin 0 -> 696 bytes .../multimc/32x32/instances/squarecreeper.png | Bin 0 -> 1623 bytes .../resources/multimc/32x32/instances/steve.png | Bin 0 -> 969 bytes .../resources/multimc/32x32/instances/stone.png | Bin 0 -> 438 bytes .../resources/multimc/32x32/instances/tnt.png | Bin 0 -> 378 bytes .../resources/multimc/50x50/instances/enderman.png | Bin 0 -> 2429 bytes application/resources/multimc/index.theme | 22 +++--- application/resources/multimc/multimc.qrc | 56 ++++++++++++++- 94 files changed, 165 insertions(+), 131 deletions(-) delete mode 100644 application/resources/instances/brick.png delete mode 100644 application/resources/instances/broken.png delete mode 100644 application/resources/instances/chicken.png delete mode 100644 application/resources/instances/chicken128.png delete mode 100644 application/resources/instances/creeper.png delete mode 100644 application/resources/instances/creeper128.png delete mode 100644 application/resources/instances/derp.png delete mode 100644 application/resources/instances/diamond.png delete mode 100644 application/resources/instances/dirt.png delete mode 100644 application/resources/instances/enderman.png delete mode 100644 application/resources/instances/enderpearl.png delete mode 100644 application/resources/instances/enderpearl128.png delete mode 100644 application/resources/instances/ftb_glow.png delete mode 100644 application/resources/instances/ftb_glow128.png delete mode 100644 application/resources/instances/ftb_logo.png delete mode 100644 application/resources/instances/ftb_logo128.png delete mode 100644 application/resources/instances/gear.png delete mode 100644 application/resources/instances/gear128.png delete mode 100644 application/resources/instances/gold.png delete mode 100644 application/resources/instances/grass.png delete mode 100644 application/resources/instances/herobrine.png delete mode 100644 application/resources/instances/herobrine128.png delete mode 100644 application/resources/instances/infinity.png delete mode 100644 application/resources/instances/infinity128.png delete mode 100644 application/resources/instances/instances.qrc delete mode 100644 application/resources/instances/iron.png delete mode 100644 application/resources/instances/kitten.png delete mode 100644 application/resources/instances/magitech.png delete mode 100644 application/resources/instances/magitech128.png delete mode 100644 application/resources/instances/meat.png delete mode 100644 application/resources/instances/meat128.png delete mode 100644 application/resources/instances/netherstar.png delete mode 100644 application/resources/instances/netherstar128.png delete mode 100644 application/resources/instances/planks.png delete mode 100644 application/resources/instances/skeleton.png delete mode 100644 application/resources/instances/skeleton128.png delete mode 100644 application/resources/instances/squarecreeper.png delete mode 100644 application/resources/instances/squarecreeper128.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/steve.png delete mode 100644 application/resources/instances/steve128.png delete mode 100644 application/resources/instances/stone.png delete mode 100644 application/resources/instances/tnt.png delete mode 100644 application/resources/instances/updateavailable.png create mode 100644 application/resources/multimc/128x128/instances/chicken.png create mode 100644 application/resources/multimc/128x128/instances/creeper.png create mode 100644 application/resources/multimc/128x128/instances/enderpearl.png create mode 100644 application/resources/multimc/128x128/instances/ftb_glow.png create mode 100644 application/resources/multimc/128x128/instances/ftb_logo.png create mode 100644 application/resources/multimc/128x128/instances/gear.png create mode 100644 application/resources/multimc/128x128/instances/herobrine.png create mode 100644 application/resources/multimc/128x128/instances/infinity.png create mode 100644 application/resources/multimc/128x128/instances/magitech.png create mode 100644 application/resources/multimc/128x128/instances/meat.png create mode 100644 application/resources/multimc/128x128/instances/netherstar.png create mode 100644 application/resources/multimc/128x128/instances/skeleton.png create mode 100644 application/resources/multimc/128x128/instances/squarecreeper.png create mode 100644 application/resources/multimc/128x128/instances/steve.png create mode 100644 application/resources/multimc/32x32/instances/brick.png create mode 100644 application/resources/multimc/32x32/instances/chicken.png create mode 100644 application/resources/multimc/32x32/instances/creeper.png create mode 100644 application/resources/multimc/32x32/instances/diamond.png create mode 100644 application/resources/multimc/32x32/instances/dirt.png create mode 100644 application/resources/multimc/32x32/instances/enderpearl.png create mode 100644 application/resources/multimc/32x32/instances/ftb_glow.png create mode 100644 application/resources/multimc/32x32/instances/ftb_logo.png create mode 100644 application/resources/multimc/32x32/instances/gear.png create mode 100644 application/resources/multimc/32x32/instances/gold.png create mode 100644 application/resources/multimc/32x32/instances/grass.png create mode 100644 application/resources/multimc/32x32/instances/herobrine.png create mode 100644 application/resources/multimc/32x32/instances/infinity.png create mode 100644 application/resources/multimc/32x32/instances/iron.png create mode 100644 application/resources/multimc/32x32/instances/magitech.png create mode 100644 application/resources/multimc/32x32/instances/meat.png create mode 100644 application/resources/multimc/32x32/instances/netherstar.png create mode 100644 application/resources/multimc/32x32/instances/planks.png create mode 100644 application/resources/multimc/32x32/instances/skeleton.png create mode 100644 application/resources/multimc/32x32/instances/squarecreeper.png create mode 100644 application/resources/multimc/32x32/instances/steve.png create mode 100644 application/resources/multimc/32x32/instances/stone.png create mode 100644 application/resources/multimc/32x32/instances/tnt.png create mode 100644 application/resources/multimc/50x50/instances/enderman.png diff --git a/api/gui/icons/IconList.cpp b/api/gui/icons/IconList.cpp index bdcada32..100a69c3 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 7b07797f..f6b2ed0a 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 f71281d0..11ad93e2 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 4bc7ecdc..23231945 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 f89de0cb..64879e27 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 2cc934f1..c102e198 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 b88f9a8a..532b9d5b 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,46 +109,21 @@ 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"); - } - - // 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"); + pixmaps.append("checkupdate"); } - // end easter eggs static const int itemSide = 24; static const int spacing = 1; @@ -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 2b5439cb..f62df99e 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 5b557170..61771f6e 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/brick.png b/application/resources/instances/brick.png deleted file mode 100644 index 0b534366..00000000 Binary files a/application/resources/instances/brick.png and /dev/null differ diff --git a/application/resources/instances/broken.png b/application/resources/instances/broken.png deleted file mode 100644 index 7a80a76e..00000000 Binary files a/application/resources/instances/broken.png and /dev/null differ diff --git a/application/resources/instances/chicken.png b/application/resources/instances/chicken.png deleted file mode 100644 index f870467a..00000000 Binary files a/application/resources/instances/chicken.png and /dev/null differ diff --git a/application/resources/instances/chicken128.png b/application/resources/instances/chicken128.png deleted file mode 100644 index 71f6dedc..00000000 Binary files a/application/resources/instances/chicken128.png and /dev/null differ diff --git a/application/resources/instances/creeper.png b/application/resources/instances/creeper.png deleted file mode 100644 index a67ecfc3..00000000 Binary files a/application/resources/instances/creeper.png and /dev/null differ diff --git a/application/resources/instances/creeper128.png b/application/resources/instances/creeper128.png deleted file mode 100644 index 41b7d07d..00000000 Binary files a/application/resources/instances/creeper128.png and /dev/null differ diff --git a/application/resources/instances/derp.png b/application/resources/instances/derp.png deleted file mode 100644 index 4c361942..00000000 Binary files a/application/resources/instances/derp.png and /dev/null differ diff --git a/application/resources/instances/diamond.png b/application/resources/instances/diamond.png deleted file mode 100644 index 376ab901..00000000 Binary files a/application/resources/instances/diamond.png and /dev/null differ diff --git a/application/resources/instances/dirt.png b/application/resources/instances/dirt.png deleted file mode 100644 index 9e19eb8f..00000000 Binary files a/application/resources/instances/dirt.png and /dev/null differ diff --git a/application/resources/instances/enderman.png b/application/resources/instances/enderman.png deleted file mode 100644 index 9f3a72b3..00000000 Binary files a/application/resources/instances/enderman.png and /dev/null differ diff --git a/application/resources/instances/enderpearl.png b/application/resources/instances/enderpearl.png deleted file mode 100644 index a818eb8e..00000000 Binary files a/application/resources/instances/enderpearl.png and /dev/null differ diff --git a/application/resources/instances/enderpearl128.png b/application/resources/instances/enderpearl128.png deleted file mode 100644 index 0a5bf91a..00000000 Binary files a/application/resources/instances/enderpearl128.png and /dev/null differ diff --git a/application/resources/instances/ftb_glow.png b/application/resources/instances/ftb_glow.png deleted file mode 100644 index c4e6fd5d..00000000 Binary files a/application/resources/instances/ftb_glow.png and /dev/null differ diff --git a/application/resources/instances/ftb_glow128.png b/application/resources/instances/ftb_glow128.png deleted file mode 100644 index 86632b21..00000000 Binary files a/application/resources/instances/ftb_glow128.png and /dev/null differ diff --git a/application/resources/instances/ftb_logo.png b/application/resources/instances/ftb_logo.png deleted file mode 100644 index 20df7171..00000000 Binary files a/application/resources/instances/ftb_logo.png and /dev/null differ diff --git a/application/resources/instances/ftb_logo128.png b/application/resources/instances/ftb_logo128.png deleted file mode 100644 index e725b7fe..00000000 Binary files a/application/resources/instances/ftb_logo128.png and /dev/null differ diff --git a/application/resources/instances/gear.png b/application/resources/instances/gear.png deleted file mode 100644 index da9ba2f9..00000000 Binary files a/application/resources/instances/gear.png and /dev/null differ diff --git a/application/resources/instances/gear128.png b/application/resources/instances/gear128.png deleted file mode 100644 index 75c68a66..00000000 Binary files a/application/resources/instances/gear128.png and /dev/null differ diff --git a/application/resources/instances/gold.png b/application/resources/instances/gold.png deleted file mode 100644 index 9bedda16..00000000 Binary files a/application/resources/instances/gold.png and /dev/null differ diff --git a/application/resources/instances/grass.png b/application/resources/instances/grass.png deleted file mode 100644 index f1694547..00000000 Binary files a/application/resources/instances/grass.png and /dev/null differ diff --git a/application/resources/instances/herobrine.png b/application/resources/instances/herobrine.png deleted file mode 100644 index e5460da3..00000000 Binary files a/application/resources/instances/herobrine.png and /dev/null differ diff --git a/application/resources/instances/herobrine128.png b/application/resources/instances/herobrine128.png deleted file mode 100644 index 13f1494c..00000000 Binary files a/application/resources/instances/herobrine128.png and /dev/null differ diff --git a/application/resources/instances/infinity.png b/application/resources/instances/infinity.png deleted file mode 100644 index bd94a3dc..00000000 Binary files a/application/resources/instances/infinity.png and /dev/null differ diff --git a/application/resources/instances/infinity128.png b/application/resources/instances/infinity128.png deleted file mode 100644 index 226847fb..00000000 Binary files a/application/resources/instances/infinity128.png and /dev/null differ diff --git a/application/resources/instances/instances.qrc b/application/resources/instances/instances.qrc deleted file mode 100644 index 1f90762a..00000000 --- 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/iron.png b/application/resources/instances/iron.png deleted file mode 100644 index 28960782..00000000 Binary files a/application/resources/instances/iron.png and /dev/null differ diff --git a/application/resources/instances/kitten.png b/application/resources/instances/kitten.png deleted file mode 100644 index d17661ce..00000000 Binary files a/application/resources/instances/kitten.png and /dev/null differ diff --git a/application/resources/instances/magitech.png b/application/resources/instances/magitech.png deleted file mode 100644 index 6fd8ff60..00000000 Binary files a/application/resources/instances/magitech.png and /dev/null differ diff --git a/application/resources/instances/magitech128.png b/application/resources/instances/magitech128.png deleted file mode 100644 index 0f81a199..00000000 Binary files a/application/resources/instances/magitech128.png and /dev/null differ diff --git a/application/resources/instances/meat.png b/application/resources/instances/meat.png deleted file mode 100644 index 6694859d..00000000 Binary files a/application/resources/instances/meat.png and /dev/null differ diff --git a/application/resources/instances/meat128.png b/application/resources/instances/meat128.png deleted file mode 100644 index fefc9bf1..00000000 Binary files a/application/resources/instances/meat128.png and /dev/null differ diff --git a/application/resources/instances/netherstar.png b/application/resources/instances/netherstar.png deleted file mode 100644 index 43cb5113..00000000 Binary files a/application/resources/instances/netherstar.png and /dev/null differ diff --git a/application/resources/instances/netherstar128.png b/application/resources/instances/netherstar128.png deleted file mode 100644 index 132085f0..00000000 Binary files a/application/resources/instances/netherstar128.png and /dev/null differ diff --git a/application/resources/instances/planks.png b/application/resources/instances/planks.png deleted file mode 100644 index 7fcf8467..00000000 Binary files a/application/resources/instances/planks.png and /dev/null differ diff --git a/application/resources/instances/skeleton.png b/application/resources/instances/skeleton.png deleted file mode 100644 index 0c8d3505..00000000 Binary files a/application/resources/instances/skeleton.png and /dev/null differ diff --git a/application/resources/instances/skeleton128.png b/application/resources/instances/skeleton128.png deleted file mode 100644 index 55fcf5a9..00000000 Binary files a/application/resources/instances/skeleton128.png and /dev/null differ diff --git a/application/resources/instances/squarecreeper.png b/application/resources/instances/squarecreeper.png deleted file mode 100644 index b78c4ae0..00000000 Binary files a/application/resources/instances/squarecreeper.png and /dev/null differ diff --git a/application/resources/instances/squarecreeper128.png b/application/resources/instances/squarecreeper128.png deleted file mode 100644 index c82d8406..00000000 Binary files a/application/resources/instances/squarecreeper128.png and /dev/null differ diff --git a/application/resources/instances/status-bad.png b/application/resources/instances/status-bad.png deleted file mode 100644 index d1547a47..00000000 Binary files a/application/resources/instances/status-bad.png and /dev/null differ diff --git a/application/resources/instances/status-running.png b/application/resources/instances/status-running.png deleted file mode 100644 index ecd64451..00000000 Binary files a/application/resources/instances/status-running.png and /dev/null differ diff --git a/application/resources/instances/steve.png b/application/resources/instances/steve.png deleted file mode 100644 index 07c6acde..00000000 Binary files a/application/resources/instances/steve.png and /dev/null differ diff --git a/application/resources/instances/steve128.png b/application/resources/instances/steve128.png deleted file mode 100644 index a07cbd2f..00000000 Binary files a/application/resources/instances/steve128.png and /dev/null differ diff --git a/application/resources/instances/stone.png b/application/resources/instances/stone.png deleted file mode 100644 index 34f9a751..00000000 Binary files a/application/resources/instances/stone.png and /dev/null differ diff --git a/application/resources/instances/tnt.png b/application/resources/instances/tnt.png deleted file mode 100644 index e40d404d..00000000 Binary files a/application/resources/instances/tnt.png and /dev/null differ diff --git a/application/resources/instances/updateavailable.png b/application/resources/instances/updateavailable.png deleted file mode 100644 index 754005f9..00000000 Binary files a/application/resources/instances/updateavailable.png and /dev/null differ diff --git a/application/resources/multimc/128x128/instances/chicken.png b/application/resources/multimc/128x128/instances/chicken.png new file mode 100644 index 00000000..71f6dedc Binary files /dev/null and b/application/resources/multimc/128x128/instances/chicken.png differ diff --git a/application/resources/multimc/128x128/instances/creeper.png b/application/resources/multimc/128x128/instances/creeper.png new file mode 100644 index 00000000..41b7d07d Binary files /dev/null and b/application/resources/multimc/128x128/instances/creeper.png differ diff --git a/application/resources/multimc/128x128/instances/enderpearl.png b/application/resources/multimc/128x128/instances/enderpearl.png new file mode 100644 index 00000000..0a5bf91a Binary files /dev/null and b/application/resources/multimc/128x128/instances/enderpearl.png differ diff --git a/application/resources/multimc/128x128/instances/ftb_glow.png b/application/resources/multimc/128x128/instances/ftb_glow.png new file mode 100644 index 00000000..86632b21 Binary files /dev/null and b/application/resources/multimc/128x128/instances/ftb_glow.png differ diff --git a/application/resources/multimc/128x128/instances/ftb_logo.png b/application/resources/multimc/128x128/instances/ftb_logo.png new file mode 100644 index 00000000..e725b7fe Binary files /dev/null and b/application/resources/multimc/128x128/instances/ftb_logo.png differ diff --git a/application/resources/multimc/128x128/instances/gear.png b/application/resources/multimc/128x128/instances/gear.png new file mode 100644 index 00000000..75c68a66 Binary files /dev/null and b/application/resources/multimc/128x128/instances/gear.png differ diff --git a/application/resources/multimc/128x128/instances/herobrine.png b/application/resources/multimc/128x128/instances/herobrine.png new file mode 100644 index 00000000..13f1494c Binary files /dev/null and b/application/resources/multimc/128x128/instances/herobrine.png differ diff --git a/application/resources/multimc/128x128/instances/infinity.png b/application/resources/multimc/128x128/instances/infinity.png new file mode 100644 index 00000000..226847fb Binary files /dev/null and b/application/resources/multimc/128x128/instances/infinity.png differ diff --git a/application/resources/multimc/128x128/instances/magitech.png b/application/resources/multimc/128x128/instances/magitech.png new file mode 100644 index 00000000..0f81a199 Binary files /dev/null and b/application/resources/multimc/128x128/instances/magitech.png differ diff --git a/application/resources/multimc/128x128/instances/meat.png b/application/resources/multimc/128x128/instances/meat.png new file mode 100644 index 00000000..fefc9bf1 Binary files /dev/null and b/application/resources/multimc/128x128/instances/meat.png differ diff --git a/application/resources/multimc/128x128/instances/netherstar.png b/application/resources/multimc/128x128/instances/netherstar.png new file mode 100644 index 00000000..132085f0 Binary files /dev/null and b/application/resources/multimc/128x128/instances/netherstar.png differ diff --git a/application/resources/multimc/128x128/instances/skeleton.png b/application/resources/multimc/128x128/instances/skeleton.png new file mode 100644 index 00000000..55fcf5a9 Binary files /dev/null and b/application/resources/multimc/128x128/instances/skeleton.png differ diff --git a/application/resources/multimc/128x128/instances/squarecreeper.png b/application/resources/multimc/128x128/instances/squarecreeper.png new file mode 100644 index 00000000..c82d8406 Binary files /dev/null and b/application/resources/multimc/128x128/instances/squarecreeper.png differ diff --git a/application/resources/multimc/128x128/instances/steve.png b/application/resources/multimc/128x128/instances/steve.png new file mode 100644 index 00000000..a07cbd2f Binary files /dev/null and b/application/resources/multimc/128x128/instances/steve.png differ diff --git a/application/resources/multimc/32x32/instances/brick.png b/application/resources/multimc/32x32/instances/brick.png new file mode 100644 index 00000000..0b534366 Binary files /dev/null and b/application/resources/multimc/32x32/instances/brick.png differ diff --git a/application/resources/multimc/32x32/instances/chicken.png b/application/resources/multimc/32x32/instances/chicken.png new file mode 100644 index 00000000..f870467a Binary files /dev/null and b/application/resources/multimc/32x32/instances/chicken.png differ diff --git a/application/resources/multimc/32x32/instances/creeper.png b/application/resources/multimc/32x32/instances/creeper.png new file mode 100644 index 00000000..a67ecfc3 Binary files /dev/null and b/application/resources/multimc/32x32/instances/creeper.png differ diff --git a/application/resources/multimc/32x32/instances/diamond.png b/application/resources/multimc/32x32/instances/diamond.png new file mode 100644 index 00000000..376ab901 Binary files /dev/null and b/application/resources/multimc/32x32/instances/diamond.png differ diff --git a/application/resources/multimc/32x32/instances/dirt.png b/application/resources/multimc/32x32/instances/dirt.png new file mode 100644 index 00000000..9e19eb8f Binary files /dev/null and b/application/resources/multimc/32x32/instances/dirt.png differ diff --git a/application/resources/multimc/32x32/instances/enderpearl.png b/application/resources/multimc/32x32/instances/enderpearl.png new file mode 100644 index 00000000..a818eb8e Binary files /dev/null and b/application/resources/multimc/32x32/instances/enderpearl.png differ diff --git a/application/resources/multimc/32x32/instances/ftb_glow.png b/application/resources/multimc/32x32/instances/ftb_glow.png new file mode 100644 index 00000000..c4e6fd5d Binary files /dev/null and b/application/resources/multimc/32x32/instances/ftb_glow.png differ diff --git a/application/resources/multimc/32x32/instances/ftb_logo.png b/application/resources/multimc/32x32/instances/ftb_logo.png new file mode 100644 index 00000000..20df7171 Binary files /dev/null and b/application/resources/multimc/32x32/instances/ftb_logo.png differ diff --git a/application/resources/multimc/32x32/instances/gear.png b/application/resources/multimc/32x32/instances/gear.png new file mode 100644 index 00000000..da9ba2f9 Binary files /dev/null and b/application/resources/multimc/32x32/instances/gear.png differ diff --git a/application/resources/multimc/32x32/instances/gold.png b/application/resources/multimc/32x32/instances/gold.png new file mode 100644 index 00000000..9bedda16 Binary files /dev/null and b/application/resources/multimc/32x32/instances/gold.png differ diff --git a/application/resources/multimc/32x32/instances/grass.png b/application/resources/multimc/32x32/instances/grass.png new file mode 100644 index 00000000..f1694547 Binary files /dev/null and b/application/resources/multimc/32x32/instances/grass.png differ diff --git a/application/resources/multimc/32x32/instances/herobrine.png b/application/resources/multimc/32x32/instances/herobrine.png new file mode 100644 index 00000000..e5460da3 Binary files /dev/null and b/application/resources/multimc/32x32/instances/herobrine.png differ diff --git a/application/resources/multimc/32x32/instances/infinity.png b/application/resources/multimc/32x32/instances/infinity.png new file mode 100644 index 00000000..bd94a3dc Binary files /dev/null and b/application/resources/multimc/32x32/instances/infinity.png differ diff --git a/application/resources/multimc/32x32/instances/iron.png b/application/resources/multimc/32x32/instances/iron.png new file mode 100644 index 00000000..28960782 Binary files /dev/null and b/application/resources/multimc/32x32/instances/iron.png differ diff --git a/application/resources/multimc/32x32/instances/magitech.png b/application/resources/multimc/32x32/instances/magitech.png new file mode 100644 index 00000000..6fd8ff60 Binary files /dev/null and b/application/resources/multimc/32x32/instances/magitech.png differ diff --git a/application/resources/multimc/32x32/instances/meat.png b/application/resources/multimc/32x32/instances/meat.png new file mode 100644 index 00000000..6694859d Binary files /dev/null and b/application/resources/multimc/32x32/instances/meat.png differ diff --git a/application/resources/multimc/32x32/instances/netherstar.png b/application/resources/multimc/32x32/instances/netherstar.png new file mode 100644 index 00000000..43cb5113 Binary files /dev/null and b/application/resources/multimc/32x32/instances/netherstar.png differ diff --git a/application/resources/multimc/32x32/instances/planks.png b/application/resources/multimc/32x32/instances/planks.png new file mode 100644 index 00000000..7fcf8467 Binary files /dev/null and b/application/resources/multimc/32x32/instances/planks.png differ diff --git a/application/resources/multimc/32x32/instances/skeleton.png b/application/resources/multimc/32x32/instances/skeleton.png new file mode 100644 index 00000000..0c8d3505 Binary files /dev/null and b/application/resources/multimc/32x32/instances/skeleton.png differ diff --git a/application/resources/multimc/32x32/instances/squarecreeper.png b/application/resources/multimc/32x32/instances/squarecreeper.png new file mode 100644 index 00000000..b78c4ae0 Binary files /dev/null and b/application/resources/multimc/32x32/instances/squarecreeper.png differ diff --git a/application/resources/multimc/32x32/instances/steve.png b/application/resources/multimc/32x32/instances/steve.png new file mode 100644 index 00000000..07c6acde Binary files /dev/null and b/application/resources/multimc/32x32/instances/steve.png differ diff --git a/application/resources/multimc/32x32/instances/stone.png b/application/resources/multimc/32x32/instances/stone.png new file mode 100644 index 00000000..34f9a751 Binary files /dev/null and b/application/resources/multimc/32x32/instances/stone.png differ diff --git a/application/resources/multimc/32x32/instances/tnt.png b/application/resources/multimc/32x32/instances/tnt.png new file mode 100644 index 00000000..e40d404d Binary files /dev/null and b/application/resources/multimc/32x32/instances/tnt.png differ diff --git a/application/resources/multimc/50x50/instances/enderman.png b/application/resources/multimc/50x50/instances/enderman.png new file mode 100644 index 00000000..9f3a72b3 Binary files /dev/null and b/application/resources/multimc/50x50/instances/enderman.png differ diff --git a/application/resources/multimc/index.theme b/application/resources/multimc/index.theme index 5f7d3f3f..0fe7e7d7 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 91e19065..ef3e9ab6 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 + -- cgit v1.2.3