summaryrefslogtreecommitdiff
path: root/src/modinfodialogesps.cpp
diff options
context:
space:
mode:
authorisanae <14251494+isanae@users.noreply.github.com>2019-06-25 11:41:00 -0400
committerisanae <14251494+isanae@users.noreply.github.com>2019-07-02 10:10:18 -0400
commit139c33ccc4f529083b0288907caad2946a3f5a8f (patch)
treeac4d1ed9311cdfe1e59b6e825cba228a431bf649 /src/modinfodialogesps.cpp
parent86e4f65eb6a2e52d0513a8c2fe1e94cd1af9967d (diff)
various optimizations and caching
fixed conflict list not sorting when changing parameters switched from QDirIterator to std::filesystem, much faster FilterWidget precompiles the list
Diffstat (limited to 'src/modinfodialogesps.cpp')
-rw-r--r--src/modinfodialogesps.cpp26
1 files changed, 12 insertions, 14 deletions
diff --git a/src/modinfodialogesps.cpp b/src/modinfodialogesps.cpp
index 3f742bae..ecb341e8 100644
--- a/src/modinfodialogesps.cpp
+++ b/src/modinfodialogesps.cpp
@@ -18,7 +18,7 @@ public:
m_active = true;
}
- updateFilename();
+ pathChanged();
}
const QString& rootPath() const
@@ -50,9 +50,9 @@ public:
return m_inactivePath;
}
- QFileInfo fileInfo() const
+ const QFileInfo& fileInfo() const
{
- return m_rootPath + QDir::separator() + relativePath();
+ return m_fileInfo;
}
bool isActive() const
@@ -73,7 +73,7 @@ public:
m_inactivePath = QFileInfo(m_inactivePath).path() + QDir::separator() + newName;
}
- updateFilename();
+ pathChanged();
return true;
}
@@ -88,7 +88,7 @@ public:
if (root.rename(m_activePath, newName)) {
m_active = false;
m_inactivePath = newName;
- updateFilename();
+ pathChanged();
return true;
}
@@ -100,11 +100,13 @@ private:
QString m_activePath;
QString m_inactivePath;
QString m_filename;
+ QFileInfo m_fileInfo;
bool m_active;
- void updateFilename()
+ void pathChanged()
{
- m_filename = fileInfo().fileName();
+ m_fileInfo.setFile(m_rootPath + QDir::separator() + relativePath());
+ m_filename = m_fileInfo.fileName();
}
};
@@ -246,15 +248,11 @@ void ESPsTab::clear()
bool ESPsTab::feedFile(const QString& rootPath, const QString& fullPath)
{
- static constexpr const char* extensions[] = {
- ".esp", ".esm", ".esl"
- };
+ static const QString extensions[] = {".esp", ".esm", ".esl"};
- for (const auto* e : extensions) {
+ for (const auto& e : extensions) {
if (fullPath.endsWith(e, Qt::CaseInsensitive)) {
- QString relativePath = fullPath.mid(rootPath.length() + 1);
-
- ESPItem esp(rootPath, relativePath);
+ ESPItem esp(rootPath, fullPath.mid(rootPath.length() + 1));
if (esp.isActive()) {
m_activeModel->add(std::move(esp));