summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarkus Mittendrein <git@maxmitti.tk>2015-10-31 01:53:32 +0100
committerMarkus Mittendrein <git@maxmitti.tk>2015-10-31 01:53:32 +0100
commite048846d0f5179e69690718305a8bde529687a43 (patch)
treee00cb22b9e24d95f5d904965405bc2ef9500c968
parent9cbc1db9c20aba934c2184cb3496aec854e19dbc (diff)
downloadmanager-e048846d0f5179e69690718305a8bde529687a43.tar.gz
manager-e048846d0f5179e69690718305a8bde529687a43.zip
Add config option to add a prefix (folder) to PackVersions
-rw-r--r--src/CRSMPackCompatibility.cpp36
-rw-r--r--src/CRSMPackCompatibility.hpp3
2 files changed, 25 insertions, 14 deletions
diff --git a/src/CRSMPackCompatibility.cpp b/src/CRSMPackCompatibility.cpp
index cea57f7..9d171a8 100644
--- a/src/CRSMPackCompatibility.cpp
+++ b/src/CRSMPackCompatibility.cpp
@@ -1,5 +1,6 @@
#include "CRSMPackCompatibility.hpp"
+#include <QDir>
#include <QFile>
void CRSMPackCompatibility::clear()
@@ -36,7 +37,7 @@ QString CRSMPackCompatibility::linkScenarioPacks(const QString &scenario)
{
packFile.remove();
}
- if(!QFile::link(clonkPath + packs[packName], clonkPath + packName))
+ if(!QFile::link(clonkPath + PacksDirectory + QDir::separator() + packs[packName], clonkPath + packName))
{
ret.append("Warning: Could not link pack \"" + packName + "\" to \"" + packs[packName] + "\".\n");
}
@@ -50,18 +51,7 @@ QString CRSMPackCompatibility::read(const QString &fileName, const QString& clon
this->clonkPath = clonkPath;
QString ret = ConfigBase::read(fileName, writeDefault);
- foreach(const QString& packVersion, PackVersions.keys())
- {
- ret.append(checkPackVersion(packVersion, PackVersions[packVersion]));
- }
-
- foreach(const QString& scenario, ScenarioPacks.keys())
- {
- foreach(const QString& scenarioPack, ScenarioPacks[scenario])
- {
- ret.append(checkScenarioPack(scenarioPack, scenario));
- }
- }
+ ret.append(applyConfig());
return ret;
}
@@ -147,9 +137,27 @@ QString CRSMPackCompatibility::deleteScenarioPackVersion(const QString &packVers
}
}
+QString CRSMPackCompatibility::applyConfig()
+{
+ QString ret;
+ foreach(const QString& packVersion, PackVersions.keys())
+ {
+ ret.append(checkPackVersion(packVersion, PackVersions[packVersion]));
+ }
+
+ foreach(const QString& scenario, ScenarioPacks.keys())
+ {
+ foreach(const QString& scenarioPack, ScenarioPacks[scenario])
+ {
+ ret.append(checkScenarioPack(scenarioPack, scenario));
+ }
+ }
+ return ret;
+}
+
QString CRSMPackCompatibility::checkPackVersion(const QString &packVersion, const QString &pack)
{
- if(!QFile(clonkPath + packVersion).exists())
+ if(!QFile(clonkPath + PacksDirectory + QDir::separator() + packVersion).exists())
{
return "Warning: PackVersion \"" + packVersion + "\" of pack \"" + pack + "\" does not exist.\n";
}
diff --git a/src/CRSMPackCompatibility.hpp b/src/CRSMPackCompatibility.hpp
index a35ed95..08b666e 100644
--- a/src/CRSMPackCompatibility.hpp
+++ b/src/CRSMPackCompatibility.hpp
@@ -7,10 +7,12 @@ public:
Map(String, String) PackDefaultVersion;
Map(String, String) PackVersions;
Map(String, List(String)) ScenarioPacks;
+ String PacksDirectory = "Packs";
CRSMPackCompatibility() : ConfigBase::ConfigBase({
ConfigVal(PackDefaultVersion),
ConfigVal(PackVersions),
+ ConfigVal(PacksDirectory),
ConfigVal(ScenarioPacks)
}) { }
@@ -26,6 +28,7 @@ public:
QString addScenarioPackVersion(const QString& packVersion, const QString& scenario);
QString deleteScenarioPackVersion(const QString& packVersion, const QString& scenario);
+ QString applyConfig();
protected:
QString checkPackVersion(const QString& packVersion, const QString& pack);