diff options
author | Petr Mrázek <peterix@gmail.com> | 2015-02-01 11:44:47 +0100 |
---|---|---|
committer | Petr Mrázek <peterix@gmail.com> | 2015-04-12 20:57:16 +0200 |
commit | aa70ed2244700dbcc93c1fadb22edc1c1caede37 (patch) | |
tree | 79fc6703e984edc4d631be8c6f40c71400f88aba /logic | |
parent | 154d19bb74f4c5fc1519aa40cd9dfd20244273a1 (diff) | |
download | MultiMC-aa70ed2244700dbcc93c1fadb22edc1c1caede37.tar MultiMC-aa70ed2244700dbcc93c1fadb22edc1c1caede37.tar.gz MultiMC-aa70ed2244700dbcc93c1fadb22edc1c1caede37.tar.lz MultiMC-aa70ed2244700dbcc93c1fadb22edc1c1caede37.tar.xz MultiMC-aa70ed2244700dbcc93c1fadb22edc1c1caede37.zip |
SCRATCH move icons over to Env, instance proxy model to gui
Diffstat (limited to 'logic')
-rw-r--r-- | logic/BaseInstance.cpp | 3 | ||||
-rw-r--r-- | logic/Env.cpp | 6 | ||||
-rw-r--r-- | logic/Env.h | 4 | ||||
-rw-r--r-- | logic/InstanceList.cpp | 22 | ||||
-rw-r--r-- | logic/InstanceList.h | 9 | ||||
-rw-r--r-- | logic/LegacyInstance.cpp | 2 | ||||
-rw-r--r-- | logic/OneSixInstance.cpp | 2 | ||||
-rw-r--r-- | logic/ftb/FTBPlugin.cpp | 2 | ||||
-rw-r--r-- | logic/icons/IconList.cpp | 7 | ||||
-rw-r--r-- | logic/icons/IconList.h | 3 |
10 files changed, 21 insertions, 39 deletions
diff --git a/logic/BaseInstance.cpp b/logic/BaseInstance.cpp index ce81b90e..a5fb5f81 100644 --- a/logic/BaseInstance.cpp +++ b/logic/BaseInstance.cpp @@ -18,7 +18,6 @@ #include <QFileInfo> #include <QDir> -#include "MultiMC.h" #include "logic/settings/INISettingsObject.h" #include "logic/settings/Setting.h" @@ -37,7 +36,7 @@ BaseInstance::BaseInstance(SettingsObjectPtr globalSettings, SettingsObjectPtr s m_settings->registerSetting("name", "Unnamed Instance"); m_settings->registerSetting("iconKey", "default"); - connect(MMC->icons().get(), SIGNAL(iconUpdated(QString)), SLOT(iconUpdated(QString))); + connect(ENV.icons().get(), SIGNAL(iconUpdated(QString)), SLOT(iconUpdated(QString))); m_settings->registerSetting("notes", ""); m_settings->registerSetting("lastLaunchTime", 0); diff --git a/logic/Env.cpp b/logic/Env.cpp index daf17d65..f10f1951 100644 --- a/logic/Env.cpp +++ b/logic/Env.cpp @@ -1,5 +1,6 @@ #include "Env.h" #include "logic/net/HttpMetaCache.h" +#include "icons/IconList.h" #include <QDir> #include <QNetworkProxy> #include <QNetworkAccessManager> @@ -35,6 +36,11 @@ std::shared_ptr< QNetworkAccessManager > Env::qnam() return m_qnam; } +std::shared_ptr<IconList> Env::icons() +{ + Q_ASSERT(m_icons != nullptr); + return m_icons; +} void Env::initHttpMetaCache(QString rootPath, QString staticDataPath) { diff --git a/logic/Env.h b/logic/Env.h index 3d560a29..ba2ea869 100644 --- a/logic/Env.h +++ b/logic/Env.h @@ -3,6 +3,7 @@ #include <memory> #include <QString> +class IconList; class QNetworkAccessManager; class HttpMetaCache; @@ -26,6 +27,8 @@ public: std::shared_ptr<HttpMetaCache> metacache(); + std::shared_ptr<IconList> icons(); + /// init the cache. FIXME: possible future hook point void initHttpMetaCache(QString rootPath, QString staticDataPath); @@ -35,4 +38,5 @@ public: protected: std::shared_ptr<QNetworkAccessManager> m_qnam; std::shared_ptr<HttpMetaCache> m_metacache; + std::shared_ptr<IconList> m_icons; }; diff --git a/logic/InstanceList.cpp b/logic/InstanceList.cpp index db85bcfc..b6ac38a8 100644 --- a/logic/InstanceList.cpp +++ b/logic/InstanceList.cpp @@ -97,7 +97,7 @@ QVariant InstanceList::data(const QModelIndex &index, int role) const case Qt::DecorationRole: { QString key = pdata->iconKey(); - return MMC->icons()->getIcon(key); + return ENV.icons()->getIcon(key); } // for now. case GroupViewRoles::GroupRole: @@ -547,23 +547,3 @@ void InstanceList::propertiesChanged(BaseInstance *inst) emit dataChanged(index(i), index(i)); } } - -InstanceProxyModel::InstanceProxyModel(QObject *parent) : GroupedProxyModel(parent) -{ -} - -bool InstanceProxyModel::subSortLessThan(const QModelIndex &left, - const QModelIndex &right) const -{ - BaseInstance *pdataLeft = static_cast<BaseInstance *>(left.internalPointer()); - BaseInstance *pdataRight = static_cast<BaseInstance *>(right.internalPointer()); - QString sortMode = MMC->settings()->get("InstSortMode").toString(); - if (sortMode == "LastLaunch") - { - return pdataLeft->lastLaunch() > pdataRight->lastLaunch(); - } - else - { - return QString::localeAwareCompare(pdataLeft->name(), pdataRight->name()) < 0; - } -} diff --git a/logic/InstanceList.h b/logic/InstanceList.h index 1d52663e..ac3dc848 100644 --- a/logic/InstanceList.h +++ b/logic/InstanceList.h @@ -181,12 +181,3 @@ protected: QSet<QString> m_groups; SettingsObjectPtr m_globalSettings; }; - -class InstanceProxyModel : public GroupedProxyModel -{ -public: - explicit InstanceProxyModel(QObject *parent = 0); - -protected: - virtual bool subSortLessThan(const QModelIndex &left, const QModelIndex &right) const; -}; diff --git a/logic/LegacyInstance.cpp b/logic/LegacyInstance.cpp index 96aeff69..ff1eed44 100644 --- a/logic/LegacyInstance.cpp +++ b/logic/LegacyInstance.cpp @@ -127,7 +127,7 @@ std::shared_ptr<Task> LegacyInstance::doUpdate() BaseProcess *LegacyInstance::prepareForLaunch(AuthSessionPtr account) { QString launchScript; - QIcon icon = MMC->icons()->getIcon(iconKey()); + QIcon icon = ENV.icons()->getIcon(iconKey()); auto pixmap = icon.pixmap(128, 128); pixmap.save(PathCombine(minecraftRoot(), "icon.png"), "PNG"); diff --git a/logic/OneSixInstance.cpp b/logic/OneSixInstance.cpp index 95701e80..20fb65bb 100644 --- a/logic/OneSixInstance.cpp +++ b/logic/OneSixInstance.cpp @@ -158,7 +158,7 @@ QStringList OneSixInstance::processMinecraftArgs(AuthSessionPtr session) BaseProcess *OneSixInstance::prepareForLaunch(AuthSessionPtr session) { QString launchScript; - QIcon icon = MMC->icons()->getIcon(iconKey()); + QIcon icon = ENV.icons()->getIcon(iconKey()); auto pixmap = icon.pixmap(128, 128); pixmap.save(PathCombine(minecraftRoot(), "icon.png"), "PNG"); diff --git a/logic/ftb/FTBPlugin.cpp b/logic/ftb/FTBPlugin.cpp index d524e3fd..1e9d9123 100644 --- a/logic/ftb/FTBPlugin.cpp +++ b/logic/ftb/FTBPlugin.cpp @@ -212,7 +212,7 @@ void FTBPlugin::loadInstances(QMap<QString, QString> &groupMap, QList<InstancePt qDebug() << "Loading FTB instance from " << record.instanceDir; QString iconKey = record.logo; iconKey.remove(QRegularExpression("\\..*")); - MMC->icons()->addIcon(iconKey, iconKey, PathCombine(record.templateDir, record.logo), + ENV.icons()->addIcon(iconKey, iconKey, PathCombine(record.templateDir, record.logo), MMCIcon::Transient); if (!QFileInfo(PathCombine(record.instanceDir, "instance.cfg")).exists()) diff --git a/logic/icons/IconList.cpp b/logic/icons/IconList.cpp index 6db8b035..964d61e9 100644 --- a/logic/icons/IconList.cpp +++ b/logic/icons/IconList.cpp @@ -20,14 +20,15 @@ #include <QMimeData> #include <QUrl> #include <QFileSystemWatcher> -#include <MultiMC.h> +#include <QSet> +#include <logger/QsLog.h> #define MAX_SIZE 1024 -IconList::IconList(QString path, QObject *parent) : QAbstractListModel(parent) +IconList::IconList(QString builtinPath, QString path, QObject *parent) : QAbstractListModel(parent) { // add builtin icons - QDir instance_icons(":/icons/instances/"); + QDir instance_icons(builtinPath); auto file_info_list = instance_icons.entryInfoList(QDir::Files, QDir::Name); for (auto file_info : file_info_list) { diff --git a/logic/icons/IconList.h b/logic/icons/IconList.h index 8687eba6..124ecf27 100644 --- a/logic/icons/IconList.h +++ b/logic/icons/IconList.h @@ -23,6 +23,7 @@ #include <memory> #include "MMCIcon.h" #include "logic/settings/Setting.h" +#include "logic/Env.h" // there is a global icon list inside Env. class QFileSystemWatcher; @@ -30,7 +31,7 @@ class IconList : public QAbstractListModel { Q_OBJECT public: - explicit IconList(QString path, QObject *parent = 0); + explicit IconList(QString builtinPath, QString path, QObject *parent = 0); virtual ~IconList() {}; QIcon getIcon(QString key); |