diff options
author | Trial97 <alexandru.tripon97@gmail.com> | 2023-08-05 18:21:09 +0300 |
---|---|---|
committer | Trial97 <alexandru.tripon97@gmail.com> | 2023-08-05 18:21:09 +0300 |
commit | 939a2d67ed75be714e9f3b1b918250d006b3860a (patch) | |
tree | c5700ba93652e26fc1f86235b1a278d90fd0ce91 /launcher/InstanceList.h | |
parent | 6f7d901a1f5c02e0629e4bae9172c04bb81ce0d9 (diff) | |
parent | ae793f6cf11658c9abc5111e82d5ba7b3e6af127 (diff) | |
download | PrismLauncher-939a2d67ed75be714e9f3b1b918250d006b3860a.tar.gz PrismLauncher-939a2d67ed75be714e9f3b1b918250d006b3860a.tar.bz2 PrismLauncher-939a2d67ed75be714e9f3b1b918250d006b3860a.zip |
Merge branch 'develop' of https://github.com/PrismLauncher/PrismLauncher into develop12
Signed-off-by: Trial97 <alexandru.tripon97@gmail.com>
Diffstat (limited to 'launcher/InstanceList.h')
-rw-r--r-- | launcher/InstanceList.h | 114 |
1 files changed, 45 insertions, 69 deletions
diff --git a/launcher/InstanceList.h b/launcher/InstanceList.h index 48bede07..ee4578ff 100644 --- a/launcher/InstanceList.h +++ b/launcher/InstanceList.h @@ -15,12 +15,12 @@ #pragma once -#include <QObject> #include <QAbstractListModel> -#include <QSet> #include <QList> -#include <QStack> +#include <QObject> #include <QPair> +#include <QSet> +#include <QStack> #include "BaseInstance.h" @@ -32,21 +32,9 @@ using InstanceId = QString; using GroupId = QString; using InstanceLocator = std::pair<InstancePtr, int>; -enum class InstCreateError -{ - NoCreateError = 0, - NoSuchVersion, - UnknownCreateError, - InstExists, - CantCreateDir -}; +enum class InstCreateError { NoCreateError = 0, NoSuchVersion, UnknownCreateError, InstExists, CantCreateDir }; -enum class GroupsState -{ - NotLoaded, - Steady, - Dirty -}; +enum class GroupsState { NotLoaded, Steady, Dirty }; struct TrashHistoryItem { QString id; @@ -55,48 +43,36 @@ struct TrashHistoryItem { QString groupName; }; -class InstanceList : public QAbstractListModel -{ +class InstanceList : public QAbstractListModel { Q_OBJECT -public: - explicit InstanceList(SettingsObjectPtr settings, const QString & instDir, QObject *parent = 0); + public: + explicit InstanceList(SettingsObjectPtr settings, const QString& instDir, QObject* parent = 0); virtual ~InstanceList(); -public: - QModelIndex index(int row, int column = 0, const QModelIndex &parent = QModelIndex()) const override; - int rowCount(const QModelIndex &parent = QModelIndex()) const override; - QVariant data(const QModelIndex &index, int role) const override; - Qt::ItemFlags flags(const QModelIndex &index) const override; + public: + QModelIndex index(int row, int column = 0, const QModelIndex& parent = QModelIndex()) const override; + int rowCount(const QModelIndex& parent = QModelIndex()) const override; + QVariant data(const QModelIndex& index, int role) const override; + Qt::ItemFlags flags(const QModelIndex& index) const override; - bool setData(const QModelIndex & index, const QVariant & value, int role) override; + bool setData(const QModelIndex& index, const QVariant& value, int role) override; - enum AdditionalRoles - { + enum AdditionalRoles { GroupRole = Qt::UserRole, - InstancePointerRole = 0x34B1CB48, ///< Return pointer to real instance - InstanceIDRole = 0x34B1CB49 ///< Return id if the instance + InstancePointerRole = 0x34B1CB48, ///< Return pointer to real instance + InstanceIDRole = 0x34B1CB49 ///< Return id if the instance }; /*! * \brief Error codes returned by functions in the InstanceList class. * NoError Indicates that no error occurred. * UnknownError indicates that an unspecified error occurred. */ - enum InstListError - { - NoError = 0, - UnknownError - }; + enum InstListError { NoError = 0, UnknownError }; - InstancePtr at(int i) const - { - return m_instances.at(i); - } + InstancePtr at(int i) const { return m_instances.at(i); } - int count() const - { - return m_instances.count(); - } + int count() const { return m_instances.count(); } InstListError loadList(); void saveNow(); @@ -105,21 +81,21 @@ public: InstancePtr getInstanceById(QString id) const; /* O(n) */ InstancePtr getInstanceByManagedName(const QString& managed_name) const; - QModelIndex getInstanceIndexById(const QString &id) const; + QModelIndex getInstanceIndexById(const QString& id) const; QStringList getGroups(); - bool isGroupCollapsed(const QString &groupName); + bool isGroupCollapsed(const QString& groupName); - GroupId getInstanceGroup(const InstanceId & id) const; - void setInstanceGroup(const InstanceId & id, const GroupId& name); + GroupId getInstanceGroup(const InstanceId& id) const; + void setInstanceGroup(const InstanceId& id, const GroupId& name); - void deleteGroup(const GroupId & name); - bool trashInstance(const InstanceId &id); + void deleteGroup(const GroupId& name); + bool trashInstance(const InstanceId& id); bool trashedSomething(); void undoTrashInstance(); - void deleteInstance(const InstanceId & id); + void deleteInstance(const InstanceId& id); // Wrap an instance creation task in some more task machinery and make it ready to be used - Task * wrapInstanceTask(InstanceTask * task); + Task* wrapInstanceTask(InstanceTask* task); /** * Create a new empty staging area for instance creation and @return a path/key top commit it later. @@ -139,7 +115,7 @@ public: * Destroy a previously created staging area given by @keyPath - used when creation fails. * Used by instance manipulation tasks. */ - bool destroyStagingPath(const QString & keyPath); + bool destroyStagingPath(const QString& keyPath); int getTotalPlayTime(); @@ -147,42 +123,42 @@ public: Qt::DropActions supportedDropActions() const override; - bool canDropMimeData(const QMimeData * data, Qt::DropAction action, int row, int column, const QModelIndex & parent) const override; + bool canDropMimeData(const QMimeData* data, Qt::DropAction action, int row, int column, const QModelIndex& parent) const override; - bool dropMimeData(const QMimeData * data, Qt::DropAction action, int row, int column, const QModelIndex & parent) override; + bool dropMimeData(const QMimeData* data, Qt::DropAction action, int row, int column, const QModelIndex& parent) override; QStringList mimeTypes() const override; - QMimeData *mimeData(const QModelIndexList &indexes) const override; + QMimeData* mimeData(const QModelIndexList& indexes) const override; - QStringList getLinkedInstancesById(const QString &id) const; + QStringList getLinkedInstancesById(const QString& id) const; -signals: + signals: void dataIsInvalid(); void instancesChanged(); void instanceSelectRequest(QString instanceId); void groupsChanged(QSet<QString> groups); -public slots: - void on_InstFolderChanged(const Setting &setting, QVariant value); - void on_GroupStateChanged(const QString &group, bool collapsed); + public slots: + void on_InstFolderChanged(const Setting& setting, QVariant value); + void on_GroupStateChanged(const QString& group, bool collapsed); -private slots: - void propertiesChanged(BaseInstance *inst); + private slots: + void propertiesChanged(BaseInstance* inst); void providerUpdated(); - void instanceDirContentsChanged(const QString &path); + void instanceDirContentsChanged(const QString& path); -private: - int getInstIndex(BaseInstance *inst) const; + private: + int getInstIndex(BaseInstance* inst) const; void updateTotalPlayTime(); void suspendWatch(); void resumeWatch(); - void add(const QList<InstancePtr> &list); + void add(const QList<InstancePtr>& list); void loadGroupList(); void saveGroupList(); QList<InstanceId> discoverInstances(); InstancePtr loadInstance(const InstanceId& id); -private: + private: int m_watchLevel = 0; int totalPlayTime = 0; bool m_dirty = false; @@ -191,7 +167,7 @@ private: SettingsObjectPtr m_globalSettings; QString m_instDir; - QFileSystemWatcher * m_watcher; + QFileSystemWatcher* m_watcher; // FIXME: this is so inefficient that looking at it is almost painful. QSet<QString> m_collapsedGroups; QMap<InstanceId, GroupId> m_instanceGroupIndex; |