Clarify settings dialog drafts, save semantics and borrowed dependencies
This commit is contained in:
1 parent
2dd0970295
commit
d582f2ea77
2 files changed
+33
-26
No files matched your search
@@ -16,7 +16,7 @@ public:
|
||||
/* Создать форму и прочитать информацию о файлах; nullptr/неоткрытая БД отключают кнопки операций. */
|
||||
explicit DatabaseSettingsPage(DbManager* db, QWidget* parent = nullptr);
|
||||
/* Обновить доступность кнопок и доступную информацию о файлах; PRAGMA не запускает.
|
||||
* Не заменяет результат последней проверки; вызывается при выборе страницы настроек. */
|
||||
* Подробности последней проверки сохраняются; при отсутствии БД подпись статуса сообщает о неподключённой БД. */
|
||||
void refreshStatus();
|
||||
|
||||
private slots:
|
||||
@@ -31,7 +31,7 @@ private:
|
||||
DbManager* m_db; // Заимствованный менеджер, может быть nullptr; его handle читается при выполнении действия.
|
||||
QLabel* m_filePathLabel; // Дочерняя подпись пути sqlite3_db_filename(main), доступна для копирования.
|
||||
QLabel* m_fileSizeLabel; // Дочерняя подпись размера основного файла по QFileInfo.
|
||||
QLabel* m_walSizeLabel; // Дочерняя подпись размера соседнего -wal либо n/a при его отсутствии.
|
||||
QLabel* m_walSizeLabel; // Дочерняя подпись известного размера -wal; n/a для отсутствующего WAL у найденного файла БД.
|
||||
QPushButton* m_quickBtn; // Дочерняя кнопка быстрой проверки.
|
||||
QPushButton* m_fullBtn; // Дочерняя кнопка полной проверки.
|
||||
QPushButton* m_optimizeBtn; // Дочерняя кнопка PRAGMA optimize.
|
||||
|
||||
@@ -1,4 +1,7 @@
|
||||
// settingsdialog.h — Settings dialog with category list
|
||||
/* GUI-диалог настроек с категориями и общим Save: черновик редактируемых страниц загружается при создании.
|
||||
* Переключение категорий сохраняет черновик и обновляет диагностические страницы; виджетами владеет Qt-дерево диалога.
|
||||
* Save последовательно меняет INI/локальные настройки и ставит команды в мост: возможны частичные изменения при отказе.
|
||||
* Аватары и портал PTT имеют немедленные эффекты вне Save/Cancel; язык и listen-сокеты применяются после рестарта. */
|
||||
#pragma once
|
||||
|
||||
#include <QDialog>
|
||||
@@ -26,37 +29,41 @@ class AudioRecorder;
|
||||
class SettingsDialog : public QDialog {
|
||||
Q_OBJECT
|
||||
public:
|
||||
/* configPath копируется; db/recorder заимствованы до уничтожения диалога, nullptr допустим.
|
||||
* node передаётся StatusPage через QPointer и может быть удалён раньше. Все вызовы — GUI. */
|
||||
explicit SettingsDialog(const QString& configPath, DbManager* db, UtunNode* node,
|
||||
AudioRecorder* recorder, QWidget* parent = nullptr);
|
||||
|
||||
private slots:
|
||||
void onCategoryChanged(int row);
|
||||
void onCategoryChanged(int row); // Выбрать страницу; DB/status/nodes обновляются, редактируемый черновик сохраняется.
|
||||
/* Пройти запись/применение страниц и вызвать accept при завершении UI-шагов.
|
||||
* Команды владеют снимками значений; accept не подтверждает commit SQLite/применение ядром. Общей транзакции нет. */
|
||||
void onSave();
|
||||
// Открывает текущий конфиг во внешнем текстовом редакторе; ошибки показывает пользователю.
|
||||
// Запустить внешний редактор конфига; ошибки логируются/показываются, повторная загрузка — при создании нового диалога.
|
||||
void onEditConfig();
|
||||
|
||||
private:
|
||||
void loadProfileFromConfig(const QString& path);
|
||||
void loadProfileFromConfig(const QString& path); // Найти первую строку my_node_name=, заполнить поле и базу сравнения имени.
|
||||
|
||||
QString m_configPath;
|
||||
QListWidget* m_categoryList;
|
||||
QStackedWidget* m_pages;
|
||||
QPushButton* m_saveBtn;
|
||||
QLineEdit* m_nicknameEdit;
|
||||
QComboBox* m_sortCombo;
|
||||
QComboBox* m_languageCombo;
|
||||
QComboBox* m_joinPolicyCombo;
|
||||
QCheckBox* m_autoConnectCheck;
|
||||
QString m_configPath; // Собственная копия пути INI.
|
||||
QListWidget* m_categoryList; // Категории; индексы совпадают со страницами m_pages.
|
||||
QStackedWidget* m_pages; // Владение страницами через Qt-дерево, включая scroll wrapper рации.
|
||||
QPushButton* m_saveBtn; // Общая кнопка Save, также default action диалога.
|
||||
QLineEdit* m_nicknameEdit; // Черновик собственного отображаемого имени.
|
||||
QComboBox* m_sortCombo; // Индекс сортировки: 0=алфавит, 1=последняя активность.
|
||||
QComboBox* m_languageCombo; // system/en/ru в item data; сохранённый язык для следующего запуска.
|
||||
QComboBox* m_joinPolicyCombo; // Индекс join_policy: 0=авто, 1=спрашивать, 2=запрещать.
|
||||
QCheckBox* m_autoConnectCheck; // Черновик group_autoconnect.
|
||||
QCheckBox* m_publishCallStatus; // Разрешение публикации своего статуса звонка.
|
||||
QSpinBox* m_streamSubblocks;
|
||||
QSpinBox* m_streamRedundant;
|
||||
QString m_oldNickname;
|
||||
NetworkSettingsPage* m_networkPage;
|
||||
DatabaseSettingsPage* m_databasePage;
|
||||
StatusPage* m_statusPage;
|
||||
NodesPage* m_nodesPage;
|
||||
SoundSettingsPage* m_soundPage;
|
||||
AudioDeviceSettingsPage* m_audioDevicePage;
|
||||
StorageSettingsPage* m_storagePage;
|
||||
RadioSettingsPage* m_radioPage;
|
||||
QSpinBox* m_streamSubblocks; // Полное N RS-блока, 1..255; настройка следующей трансляции.
|
||||
QSpinBox* m_streamRedundant; // Избыточные R подблоки, 0..N-1; maximum следует за N.
|
||||
QString m_oldNickname; // База сравнения имени: загрузка либо последняя попытка Save.
|
||||
NetworkSettingsPage* m_networkPage; // Черновик listen-сокетов и LAN-флагов.
|
||||
DatabaseSettingsPage* m_databasePage; // Сведения/обслуживание SQLite, обновление при выборе категории.
|
||||
StatusPage* m_statusPage; // Диагностика ядра/времени, обновление при выборе категории.
|
||||
NodesPage* m_nodesPage; // Снимок известных узлов БД, обновление при выборе категории.
|
||||
SoundSettingsPage* m_soundPage; // Черновик звуков событий.
|
||||
AudioDeviceSettingsPage* m_audioDevicePage; // Выбор устройств/аудиопараметров и тесты микрофона/динамика.
|
||||
StorageSettingsPage* m_storagePage; // Черновик автозагрузки и лимитов media-хранилища.
|
||||
RadioSettingsPage* m_radioPage; // Черновик активации рации и интерфейс PTT-хоткеев.
|
||||
};
|
||||
Reference in new issue
Block a user