From d90a1d6f76ae2f4864cda587699102af3b32e22e Mon Sep 17 00:00:00 2001 From: Adam Honse Date: Wed, 6 May 2026 23:54:29 -0500 Subject: [PATCH] Log Console Updates --- qt/OpenRGBConsolePage/OpenRGBConsolePage.cpp | 90 ------------------- qt/OpenRGBDialog/OpenRGBDialog.cpp | 9 +- .../OpenRGBLogConsolePage.cpp | 81 +++++++++++++++++ .../OpenRGBLogConsolePage.h} | 19 ++-- .../OpenRGBLogConsolePage.ui} | 49 +++++----- qt/i18n/OpenRGB_be_BY.ts | 10 +-- qt/i18n/OpenRGB_de_DE.ts | 10 +-- qt/i18n/OpenRGB_el_GR.ts | 10 +-- qt/i18n/OpenRGB_en_AU.ts | 10 +-- qt/i18n/OpenRGB_en_GB.ts | 10 +-- qt/i18n/OpenRGB_en_US.ts | 10 +-- qt/i18n/OpenRGB_es_ES.ts | 10 +-- qt/i18n/OpenRGB_fr_FR.ts | 10 +-- qt/i18n/OpenRGB_hr_HR.ts | 10 +-- qt/i18n/OpenRGB_it_IT.ts | 10 +-- qt/i18n/OpenRGB_ja_JP.ts | 10 +-- qt/i18n/OpenRGB_ko_KR.ts | 10 +-- qt/i18n/OpenRGB_ms_MY.ts | 10 +-- qt/i18n/OpenRGB_nb_NO.ts | 10 +-- qt/i18n/OpenRGB_pl_PL.ts | 10 +-- qt/i18n/OpenRGB_pt_BR.ts | 10 +-- qt/i18n/OpenRGB_ru_RU.ts | 10 +-- qt/i18n/OpenRGB_tr_TR.ts | 10 +-- qt/i18n/OpenRGB_uk_UA.ts | 10 +-- qt/i18n/OpenRGB_zh_CN.ts | 10 +-- qt/i18n/OpenRGB_zh_TW.ts | 10 +-- 26 files changed, 179 insertions(+), 279 deletions(-) delete mode 100644 qt/OpenRGBConsolePage/OpenRGBConsolePage.cpp create mode 100644 qt/OpenRGBLogConsolePage/OpenRGBLogConsolePage.cpp rename qt/{OpenRGBConsolePage/OpenRGBConsolePage.h => OpenRGBLogConsolePage/OpenRGBLogConsolePage.h} (58%) rename qt/{OpenRGBConsolePage/OpenRGBConsolePage.ui => OpenRGBLogConsolePage/OpenRGBLogConsolePage.ui} (58%) diff --git a/qt/OpenRGBConsolePage/OpenRGBConsolePage.cpp b/qt/OpenRGBConsolePage/OpenRGBConsolePage.cpp deleted file mode 100644 index bcdc8d43f..000000000 --- a/qt/OpenRGBConsolePage/OpenRGBConsolePage.cpp +++ /dev/null @@ -1,90 +0,0 @@ -/*---------------------------------------------------------*\ -| OpenRGBConsolePage.cpp | -| | -| User interface for OpenRGB console page | -| | -| This file is part of the OpenRGB project | -| SPDX-License-Identifier: GPL-2.0-or-later | -\*---------------------------------------------------------*/ - -#include "OpenRGBConsolePage.h" -#include "ui_OpenRGBConsolePage.h" -#include "LogManager.h" - -OpenRGBConsolePage::OpenRGBConsolePage(QWidget *parent) : - QFrame(parent), - ui(new Ui::OpenRGBConsolePage) -{ - ui->setupUi(this); - - ui->log_level->blockSignals(true); - ui->log_level->addItems({ - "Fatal", - "Error", - "Warning", - "Info", - "Verbose", - "Debug", - "Trace" - }); - - ui->log_level->setCurrentIndex(LogManager::get()->GetLogLevel()); - ui->log_level->blockSignals(false); - -#ifdef _WIN32 - ui->logs->setFontFamily("Courier New"); -#endif - Refresh(); -} - -void OpenRGBConsolePage::Refresh() -{ - QString log; - - unsigned int current_level = LogManager::get()->GetLogLevel(); - - for(PLogMessage& message: LogManager::get()->GetLogBuffer()) - { - unsigned int message_level = message.get()->level; - - if(message_level <= current_level || message_level == LL_DIALOG) - { - log += "["; - log += LogManager::LOG_CODES[message_level]; - log += "] "; - log += QString::fromStdString(message.get()->text); - log += "\n"; - } - } - - ui->logs->setText(log); -} - -void OpenRGBConsolePage::on_log_level_currentIndexChanged(int index) -{ - LogManager::get()->SetLogLevel(index); -} - -void OpenRGBConsolePage::on_clear_clicked() -{ - LogManager::get()->ClearLogBuffer(); - ui->logs->clear(); -} - -void OpenRGBConsolePage::on_refresh_clicked() -{ - Refresh(); -} - -OpenRGBConsolePage::~OpenRGBConsolePage() -{ - delete ui; -} - -void OpenRGBConsolePage::changeEvent(QEvent *event) -{ - if(event->type() == QEvent::LanguageChange) - { - ui->retranslateUi(this); - } -} diff --git a/qt/OpenRGBDialog/OpenRGBDialog.cpp b/qt/OpenRGBDialog/OpenRGBDialog.cpp index 30b5d5678..e9c417ac1 100644 --- a/qt/OpenRGBDialog/OpenRGBDialog.cpp +++ b/qt/OpenRGBDialog/OpenRGBDialog.cpp @@ -15,7 +15,7 @@ #include "OpenRGBDevicePage.h" #include "OpenRGBDeviceInfoPage.h" #include "OpenRGBServerInfoPage.h" -#include "OpenRGBConsolePage.h" +#include "OpenRGBLogConsolePage.h" #include "OpenRGBPluginContainer.h" #include "OpenRGBProfileEditorDialog.h" #include "OpenRGBProfileListDialog.h" @@ -124,7 +124,6 @@ static void DeletePluginCallback(void * this_ptr, OpenRGBPluginEntry* plugin) this_obj->RemovePlugin(plugin); } - bool OpenRGBDialog::IsMinimizeOnClose() { json ui_settings = ResourceManager::get()->GetSettingsManager()->GetSettings("UserInterface"); @@ -2044,14 +2043,14 @@ void OpenRGBDialog::AddConsolePage() int index = (ui->InformationTabBar->tabBar()->count() - 1); QWidget* tab = ui->InformationTabBar->widget(index); - if(dynamic_cast(tab) != nullptr) + if(dynamic_cast(tab) != nullptr) { found = true; } if(!found) { - OpenRGBConsolePage* page = new OpenRGBConsolePage(); + OpenRGBLogConsolePage* page = new OpenRGBLogConsolePage(); ui->InformationTabBar->addTab(page, ""); @@ -2069,7 +2068,7 @@ void OpenRGBDialog::RemoveConsolePage() int index = (ui->InformationTabBar->tabBar()->count() - 1); QWidget* tab = ui->InformationTabBar->widget(index); - if(dynamic_cast(tab) != nullptr) + if(dynamic_cast(tab) != nullptr) { ui->InformationTabBar->removeTab(index); delete tab; diff --git a/qt/OpenRGBLogConsolePage/OpenRGBLogConsolePage.cpp b/qt/OpenRGBLogConsolePage/OpenRGBLogConsolePage.cpp new file mode 100644 index 000000000..011868905 --- /dev/null +++ b/qt/OpenRGBLogConsolePage/OpenRGBLogConsolePage.cpp @@ -0,0 +1,81 @@ +/*---------------------------------------------------------*\ +| OpenRGBLogConsolePage.cpp | +| | +| User interface for OpenRGB console page | +| | +| This file is part of the OpenRGB project | +| SPDX-License-Identifier: GPL-2.0-or-later | +\*---------------------------------------------------------*/ + +#include "OpenRGBLogConsolePage.h" +#include "ui_OpenRGBLogConsolePage.h" + +static void OpenRGBLogConsolePageLogManagerCallback(void* this_ptr, unsigned int update_reason, PLogMessage message) +{ + OpenRGBLogConsolePage* this_obj = (OpenRGBLogConsolePage*)this_ptr; + + switch(update_reason) + { + case LOGMANAGER_UPDATE_REASON_LOG_ENTRY: + QMetaObject::invokeMethod(this_obj, "AddLogEntry", Qt::QueuedConnection, Q_ARG(PLogMessage, message)); + break; + } +} + +OpenRGBLogConsolePage::OpenRGBLogConsolePage(QWidget* parent) : + QFrame(parent), + ui(new Ui::OpenRGBLogConsolePage) +{ + qRegisterMetaType("PLogMessage"); + + ui->setupUi(this); + + ui->ComboBoxLogLevel->blockSignals(true); + ui->ComboBoxLogLevel->addItems({"Fatal", "Error", "Warning", "Info", "Verbose", "Debug", "Trace"}); + + ui->ComboBoxLogLevel->setCurrentIndex(LogManager::get()->GetLogLevel()); + ui->ComboBoxLogLevel->blockSignals(false); + + for(PLogMessage& message: LogManager::get()->GetLogBuffer()) + { + AddLogEntry(message); + } + + LogManager::get()->RegisterLogManagerCallback(OpenRGBLogConsolePageLogManagerCallback, this); +} + +OpenRGBLogConsolePage::~OpenRGBLogConsolePage() +{ + LogManager::get()->UnregisterLogManagerCallback(OpenRGBLogConsolePageLogManagerCallback, this); + delete ui; +} + +void OpenRGBLogConsolePage::AddLogEntry(PLogMessage message) +{ + unsigned int current_level = LogManager::get()->GetLogLevel(); + unsigned int message_level = message->level; + + if(message_level <= current_level && message_level != LL_DIALOG) + { + ui->TextEditLog->append(QString::asprintf("[%-7s] %s", LogManager::LOG_CODES[message_level], message->text.c_str())); + } +} + +void OpenRGBLogConsolePage::on_ComboBoxLogLevel_currentIndexChanged(int index) +{ + LogManager::get()->SetLogLevel(index); +} + +void OpenRGBLogConsolePage::on_ButtonClear_clicked() +{ + LogManager::get()->ClearLogBuffer(); + ui->TextEditLog->clear(); +} + +void OpenRGBLogConsolePage::changeEvent(QEvent *event) +{ + if(event->type() == QEvent::LanguageChange) + { + ui->retranslateUi(this); + } +} diff --git a/qt/OpenRGBConsolePage/OpenRGBConsolePage.h b/qt/OpenRGBLogConsolePage/OpenRGBLogConsolePage.h similarity index 58% rename from qt/OpenRGBConsolePage/OpenRGBConsolePage.h rename to qt/OpenRGBLogConsolePage/OpenRGBLogConsolePage.h index 906070c4b..3dea76dff 100644 --- a/qt/OpenRGBConsolePage/OpenRGBConsolePage.h +++ b/qt/OpenRGBLogConsolePage/OpenRGBLogConsolePage.h @@ -1,5 +1,5 @@ /*---------------------------------------------------------*\ -| OpenRGBConsolePage.h | +| OpenRGBLogConsolePage.h | | | | User interface for OpenRGB console page | | | @@ -10,28 +10,29 @@ #pragma once #include +#include "LogManager.h" namespace Ui { - class OpenRGBConsolePage; + class OpenRGBLogConsolePage; } -class OpenRGBConsolePage : public QFrame +class OpenRGBLogConsolePage : public QFrame { Q_OBJECT public: - explicit OpenRGBConsolePage(QWidget *parent = nullptr); - ~OpenRGBConsolePage(); + explicit OpenRGBLogConsolePage(QWidget *parent = nullptr); + ~OpenRGBLogConsolePage(); private slots: + void AddLogEntry(PLogMessage message); void changeEvent(QEvent *event); - void on_log_level_currentIndexChanged(int); - void on_clear_clicked(); - void on_refresh_clicked(); + void on_ComboBoxLogLevel_currentIndexChanged(int); + void on_ButtonClear_clicked(); private: - Ui::OpenRGBConsolePage *ui; + Ui::OpenRGBLogConsolePage *ui; void Refresh(); }; diff --git a/qt/OpenRGBConsolePage/OpenRGBConsolePage.ui b/qt/OpenRGBLogConsolePage/OpenRGBLogConsolePage.ui similarity index 58% rename from qt/OpenRGBConsolePage/OpenRGBConsolePage.ui rename to qt/OpenRGBLogConsolePage/OpenRGBLogConsolePage.ui index 2cb12da18..6c810262d 100644 --- a/qt/OpenRGBConsolePage/OpenRGBConsolePage.ui +++ b/qt/OpenRGBLogConsolePage/OpenRGBLogConsolePage.ui @@ -1,7 +1,7 @@ - OpenRGBConsolePage - + OpenRGBLogConsolePage + 0 @@ -14,32 +14,8 @@ Log Console Page - - - - Log level - - - - - - - - - - Refresh logs - - - - - - - Clear log - - - - - + + Monospace @@ -47,6 +23,23 @@ + + + + + + + Clear + + + + + + + Log Level: + + + diff --git a/qt/i18n/OpenRGB_be_BY.ts b/qt/i18n/OpenRGB_be_BY.ts index d8baa6f88..0698ed5a8 100644 --- a/qt/i18n/OpenRGB_be_BY.ts +++ b/qt/i18n/OpenRGB_be_BY.ts @@ -44,17 +44,13 @@ - OpenRGBConsolePage + OpenRGBLogConsolePage - Log level + Log Level: Узровень вядзення журнала - Refresh logs - Абнавіць журнал - - - Clear log + Clear Ачысціць журнал diff --git a/qt/i18n/OpenRGB_de_DE.ts b/qt/i18n/OpenRGB_de_DE.ts index 88e6421e8..3185bab2c 100644 --- a/qt/i18n/OpenRGB_de_DE.ts +++ b/qt/i18n/OpenRGB_de_DE.ts @@ -44,17 +44,13 @@ - OpenRGBConsolePage + OpenRGBLogConsolePage - Log level + Log Level: Log Level - Refresh logs - Logs aktualisieren - - - Clear log + Clear Logs löschen diff --git a/qt/i18n/OpenRGB_el_GR.ts b/qt/i18n/OpenRGB_el_GR.ts index 1b9a334ec..b99249b0f 100644 --- a/qt/i18n/OpenRGB_el_GR.ts +++ b/qt/i18n/OpenRGB_el_GR.ts @@ -44,17 +44,13 @@ - OpenRGBConsolePage + OpenRGBLogConsolePage - Log level + Log Level: Επίπεδο καταγραφής - Refresh logs - Ανανέωση αρχείων καταγραφής - - - Clear log + Clear Εκκαθάριση αρχείου καταγραφής diff --git a/qt/i18n/OpenRGB_en_AU.ts b/qt/i18n/OpenRGB_en_AU.ts index 2b3e890e4..9c8508de0 100644 --- a/qt/i18n/OpenRGB_en_AU.ts +++ b/qt/i18n/OpenRGB_en_AU.ts @@ -336,17 +336,13 @@ - OpenRGBConsolePage + OpenRGBLogConsolePage - Log level + Log Level: - Refresh logs - - - - Clear log + Clear diff --git a/qt/i18n/OpenRGB_en_GB.ts b/qt/i18n/OpenRGB_en_GB.ts index eed6a34ea..fa305e3f7 100644 --- a/qt/i18n/OpenRGB_en_GB.ts +++ b/qt/i18n/OpenRGB_en_GB.ts @@ -336,17 +336,13 @@ - OpenRGBConsolePage + OpenRGBLogConsolePage - Log level + Log Level: - Refresh logs - - - - Clear log + Clear diff --git a/qt/i18n/OpenRGB_en_US.ts b/qt/i18n/OpenRGB_en_US.ts index 98e732b2d..4f2d7b22d 100644 --- a/qt/i18n/OpenRGB_en_US.ts +++ b/qt/i18n/OpenRGB_en_US.ts @@ -336,17 +336,13 @@ - OpenRGBConsolePage + OpenRGBLogConsolePage - Log level + Log Level: - Refresh logs - - - - Clear log + Clear diff --git a/qt/i18n/OpenRGB_es_ES.ts b/qt/i18n/OpenRGB_es_ES.ts index fee115b30..ff76c8726 100644 --- a/qt/i18n/OpenRGB_es_ES.ts +++ b/qt/i18n/OpenRGB_es_ES.ts @@ -44,17 +44,13 @@ - OpenRGBConsolePage + OpenRGBLogConsolePage - Log level + Log Level: Nivel de registro - Refresh logs - Actualizar registros - - - Clear log + Clear Borrar registro diff --git a/qt/i18n/OpenRGB_fr_FR.ts b/qt/i18n/OpenRGB_fr_FR.ts index bee1826bc..6371c5e02 100644 --- a/qt/i18n/OpenRGB_fr_FR.ts +++ b/qt/i18n/OpenRGB_fr_FR.ts @@ -44,17 +44,13 @@ - OpenRGBConsolePage + OpenRGBLogConsolePage - Log level + Log Level: Niveau de log - Refresh logs - Rafraîchir - - - Clear log + Clear Effacer diff --git a/qt/i18n/OpenRGB_hr_HR.ts b/qt/i18n/OpenRGB_hr_HR.ts index 82e9732b5..439dbd87d 100644 --- a/qt/i18n/OpenRGB_hr_HR.ts +++ b/qt/i18n/OpenRGB_hr_HR.ts @@ -45,17 +45,13 @@ - OpenRGBConsolePage + OpenRGBLogConsolePage - Log level + Log Level: Razina zapisa - Refresh logs - Osvježi zapise - - - Clear log + Clear Ukloni zapise diff --git a/qt/i18n/OpenRGB_it_IT.ts b/qt/i18n/OpenRGB_it_IT.ts index 340d5f28d..4dc46c485 100644 --- a/qt/i18n/OpenRGB_it_IT.ts +++ b/qt/i18n/OpenRGB_it_IT.ts @@ -44,17 +44,13 @@ - OpenRGBConsolePage + OpenRGBLogConsolePage - Log level + Log Level: Livello registro - Refresh logs - Aggiorna registri - - - Clear log + Clear Cancella registro diff --git a/qt/i18n/OpenRGB_ja_JP.ts b/qt/i18n/OpenRGB_ja_JP.ts index 0793fa19e..66e585853 100644 --- a/qt/i18n/OpenRGB_ja_JP.ts +++ b/qt/i18n/OpenRGB_ja_JP.ts @@ -44,17 +44,13 @@ - OpenRGBConsolePage + OpenRGBLogConsolePage - Log level + Log Level: ログレベル - Refresh logs - ログ更新 - - - Clear log + Clear ログをクリア diff --git a/qt/i18n/OpenRGB_ko_KR.ts b/qt/i18n/OpenRGB_ko_KR.ts index baf333b5a..74b6b21f3 100644 --- a/qt/i18n/OpenRGB_ko_KR.ts +++ b/qt/i18n/OpenRGB_ko_KR.ts @@ -44,17 +44,13 @@ - OpenRGBConsolePage + OpenRGBLogConsolePage - Log level + Log Level: 로그 수준 - Refresh logs - 로그 새로고침 - - - Clear log + Clear 로그 지우기 diff --git a/qt/i18n/OpenRGB_ms_MY.ts b/qt/i18n/OpenRGB_ms_MY.ts index d355cf69c..e85859cb2 100644 --- a/qt/i18n/OpenRGB_ms_MY.ts +++ b/qt/i18n/OpenRGB_ms_MY.ts @@ -44,17 +44,13 @@ - OpenRGBConsolePage + OpenRGBLogConsolePage - Log level + Log Level: Tahap log - Refresh logs - Muat semula log - - - Clear log + Clear Kosongkan log diff --git a/qt/i18n/OpenRGB_nb_NO.ts b/qt/i18n/OpenRGB_nb_NO.ts index 9383f3294..a8e641bb5 100644 --- a/qt/i18n/OpenRGB_nb_NO.ts +++ b/qt/i18n/OpenRGB_nb_NO.ts @@ -44,17 +44,13 @@ - OpenRGBConsolePage + OpenRGBLogConsolePage - Log level + Log Level: Log Level - Refresh logs - Forfrisk logger - - - Clear log + Clear Slett logger diff --git a/qt/i18n/OpenRGB_pl_PL.ts b/qt/i18n/OpenRGB_pl_PL.ts index 6d85e8f9b..16ff152b0 100644 --- a/qt/i18n/OpenRGB_pl_PL.ts +++ b/qt/i18n/OpenRGB_pl_PL.ts @@ -44,17 +44,13 @@ - OpenRGBConsolePage + OpenRGBLogConsolePage - Log level + Log Level: Poziom logowania - Refresh logs - Odśwież logi - - - Clear log + Clear Wyczyść logi diff --git a/qt/i18n/OpenRGB_pt_BR.ts b/qt/i18n/OpenRGB_pt_BR.ts index bc27c5480..01b930db6 100644 --- a/qt/i18n/OpenRGB_pt_BR.ts +++ b/qt/i18n/OpenRGB_pt_BR.ts @@ -44,17 +44,13 @@ - OpenRGBConsolePage + OpenRGBLogConsolePage - Log level + Log Level: Nível de registro - Refresh logs - Atualizar registros - - - Clear log + Clear Limpar registros diff --git a/qt/i18n/OpenRGB_ru_RU.ts b/qt/i18n/OpenRGB_ru_RU.ts index c619bb9b6..9188e39cc 100644 --- a/qt/i18n/OpenRGB_ru_RU.ts +++ b/qt/i18n/OpenRGB_ru_RU.ts @@ -336,17 +336,13 @@ - OpenRGBConsolePage + OpenRGBLogConsolePage - Log level + Log Level: Уровень логирования - Refresh logs - Обновить лог - - - Clear log + Clear Очистить лог diff --git a/qt/i18n/OpenRGB_tr_TR.ts b/qt/i18n/OpenRGB_tr_TR.ts index 7224a8138..22e85593c 100644 --- a/qt/i18n/OpenRGB_tr_TR.ts +++ b/qt/i18n/OpenRGB_tr_TR.ts @@ -336,17 +336,13 @@ - OpenRGBConsolePage + OpenRGBLogConsolePage - Log level + Log Level: Günlük seviyesi - Refresh logs - Günlükleri yenile - - - Clear log + Clear Günlükleri temizle diff --git a/qt/i18n/OpenRGB_uk_UA.ts b/qt/i18n/OpenRGB_uk_UA.ts index 493701bd6..78a4a708e 100644 --- a/qt/i18n/OpenRGB_uk_UA.ts +++ b/qt/i18n/OpenRGB_uk_UA.ts @@ -44,17 +44,13 @@ - OpenRGBConsolePage + OpenRGBLogConsolePage - Log level + Log Level: Рівень логування - Refresh logs - Оновити лог - - - Clear log + Clear Очистити лог diff --git a/qt/i18n/OpenRGB_zh_CN.ts b/qt/i18n/OpenRGB_zh_CN.ts index cde260859..8d3687d52 100644 --- a/qt/i18n/OpenRGB_zh_CN.ts +++ b/qt/i18n/OpenRGB_zh_CN.ts @@ -44,17 +44,13 @@ - OpenRGBConsolePage + OpenRGBLogConsolePage - Log level + Log Level: 日志级别 - Refresh logs - 刷新日志 - - - Clear log + Clear 清除日志 diff --git a/qt/i18n/OpenRGB_zh_TW.ts b/qt/i18n/OpenRGB_zh_TW.ts index d056d37fc..ec2866478 100644 --- a/qt/i18n/OpenRGB_zh_TW.ts +++ b/qt/i18n/OpenRGB_zh_TW.ts @@ -44,17 +44,13 @@ - OpenRGBConsolePage + OpenRGBLogConsolePage - Log level + Log Level: 日誌級別 - Refresh logs - 刷新日誌 - - - Clear log + Clear 清除日誌