From 1f3133059e3c821e92dbaa6e3149dd59ce86c245 Mon Sep 17 00:00:00 2001 From: LostDragonist Date: Sat, 23 Mar 2019 21:21:51 -0500 Subject: Prevent diagnose plugins that return false for isActive from reporting notifications --- src/mainwindow.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'src/mainwindow.cpp') diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 76101be1..ea46b175 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -727,8 +727,13 @@ bool MainWindow::errorReported(QString &logFile) size_t MainWindow::checkForProblems() { size_t numProblems = 0; - for (IPluginDiagnose *diagnose : m_PluginContainer.plugins()) { - numProblems += diagnose->activeProblems().size(); + for (QObject *pluginObj : m_PluginContainer.plugins()) { + IPlugin *plugin = qobject_cast(pluginObj); + if (plugin == nullptr || plugin->isActive()) { + IPluginDiagnose *diagnose = qobject_cast(pluginObj); + if (diagnose != nullptr) + numProblems += diagnose->activeProblems().size(); + } } return numProblems; } @@ -6063,7 +6068,7 @@ void MainWindow::on_bsaList_itemChanged(QTreeWidgetItem*, int) void MainWindow::on_actionNotifications_triggered() { updateProblemsButton(); - ProblemsDialog problems(m_PluginContainer.plugins(), this); + ProblemsDialog problems(m_PluginContainer.plugins(), this); if (problems.hasProblems()) { QSettings &settings = m_OrganizerCore.settings().directInterface(); QString key = QString("geometry/%1").arg(problems.objectName()); -- cgit v1.3.1