From eba6ffb37b8af066942c214ef170317571e9951b Mon Sep 17 00:00:00 2001 From: TheKodeToad Date: Wed, 14 Jan 2026 17:54:52 +0000 Subject: [PATCH] GradleSpecifier: Use std::optional instead of DefaultVariable Signed-off-by: TheKodeToad --- launcher/CMakeLists.txt | 3 --- launcher/DefaultVariable.h | 23 ----------------------- launcher/minecraft/GradleSpecifier.h | 11 +++++------ 3 files changed, 5 insertions(+), 32 deletions(-) delete mode 100644 launcher/DefaultVariable.h diff --git a/launcher/CMakeLists.txt b/launcher/CMakeLists.txt index 837ff7234..6588c0a81 100644 --- a/launcher/CMakeLists.txt +++ b/launcher/CMakeLists.txt @@ -75,9 +75,6 @@ set(CORE_SOURCES # RW lock protected map RWStorage.h - # A variable that has an implicit default value and keeps track of changes - DefaultVariable.h - # a smart pointer wrapper intended for safer use with Qt signal/slot mechanisms QObjectPtr.h diff --git a/launcher/DefaultVariable.h b/launcher/DefaultVariable.h deleted file mode 100644 index b082091c7..000000000 --- a/launcher/DefaultVariable.h +++ /dev/null @@ -1,23 +0,0 @@ -#pragma once - -template -class DefaultVariable { - public: - DefaultVariable(const T& value) { defaultValue = value; } - DefaultVariable& operator=(const T& value) - { - currentValue = value; - is_default = currentValue == defaultValue; - is_explicit = true; - return *this; - } - operator const T&() const { return is_default ? defaultValue : currentValue; } - bool isDefault() const { return is_default; } - bool isExplicit() const { return is_explicit; } - - private: - T currentValue; - T defaultValue; - bool is_default = true; - bool is_explicit = false; -}; diff --git a/launcher/minecraft/GradleSpecifier.h b/launcher/minecraft/GradleSpecifier.h index a2588064f..94f2dfd29 100644 --- a/launcher/minecraft/GradleSpecifier.h +++ b/launcher/minecraft/GradleSpecifier.h @@ -38,7 +38,6 @@ #include #include #include -#include "DefaultVariable.h" struct GradleSpecifier { GradleSpecifier() { m_valid = false; } @@ -83,8 +82,8 @@ struct GradleSpecifier { if (!m_classifier.isEmpty()) { retval += ":" + m_classifier; } - if (m_extension.isExplicit()) { - retval += "@" + m_extension; + if (m_extension.has_value()) { + retval += "@" + m_extension.value(); } return retval; } @@ -97,7 +96,7 @@ struct GradleSpecifier { if (!m_classifier.isEmpty()) { filename += "-" + m_classifier; } - filename += "." + m_extension; + filename += "." + m_extension.value_or("jar"); return filename; } QString toPath(const QString& filenameOverride = QString()) const @@ -122,7 +121,7 @@ struct GradleSpecifier { inline QString artifactId() const { return m_artifactId; } inline void setClassifier(const QString& classifier) { m_classifier = classifier; } inline QString classifier() const { return m_classifier; } - inline QString extension() const { return m_extension; } + inline std::optional extension() const { return m_extension; } inline QString artifactPrefix() const { return m_groupId + ":" + m_artifactId; } bool matchName(const GradleSpecifier& other) const { @@ -149,6 +148,6 @@ struct GradleSpecifier { QString m_artifactId; QString m_version; QString m_classifier; - DefaultVariable m_extension = DefaultVariable("jar"); + std::optional m_extension; bool m_valid = false; };