diff options
| author | Al <gabriel.cortesi@outlook.com> | 2019-01-22 17:58:34 +0100 |
|---|---|---|
| committer | Al <gabriel.cortesi@outlook.com> | 2019-01-22 17:58:34 +0100 |
| commit | a40613f885c18a8a9f090cd88c595bcb960d97c9 (patch) | |
| tree | 72e83683c89e360efb1b050b8f3e188161955f1c /src/modinforegular.cpp | |
| parent | 917c08cd5f87bd06e872b6fb99e00cb5ef5d0066 (diff) | |
Cache list of archives contained in a mod instead of accessing disk each time
Diffstat (limited to 'src/modinforegular.cpp')
| -rw-r--r-- | src/modinforegular.cpp | 21 |
1 files changed, 14 insertions, 7 deletions
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) |
