From 9b3ae29a361b4d89897c34750ea170d4433b93be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Tue, 8 Jul 2014 08:42:48 +0200 Subject: Make the FTB packs a set instead of a list. --- logic/InstanceList.cpp | 6 +++--- logic/InstanceList.h | 11 ++++++++++- 2 files changed, 13 insertions(+), 4 deletions(-) (limited to 'logic') diff --git a/logic/InstanceList.cpp b/logic/InstanceList.cpp index 5a988fd3..8a68c334 100644 --- a/logic/InstanceList.cpp +++ b/logic/InstanceList.cpp @@ -283,9 +283,9 @@ void InstanceList::loadGroupList(QMap &groupMap) } } -QList InstanceList::discoverFTBInstances() +QSet InstanceList::discoverFTBInstances() { - QList records; + QSet records; QDir dir = QDir(MMC->settings()->get("FTBLauncherDataRoot").toString()); QDir dataDir = QDir(MMC->settings()->get("FTBRoot").toString()); if (!dataDir.exists()) @@ -333,7 +333,7 @@ QList InstanceList::discoverFTBInstances() record.logo = attrs.value("logo").toString(); record.mcVersion = attrs.value("mcVersion").toString(); record.description = attrs.value("description").toString(); - records.append(record); + records.insert(record); } break; } diff --git a/logic/InstanceList.h b/logic/InstanceList.h index f0bbb7ec..b88a080e 100644 --- a/logic/InstanceList.h +++ b/logic/InstanceList.h @@ -36,14 +36,23 @@ struct FTBRecord QString description; QString instanceDir; QString templateDir; + bool operator ==(const FTBRecord other) const + { + return instanceDir == other.instanceDir; + } }; +inline uint qHash(FTBRecord record) +{ + return qHash(record.instanceDir); +} + class InstanceList : public QAbstractListModel { Q_OBJECT private: void loadGroupList(QMap &groupList); - QList discoverFTBInstances(); + QSet discoverFTBInstances(); void loadFTBInstances(QMap &groupMap, QList & tempList); private -- cgit v1.2.3