summaryrefslogtreecommitdiffstats
path: root/api/logic/FolderInstanceProvider.h
diff options
context:
space:
mode:
Diffstat (limited to 'api/logic/FolderInstanceProvider.h')
-rw-r--r--api/logic/FolderInstanceProvider.h86
1 files changed, 0 insertions, 86 deletions
diff --git a/api/logic/FolderInstanceProvider.h b/api/logic/FolderInstanceProvider.h
deleted file mode 100644
index ce5337c1..00000000
--- a/api/logic/FolderInstanceProvider.h
+++ /dev/null
@@ -1,86 +0,0 @@
-#pragma once
-
-
-#include <QObject>
-#include <QString>
-#include <QMap>
-#include "BaseInstance.h"
-#include "settings/SettingsObject.h"
-
-#include "multimc_logic_export.h"
-
-class QFileSystemWatcher;
-class InstanceTask;
-using InstanceId = QString;
-using GroupId = QString;
-using InstanceLocator = std::pair<InstancePtr, int>;
-
-enum class InstCreateError
-{
- NoCreateError = 0,
- NoSuchVersion,
- UnknownCreateError,
- InstExists,
- CantCreateDir
-};
-
-class MULTIMC_LOGIC_EXPORT FolderInstanceProvider : public QObject
-{
- Q_OBJECT
-public:
- FolderInstanceProvider(SettingsObjectPtr settings, const QString & instDir);
- virtual ~FolderInstanceProvider() = default;
-
-public:
- /// used by InstanceList to @return a list of plausible IDs to probe for
- QList<InstanceId> discoverInstances();
-
- /// used by InstanceList to (re)load an instance with the given @id.
- InstancePtr loadInstance(const InstanceId& id);
-
- // Wrap an instance creation task in some more task machinery and make it ready to be used
- Task * wrapInstanceTask(InstanceTask * task);
-
- /**
- * Create a new empty staging area for instance creation and @return a path/key top commit it later.
- * Used by instance manipulation tasks.
- */
- QString getStagedInstancePath();
- /**
- * Commit the staging area given by @keyPath to the provider - used when creation succeeds.
- * Used by instance manipulation tasks.
- */
- bool commitStagedInstance(const QString & keyPath, const QString& instanceName, const QString & groupName);
- /**
- * Destroy a previously created staging area given by @keyPath - used when creation fails.
- * Used by instance manipulation tasks.
- */
- bool destroyStagingPath(const QString & keyPath);
-
-signals:
- // Emit this when the list of provided instances changed
- void instancesChanged();
- // Emit when the set of groups your provider supplies changes.
- void groupsChanged(QSet<QString> groups);
-
-
-public slots:
- void on_InstFolderChanged(const Setting &setting, QVariant value);
-
-private slots:
- void instanceDirContentsChanged(const QString &path);
- void groupChanged();
-
-private: /* methods */
- void loadGroupList();
- void saveGroupList();
-
-private: /* data */
- SettingsObjectPtr m_globalSettings;
- QString m_instDir;
- QFileSystemWatcher * m_watcher;
- QMap<InstanceId, GroupId> groupMap;
- QSet<InstanceId> instanceSet;
- bool m_groupsLoaded = false;
- bool m_instancesProbed = false;
-};