aboutsummaryrefslogtreecommitdiff
path: root/launcher/InstanceTask.h
diff options
context:
space:
mode:
authorflow <flowlnlnln@gmail.com>2022-07-14 16:13:23 -0300
committerflow <flowlnlnln@gmail.com>2022-09-20 18:36:08 -0300
commit6131346e2f80c5ce4377fcc608be4f3929f43f91 (patch)
tree6fda9abad9995472ea58f819650768d9f5ff78df /launcher/InstanceTask.h
parenteed73c90785ec977ee975d403270f9138aa6960c (diff)
downloadPrismLauncher-6131346e2f80c5ce4377fcc608be4f3929f43f91.tar.gz
PrismLauncher-6131346e2f80c5ce4377fcc608be4f3929f43f91.tar.bz2
PrismLauncher-6131346e2f80c5ce4377fcc608be4f3929f43f91.zip
refactor: change the way instance names are handled
While working on pack updating, instance naming always gets in the way, since we need both way of respecting the user's name choice, and a standarized way of getting the original pack name / version. This tries to circunvent such problems by abstracting away the naming schema into it's own struct, holding both the original name / version, and the user-defined name, so that everyone can be happy and world peace can be achieved! (at least that's what i'd hope :c). Signed-off-by: flow <flowlnlnln@gmail.com>
Diffstat (limited to 'launcher/InstanceTask.h')
-rw-r--r--launcher/InstanceTask.h78
1 files changed, 36 insertions, 42 deletions
diff --git a/launcher/InstanceTask.h b/launcher/InstanceTask.h
index 02810a52..5d67a2f0 100644
--- a/launcher/InstanceTask.h
+++ b/launcher/InstanceTask.h
@@ -1,56 +1,50 @@
#pragma once
-#include "tasks/Task.h"
#include "settings/SettingsObject.h"
+#include "tasks/Task.h"
+
+struct InstanceName {
+ public:
+ InstanceName() = default;
+ InstanceName(QString name, QString version) : m_original_name(std::move(name)), m_original_version(std::move(version)) {}
+
+ [[nodiscard]] QString modifiedName() const;
+ [[nodiscard]] QString originalName() const;
+ [[nodiscard]] QString name() const;
+ [[nodiscard]] QString version() const;
+
+ void setName(QString name) { m_modified_name = name; }
+ void setName(InstanceName& other);
+
+ protected:
+ QString m_original_name;
+ QString m_original_version;
-class InstanceTask : public Task
-{
+ QString m_modified_name;
+};
+
+class InstanceTask : public Task, public InstanceName {
Q_OBJECT
-public:
- explicit InstanceTask();
- virtual ~InstanceTask();
-
- void setParentSettings(SettingsObjectPtr settings)
- {
- m_globalSettings = settings;
- }
-
- void setStagingPath(const QString &stagingPath)
- {
- m_stagingPath = stagingPath;
- }
-
- void setName(const QString &name)
- {
- m_instName = name;
- }
- QString name() const
- {
- return m_instName;
- }
-
- void setIcon(const QString &icon)
- {
- m_instIcon = icon;
- }
-
- void setGroup(const QString &group)
- {
- m_instGroup = group;
- }
- QString group() const
- {
- return m_instGroup;
- }
+ public:
+ InstanceTask();
+ ~InstanceTask() override = default;
+
+ void setParentSettings(SettingsObjectPtr settings) { m_globalSettings = settings; }
+
+ void setStagingPath(const QString& stagingPath) { m_stagingPath = stagingPath; }
+
+ void setIcon(const QString& icon) { m_instIcon = icon; }
+
+ void setGroup(const QString& group) { m_instGroup = group; }
+ QString group() const { return m_instGroup; }
bool shouldOverride() const { return m_override_existing; }
-protected:
+ protected:
void setOverride(bool override) { m_override_existing = override; }
-protected: /* data */
+ protected: /* data */
SettingsObjectPtr m_globalSettings;
- QString m_instName;
QString m_instIcon;
QString m_instGroup;
QString m_stagingPath;