summaryrefslogtreecommitdiff
path: root/src/datatab.cpp
diff options
context:
space:
mode:
authorMikaƫl Capelle <capelle.mikael@gmail.com>2021-01-29 19:29:21 +0100
committerGitHub <noreply@github.com>2021-01-29 19:29:21 +0100
commitf53e5406d4292f484257178ec5733f6ceb116673 (patch)
treef08dfdba6a38986a93612a5aa0166f3008110ad7 /src/datatab.cpp
parent8606bf70c76252e20f888264bfbdedde0f1c8754 (diff)
parent48fae18ac6baced388b1fa7cee6c18e6aa8dbab3 (diff)
Merge pull request #1378 from Holt59/fix-priority-management
Increase robustness of mods priority in profile.
Diffstat (limited to 'src/datatab.cpp')
-rw-r--r--src/datatab.cpp24
1 files changed, 20 insertions, 4 deletions
diff --git a/src/datatab.cpp b/src/datatab.cpp
index 21c205e5..165ee26a 100644
--- a/src/datatab.cpp
+++ b/src/datatab.cpp
@@ -20,9 +20,9 @@ DataTab::DataTab(
QWidget* parent, Ui::MainWindow* mwui) :
m_core(core), m_pluginContainer(pc), m_parent(parent),
ui{
- mwui->dataTabRefresh, mwui->dataTree,
+ mwui->tabWidget, mwui->dataTab, mwui->dataTabRefresh, mwui->dataTree,
mwui->dataTabShowOnlyConflicts, mwui->dataTabShowFromArchives},
- m_firstActivation(true)
+ m_needUpdate(true)
{
m_filetree.reset(new FileTree(core, m_pluginContainer, ui.tree));
m_filter.setUseSourceSort(true);
@@ -85,12 +85,16 @@ void DataTab::restoreState(const Settings& s)
void DataTab::activated()
{
- if (m_firstActivation) {
- m_firstActivation = false;
+ if (m_needUpdate) {
updateTree();
}
}
+bool DataTab::isActive() const
+{
+ return ui.tabs->currentWidget() == ui.tab;
+}
+
void DataTab::onRefresh()
{
if (QGuiApplication::keyboardModifiers() & Qt::ShiftModifier) {
@@ -103,6 +107,16 @@ void DataTab::onRefresh()
void DataTab::updateTree()
{
+ if (isActive()) {
+ doUpdateTree();
+ }
+ else {
+ m_needUpdate = true;
+ }
+}
+
+void DataTab::doUpdateTree()
+{
m_filetree->model()->setEnabled(true);
m_filetree->refresh();
@@ -113,6 +127,8 @@ void DataTab::updateTree()
m->invalidate();
}
}
+
+ m_needUpdate = true;
}
void DataTab::ensureFullyLoaded()