summaryrefslogtreecommitdiff
path: root/src/modinfooverwrite.cpp
diff options
context:
space:
mode:
authorThomas Tanner <trtanner@btinternet.com>2015-10-15 13:34:01 +0100
committerThomas Tanner <trtanner@btinternet.com>2015-10-15 13:34:01 +0100
commit9d88ca13b9b6a193dfb17a1ee3ea5e5cbed8a7e9 (patch)
tree8ec975d9efa7b4376573a1f3a05e0063e711e364 /src/modinfooverwrite.cpp
parentec07d3d4d9ec2245f0b23edf6746f4ae1e5dfce4 (diff)
Added functionality to use the web page link in a fomod to supply an optional web page.
Also refactored modinfo into multiple files (as the actual types are opaque anyway) and cleaned up the headers a bit I also changed 'visit on nexus' from the menu not to open the downloads tab because it was a little confusing
Diffstat (limited to 'src/modinfooverwrite.cpp')
-rw-r--r--src/modinfooverwrite.cpp53
1 files changed, 53 insertions, 0 deletions
diff --git a/src/modinfooverwrite.cpp b/src/modinfooverwrite.cpp
new file mode 100644
index 00000000..4380a255
--- /dev/null
+++ b/src/modinfooverwrite.cpp
@@ -0,0 +1,53 @@
+#include "modinfooverwrite.h"
+
+#include "appconfig.h"
+
+#include <QApplication>
+#include <QDirIterator>
+
+ModInfoOverwrite::ModInfoOverwrite()
+{
+ testValid();
+}
+
+bool ModInfoOverwrite::isEmpty() const
+{
+ QDirIterator iter(absolutePath(), QDir::NoDotAndDotDot | QDir::Files | QDir::Dirs);
+ if (!iter.hasNext()) return true;
+ iter.next();
+ if ((iter.fileName() == "meta.ini") && !iter.hasNext()) return true;
+ return false;
+}
+
+QString ModInfoOverwrite::absolutePath() const
+{
+ return QDir::fromNativeSeparators(qApp->property("dataPath").toString() + "/" + QString::fromStdWString(AppConfig::overwritePath()));
+}
+
+std::vector<ModInfo::EFlag> ModInfoOverwrite::getFlags() const
+{
+ std::vector<ModInfo::EFlag> result;
+ result.push_back(FLAG_OVERWRITE);
+ return result;
+}
+
+int ModInfoOverwrite::getHighlight() const
+{
+ return (isValid() ? HIGHLIGHT_IMPORTANT : HIGHLIGHT_INVALID) | HIGHLIGHT_CENTER;
+}
+
+QString ModInfoOverwrite::getDescription() const
+{
+ return tr("This pseudo mod contains files from the virtual data tree that got "
+ "modified (i.e. by the construction kit)");
+}
+
+QStringList ModInfoOverwrite::archives() const
+{
+ QStringList result;
+ QDir dir(this->absolutePath());
+ for (const QString &archive : dir.entryList(QStringList("*.bsa"))) {
+ result.append(this->absolutePath() + "/" + archive);
+ }
+ return result;
+}