From 88f975eff7e44341c7fc35767ff954c7cb27ca9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Mon, 11 May 2015 22:50:35 +0200 Subject: [PATCH] NOISSUE only watch mod folders when the user is looking at them --- application/pages/ModFolderPage.cpp | 11 ++++++++++- application/pages/ModFolderPage.h | 2 ++ logic/minecraft/ModList.cpp | 1 + 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/application/pages/ModFolderPage.cpp b/application/pages/ModFolderPage.cpp index f070098f..16272653 100644 --- a/application/pages/ModFolderPage.cpp +++ b/application/pages/ModFolderPage.cpp @@ -47,12 +47,21 @@ ModFolderPage::ModFolderPage(BaseInstance *inst, std::shared_ptr mods, m_helpName = helpPage; ui->modTreeView->setModel(m_mods.get()); ui->modTreeView->installEventFilter(this); - m_mods->startWatching(); auto smodel = ui->modTreeView->selectionModel(); connect(smodel, SIGNAL(currentChanged(QModelIndex, QModelIndex)), SLOT(modCurrent(QModelIndex, QModelIndex))); } +void ModFolderPage::opened() +{ + m_mods->startWatching(); +} + +void ModFolderPage::closed() +{ + m_mods->stopWatching(); +} + CoreModFolderPage::CoreModFolderPage(BaseInstance *inst, std::shared_ptr mods, QString id, QString iconName, QString displayName, QString helpPage, QWidget *parent) diff --git a/application/pages/ModFolderPage.h b/application/pages/ModFolderPage.h index 864125be..6bfbf1d0 100644 --- a/application/pages/ModFolderPage.h +++ b/application/pages/ModFolderPage.h @@ -54,6 +54,8 @@ public: } virtual bool shouldDisplay() const; + virtual void opened(); + virtual void closed(); protected: bool eventFilter(QObject *obj, QEvent *ev); bool modListFilter(QKeyEvent *ev); diff --git a/logic/minecraft/ModList.cpp b/logic/minecraft/ModList.cpp index c943c254..a77c5890 100644 --- a/logic/minecraft/ModList.cpp +++ b/logic/minecraft/ModList.cpp @@ -38,6 +38,7 @@ ModList::ModList(const QString &dir, const QString &list_file) void ModList::startWatching() { + update(); is_watching = m_watcher->addPath(m_dir.absolutePath()); if (is_watching) {