diff --git a/src/swiftcore/tool.cpp b/src/swiftcore/tool.cpp index 5413009bb..315dd4f3e 100644 --- a/src/swiftcore/tool.cpp +++ b/src/swiftcore/tool.cpp @@ -169,18 +169,18 @@ namespace BlackMiscTest } else { - QString category; - if (line.startsWith("app")) category = CLogCategoryList(applicationContext).back().toQString(); - else if (line.startsWith("aud")) category = CLogCategoryList(audioContext).back().toQString(); - else if (line.startsWith("net")) category = CLogCategoryList(networkContext).back().toQString(); - else if (line.startsWith("own")) category = CLogCategoryList(ownAircraftContext).back().toQString(); - else if (line.startsWith("set")) category = CLogCategoryList(settingsContext).back().toQString(); - else if (line.startsWith("sim")) category = CLogCategoryList(simulatorContext).back().toQString(); - if (! category.isEmpty()) + CLogCategoryList categories; + if (line.startsWith("app")) categories = applicationContext; + else if (line.startsWith("aud")) categories = audioContext; + else if (line.startsWith("net")) categories = networkContext; + else if (line.startsWith("own")) categories = ownAircraftContext; + else if (line.startsWith("set")) categories = settingsContext; + else if (line.startsWith("sim")) categories = simulatorContext; + if (! categories.isEmpty()) { BlackMisc::singleShot(0, BlackMisc::CLogHandler::instance()->thread(), [ = ]() { - BlackMisc::CLogHandler::instance()->handlerForCategoryPrefix(category)->enableConsoleOutput(enable); + BlackMisc::CLogHandler::instance()->handlerForPattern(CLogPattern::allOf(categories))->enableConsoleOutput(enable); }); } } diff --git a/src/swiftgui_standard/mainwindow.cpp b/src/swiftgui_standard/mainwindow.cpp index 01472c7be..d1909f32f 100644 --- a/src/swiftgui_standard/mainwindow.cpp +++ b/src/swiftgui_standard/mainwindow.cpp @@ -298,7 +298,6 @@ bool MainWindow::isContextAudioAvailableCheck() void MainWindow::ps_displayStatusMessageInGui(const CStatusMessage &statusMessage) { if (statusMessage.isRedundant()) return; - if (statusMessage.getSeverity() == CStatusMessage::SeverityDebug) return; if (statusMessage.wasHandledBy(this)) return; statusMessage.markAsHandledBy(this); @@ -313,7 +312,6 @@ void MainWindow::ps_displayStatusMessageInGui(const CStatusMessage &statusMessag this->ui->comp_MainInfoArea->getLogComponent()->appendStatusMessageToList(statusMessage); // display overlay for errors, but not for validation - // TODO smarter use of CLogCategoryHandler to dispatch different categories of message to different MainWindow slots if (statusMessage.getSeverity() == CStatusMessage::SeverityError && ! statusMessage.getCategories().contains(CLogCategory::validation())) { this->m_compInfoWindow->displayStatusMessage(statusMessage); diff --git a/src/swiftgui_standard/mainwindow_init.cpp b/src/swiftgui_standard/mainwindow_init.cpp index 563a4a629..8905fcdb3 100644 --- a/src/swiftgui_standard/mainwindow_init.cpp +++ b/src/swiftgui_standard/mainwindow_init.cpp @@ -112,8 +112,8 @@ void MainWindow::init(const CRuntimeConfig &runtimeConfig) this->connect(this->ui->comp_MainInfoArea->getSettingsComponent(), &CSettingsComponent::changedAtcStationsUpdateInterval, this->ui->comp_MainInfoArea->getAtcStationComponent(), &::CAtcStationComponent::setUpdateIntervalSeconds); // log messages - this->connect(CLogHandler::instance(), &CLogHandler::localMessageLogged, this, &MainWindow::ps_displayStatusMessageInGui); - this->connect(CLogHandler::instance(), &CLogHandler::remoteMessageLogged, this, &MainWindow::ps_displayStatusMessageInGui); + auto *logHandler = CLogHandler::instance()->handlerForPattern(CLogPattern().withSeverityAtOrAbove(CStatusMessage::SeverityInfo)); + this->connect(logHandler, &CLogPatternHandler::messageLogged, this, &MainWindow::ps_displayStatusMessageInGui); Q_ASSERT(connect); Q_UNUSED(connect); // suppress GCC warning in release build