From 48fae18ac6baced388b1fa7cee6c18e6aa8dbab3 Mon Sep 17 00:00:00 2001 From: Mikaƫl Capelle Date: Fri, 29 Jan 2021 19:27:10 +0100 Subject: Fix refresh of data tab. --- src/datatab.cpp | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) (limited to 'src/datatab.cpp') 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) { @@ -102,6 +106,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() -- cgit v1.3.1