From afbce0efeb712451391c2f698aacec9369ed78fc Mon Sep 17 00:00:00 2001 From: evgeny Date: Sat, 3 Oct 2026 13:12:17 +0300 Subject: [PATCH] Load radio settings after core startup and apply from dialog --- tools/chatgui/src/mainwindow.cpp | 1 + tools/chatgui/src/messagelist.cpp | 1 + tools/chatgui/src/settingsdialog.cpp | 8 +++++++- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/tools/chatgui/src/mainwindow.cpp b/tools/chatgui/src/mainwindow.cpp index 1d7fb66f..28847274 100644 --- a/tools/chatgui/src/mainwindow.cpp +++ b/tools/chatgui/src/mainwindow.cpp @@ -392,6 +392,7 @@ void MainWindow::setupBridgeCallbacks() { gui_bridge_set_db_ready_cb([]() { if (!s_mainWindow || !s_mainWindow->m_db) return; s_mainWindow->m_db->setDb(chat_core_get_db(gui_bridge_get_inst())); + RadioAudioEngine::instance()->loadSettings(s_mainWindow->m_cfgPath); s_mainWindow->m_channelList->loadChannels(); s_mainWindow->restoreWindowGeometry(); PttHotkeyManager::instance()->init(s_mainWindow->m_db); /* глобальные PTT-хоткеи */ diff --git a/tools/chatgui/src/messagelist.cpp b/tools/chatgui/src/messagelist.cpp index 65fa92b9..f25bbbc6 100644 --- a/tools/chatgui/src/messagelist.cpp +++ b/tools/chatgui/src/messagelist.cpp @@ -15,6 +15,7 @@ #include #include #include +#include #include #include #include diff --git a/tools/chatgui/src/settingsdialog.cpp b/tools/chatgui/src/settingsdialog.cpp index c21d96dc..443eb0f2 100644 --- a/tools/chatgui/src/settingsdialog.cpp +++ b/tools/chatgui/src/settingsdialog.cpp @@ -26,6 +26,7 @@ extern "C" { #include #include #include +#include SettingsDialog::SettingsDialog(const QString& configPath, DbManager* db, UtunNode* node, AudioRecorder* recorder, QWidget* parent) @@ -221,6 +222,7 @@ void SettingsDialog::onCategoryChanged(int row) { if (row == 6) m_nodesPage->refreshNodes(); if (row == 7) m_soundPage->loadFromDb(); if (row == 8) m_audioDevicePage->loadFromDb(); + if (row == 9) m_radioPage->loadFromDb(); } void SettingsDialog::onSave() { @@ -295,7 +297,11 @@ void SettingsDialog::onSave() { m_soundPage->applyAndSave(); m_audioDevicePage->applyAndSave(); m_storagePage->applyAndSave(); - m_radioPage->apply(); + if (!m_radioPage->apply()) { + QMessageBox::warning(this, QStringLiteral("Настройки рации"), QStringLiteral("Не удалось применить настройки рации. " + "Проверьте доступность ядра и файла конфигурации; подробности в логе radio.")); + return; + } /* Физические сочетания сохраняем в БД; Wayland-хоткеями владеет системный портал. */ if (!PttHotkeyManager::usesPortal()) {