diff options
Diffstat (limited to 'src/datatab.cpp')
| -rw-r--r-- | src/datatab.cpp | 24 |
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() |
