diff --git a/include/config.h b/include/config.h index e265df28..a289391a 100644 --- a/include/config.h +++ b/include/config.h @@ -18,6 +18,7 @@ public: void save(); void load(); virtual ~KeyValueConfigBase(); + virtual void reset() = 0; protected: virtual QString getConfigFilepath() = 0; virtual void parseConfigKeyValue(QString key, QString value) = 0; @@ -29,6 +30,9 @@ class PorymapConfig: public KeyValueConfigBase { public: PorymapConfig() { + reset(); + } + virtual void reset() override { this->recentProject = ""; this->recentMap = ""; this->mapSortOrder = MapSortOrder::Group; @@ -63,10 +67,10 @@ public: QSize getRegionMapDimensions(); QString getTheme(); protected: - QString getConfigFilepath(); - void parseConfigKeyValue(QString key, QString value); - QMap getKeyValueMap(); - void onNewConfigFileCreated() {} + virtual QString getConfigFilepath() override; + virtual void parseConfigKeyValue(QString key, QString value) override; + virtual QMap getKeyValueMap() override; + virtual void onNewConfigFileCreated() override {} private: QString recentProject; QString recentMap; @@ -99,8 +103,12 @@ class ProjectConfig: public KeyValueConfigBase { public: ProjectConfig() { + reset(); + } + virtual void reset() override { this->baseGameVersion = BaseGameVersion::pokeemerald; this->useEncounterJson = true; + this->useCustomBorderSize = false; } void setBaseGameVersion(BaseGameVersion baseGameVersion); BaseGameVersion getBaseGameVersion(); @@ -112,10 +120,10 @@ public: void setUseCustomBorderSize(bool enable); bool getUseCustomBorderSize(); protected: - QString getConfigFilepath(); - void parseConfigKeyValue(QString key, QString value); - QMap getKeyValueMap(); - void onNewConfigFileCreated(); + virtual QString getConfigFilepath() override; + virtual void parseConfigKeyValue(QString key, QString value) override; + virtual QMap getKeyValueMap() override; + virtual void onNewConfigFileCreated() override; private: BaseGameVersion baseGameVersion; QString projectDir; diff --git a/src/config.cpp b/src/config.cpp index da684887..e0678ad3 100644 --- a/src/config.cpp +++ b/src/config.cpp @@ -17,6 +17,7 @@ KeyValueConfigBase::~KeyValueConfigBase() { } void KeyValueConfigBase::load() { + reset(); QFile file(this->getConfigFilepath()); if (!file.exists()) { if (!file.open(QIODevice::WriteOnly)) {