summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarkus Mittendrein <git@maxmitti.tk>2018-08-19 23:33:23 +0200
committerMarkus Mittendrein <git@maxmitti.tk>2018-08-19 23:33:23 +0200
commit775c1d431d55e735be9516d84b583f4a956d8d7a (patch)
tree26f2cc5dc11b504361883d7e3cfdf93ac93958a4
parent8e6f1d76e680194f329841a175c1f2d5d06ccd53 (diff)
downloadmanager-775c1d431d55e735be9516d84b583f4a956d8d7a.tar.gz
manager-775c1d431d55e735be9516d84b583f4a956d8d7a.zip
Use ClearableConfigBase instead of implementing clear() several times
-rw-r--r--src/CRSMConfig.hpp11
-rw-r--r--src/CRSMPackCompatibility.cpp7
-rw-r--r--src/CRSMPackCompatibility.hpp6
-rw-r--r--src/CRSMSession.cpp11
-rw-r--r--src/CRSMSession.hpp4
m---------src/qt-config0
6 files changed, 7 insertions, 32 deletions
diff --git a/src/CRSMConfig.hpp b/src/CRSMConfig.hpp
index 9845ef0..c9b4ade 100644
--- a/src/CRSMConfig.hpp
+++ b/src/CRSMConfig.hpp
@@ -3,7 +3,7 @@
#include "qt-config/ConfigBase.hpp"
#include "GreetingSetting.hpp"
-class CRSMConfig : public ConfigBase {
+class CRSMConfig : public ClearableConfigBase<CRSMConfig> {
public:
struct {
Port ManagementPort = 9372;
@@ -114,7 +114,7 @@ public:
Integer RereadLimit = 50;
} Readline;
- explicit CRSMConfig() : ConfigBase({
+ explicit CRSMConfig() : ClearableConfigBase<CRSMConfig>({
ConfigVal(CRSM.ManagementPort),
ConfigVal(CRSM.ListFolder),
ConfigVal(CRSM.CommandSigns),
@@ -201,11 +201,4 @@ public:
ConfigVal(Readline.PromptEnabled),
ConfigVal(Readline.RereadLimit)
}) {}
-
- void clear()
- {
- auto configVals = configValues;
- *this = CRSMConfig();
- configValues = configVals;
- }
};
diff --git a/src/CRSMPackCompatibility.cpp b/src/CRSMPackCompatibility.cpp
index b301288..e0389c8 100644
--- a/src/CRSMPackCompatibility.cpp
+++ b/src/CRSMPackCompatibility.cpp
@@ -18,13 +18,6 @@ namespace {
}
}
-void CRSMPackCompatibility::clear()
-{
- auto configVals = configValues;
- *this = CRSMPackCompatibility();
- configValues = configVals;
-}
-
QString CRSMPackCompatibility::linkScenarioPacks(const QString &scenario)
{
QString ret;
diff --git a/src/CRSMPackCompatibility.hpp b/src/CRSMPackCompatibility.hpp
index 9e81bed..5dbee20 100644
--- a/src/CRSMPackCompatibility.hpp
+++ b/src/CRSMPackCompatibility.hpp
@@ -1,7 +1,7 @@
#pragma once
#include "qt-config/ConfigBase.hpp"
-class CRSMPackCompatibility : public ConfigBase
+class CRSMPackCompatibility : public ClearableConfigBase<CRSMPackCompatibility>
{
public:
Map(String, String) PackDefaultVersion;
@@ -10,7 +10,7 @@ public:
Map(String, String) ScenarioCmdOptions;
String PacksDirectory = "Packs";
- CRSMPackCompatibility() : ConfigBase::ConfigBase({
+ CRSMPackCompatibility() : ClearableConfigBase<CRSMPackCompatibility>({
ConfigVal(PackDefaultVersion),
ConfigVal(PackVersions),
ConfigVal(PacksDirectory),
@@ -18,8 +18,6 @@ public:
ConfigVal(ScenarioCmdOptions)
}) { }
- void clear();
-
QString linkScenarioPacks(const QString& scenario);
QString getScenarioCmdOptions(const QString& scenario, bool all = true);
diff --git a/src/CRSMSession.cpp b/src/CRSMSession.cpp
index caba9e2..0a7e486 100644
--- a/src/CRSMSession.cpp
+++ b/src/CRSMSession.cpp
@@ -1,14 +1,7 @@
#include "CRSMSession.hpp"
#include "crsm.hpp"
-void CRSMSession::clear()
-{
- auto configVals = configValues;
- *this = CRSMSession();
- configValues = configVals;
-}
-
-CRSMSession::CRSMSession() : ConfigBase::ConfigBase({
+CRSMSession::CRSMSession() : ClearableConfigBase<CRSMSession>({
ConfigVal(League),
ConfigVal(State),
ConfigVal(UserWish),
@@ -21,7 +14,7 @@ CRSMSession::CRSMSession() : ConfigBase::ConfigBase({
ConfigVal(IRC.Admin),
ConfigVal(IRC.UseIngameChat),
- }) {}
+ }) {}
CRSMSession::CRSMSession(CRSM *crsm) : CRSMSession()
{
diff --git a/src/CRSMSession.hpp b/src/CRSMSession.hpp
index 5c9a72e..9d80a7d 100644
--- a/src/CRSMSession.hpp
+++ b/src/CRSMSession.hpp
@@ -20,7 +20,7 @@ public:
}
};
-struct CRSMSession : public ConfigBase {
+struct CRSMSession : public ClearableConfigBase<CRSMSession> {
enum SessionState {None = -1, Lobby = 0, Loading = 1, Running = 2};
Boolean League = false;
@@ -43,8 +43,6 @@ struct CRSMSession : public ConfigBase {
Boolean UseIngameChat = false;
} IRC;
- void clear();
-
CRSMSession();
CRSMSession(CRSM* crsm);
diff --git a/src/qt-config b/src/qt-config
-Subproject 20b714ed29e5b0350c7fff6d59792c1f58cfb36
+Subproject 8c951771af60be9b0fa7b309df51887f5003fb5