diff options
| author | LostDragonist <lost.dragonist@gmail.com> | 2019-03-23 21:21:51 -0500 |
|---|---|---|
| committer | LostDragonist <lost.dragonist@gmail.com> | 2019-03-23 21:21:51 -0500 |
| commit | 1f3133059e3c821e92dbaa6e3149dd59ce86c245 (patch) | |
| tree | 64b5cb49486d23e200ba3f25bc56ed10855437b4 /src/mainwindow.cpp | |
| parent | ff7fd68c0b8f861ac294a3876485c59de94a67cd (diff) | |
Prevent diagnose plugins that return false for isActive from reporting notifications
Diffstat (limited to 'src/mainwindow.cpp')
| -rw-r--r-- | src/mainwindow.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
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<IPluginDiagnose>()) { - numProblems += diagnose->activeProblems().size(); + for (QObject *pluginObj : m_PluginContainer.plugins<QObject>()) { + IPlugin *plugin = qobject_cast<IPlugin*>(pluginObj); + if (plugin == nullptr || plugin->isActive()) { + IPluginDiagnose *diagnose = qobject_cast<IPluginDiagnose*>(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<IPluginDiagnose>(), this); + ProblemsDialog problems(m_PluginContainer.plugins<QObject>(), this); if (problems.hasProblems()) { QSettings &settings = m_OrganizerCore.settings().directInterface(); QString key = QString("geometry/%1").arg(problems.objectName()); |
