summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/modinfo.h2
-rw-r--r--src/modinfoforeign.h2
-rw-r--r--src/modinfooverwrite.cpp2
-rw-r--r--src/modinfooverwrite.h2
-rw-r--r--src/modinforegular.cpp21
-rw-r--r--src/modinforegular.h4
6 files changed, 21 insertions, 12 deletions
diff --git a/src/modinfo.h b/src/modinfo.h
index 5a69185d..b6d7209c 100644
--- a/src/modinfo.h
+++ b/src/modinfo.h
@@ -534,7 +534,7 @@ public:
/**
* @return a list of archives belonging to this mod (as absolute file paths)
*/
- virtual QStringList archives() const = 0;
+ virtual QStringList archives(bool checkOnDisk = false) = 0;
/*
*@return the color choosen by the user for the mod/separator
diff --git a/src/modinfoforeign.h b/src/modinfoforeign.h
index 93061294..45fe7689 100644
--- a/src/modinfoforeign.h
+++ b/src/modinfoforeign.h
@@ -49,7 +49,7 @@ public:
virtual QDateTime getLastNexusQuery() const { return QDateTime(); }
virtual QString getNexusDescription() const { return QString(); }
virtual int getFixedPriority() const { return INT_MIN; }
- virtual QStringList archives() const { return m_Archives; }
+ virtual QStringList archives(bool checkOnDisk = false) { return m_Archives; }
virtual QStringList stealFiles() const { return m_Archives + QStringList(m_ReferenceFile); }
virtual bool alwaysEnabled() const { return true; }
virtual void addInstalledFile(int, int) {}
diff --git a/src/modinfooverwrite.cpp b/src/modinfooverwrite.cpp
index 742ae384..0e428483 100644
--- a/src/modinfooverwrite.cpp
+++ b/src/modinfooverwrite.cpp
@@ -49,7 +49,7 @@ QString ModInfoOverwrite::getDescription() const
"modified (i.e. by the construction kit)");
}
-QStringList ModInfoOverwrite::archives() const
+QStringList ModInfoOverwrite::archives(bool checkOnDisk)
{
QStringList result;
QDir dir(this->absolutePath());
diff --git a/src/modinfooverwrite.h b/src/modinfooverwrite.h
index 4b98d715..cfd662af 100644
--- a/src/modinfooverwrite.h
+++ b/src/modinfooverwrite.h
@@ -51,7 +51,7 @@ public:
virtual QString getDescription() const;
virtual QDateTime getLastNexusQuery() const { return QDateTime(); }
virtual QString getNexusDescription() const { return QString(); }
- virtual QStringList archives() const;
+ virtual QStringList archives(bool checkOnDisk = false);
virtual void addInstalledFile(int, int) {}
private:
diff --git a/src/modinforegular.cpp b/src/modinforegular.cpp
index 0f1f93dc..f29d3725 100644
--- a/src/modinforegular.cpp
+++ b/src/modinforegular.cpp
@@ -45,6 +45,10 @@ ModInfoRegular::ModInfoRegular(PluginContainer *pluginContainer, const IPluginGa
if (!game->primarySources().contains(m_GameName, Qt::CaseInsensitive))
m_IsAlternate = true;
+ //populate m_Archives
+ m_Archives = QStringList();
+ archives(true);
+
connect(&m_NexusBridge, SIGNAL(descriptionAvailable(QString,int,QVariant,QVariant))
, this, SLOT(nxmDescriptionAvailable(QString,int,QVariant,QVariant)));
connect(&m_NexusBridge, SIGNAL(endorsementToggled(QString,int,QVariant,QVariant))
@@ -627,15 +631,18 @@ QString ModInfoRegular::getURL() const
-QStringList ModInfoRegular::archives() const
+QStringList ModInfoRegular::archives(bool checkOnDisk)
{
- QStringList result;
- QDir dir(this->absolutePath());
- QStringList bsaList = dir.entryList(QStringList({ "*.bsa", "*.ba2" }));
- for (const QString &archive : bsaList) {
- result.append(this->absolutePath() + "/" + archive);
+ if (checkOnDisk) {
+ QStringList result;
+ QDir dir(this->absolutePath());
+ QStringList bsaList = dir.entryList(QStringList({ "*.bsa", "*.ba2" }));
+ for (const QString &archive : bsaList) {
+ result.append(this->absolutePath() + "/" + archive);
+ }
+ m_Archives = result;
}
- return result;
+ return m_Archives;
}
void ModInfoRegular::addInstalledFile(int modId, int fileId)
diff --git a/src/modinforegular.h b/src/modinforegular.h
index 33b26998..093b4e5b 100644
--- a/src/modinforegular.h
+++ b/src/modinforegular.h
@@ -320,7 +320,7 @@ public:
*/
virtual QDateTime getLastNexusQuery() const;
- virtual QStringList archives() const;
+ virtual QStringList archives(bool checkOnDisk = false);
virtual void setColor(QColor color);
@@ -371,6 +371,8 @@ private:
QString m_URL;
QString m_GameName;
+ mutable QStringList m_Archives;
+
QDateTime m_CreationTime;
QDateTime m_LastNexusQuery;