This commit is contained in:
evgeny committed 2026-08-04 15:29:25 +03:00
1 parent 26f4da1b7c
commit 712d1b53df
29 files changed
+1029 -1138

No files matched your search

+29
View File
@@ -84,6 +84,16 @@ SettingsDialog::SettingsDialog(const QString& configPath, DbManager* db, UtunNod
"QComboBox { border: 1px solid palette(mid); border-radius: 4px;"
" padding: 6px 10px; font-size: 13px; background: palette(base); }");
profLayout->addRow(sortLabel, m_sortCombo);
auto* joinLabel = new QLabel("Join requests:", profilePage);
m_joinPolicyCombo = new QComboBox(profilePage);
m_joinPolicyCombo->addItem("Auto-join");
m_joinPolicyCombo->addItem("Ask before joining");
m_joinPolicyCombo->addItem("Deny all");
m_joinPolicyCombo->setStyleSheet(
"QComboBox { border: 1px solid palette(mid); border-radius: 4px;"
" padding: 6px 10px; font-size: 13px; background: palette(base); }");
profLayout->addRow(joinLabel, m_joinPolicyCombo);
m_pages->addWidget(profilePage);
// Storage page
@@ -151,6 +161,8 @@ SettingsDialog::SettingsDialog(const QString& configPath, DbManager* db, UtunNod
if (db) {
int sortMode = db->getUiStateInt("channel_sort", 0);
m_sortCombo->setCurrentIndex(sortMode == 1 ? 1 : 0);
int joinPolicy = db->getUiStateInt("join_policy", 1);
m_joinPolicyCombo->setCurrentIndex(joinPolicy >= 0 && joinPolicy <= 2 ? joinPolicy : 1);
}
m_networkPage->loadFromConfig(m_configPath);
m_soundPage->loadFromDb();
@@ -237,5 +249,22 @@ void SettingsDialog::onSave() {
m_soundPage->applyAndSave();
m_audioDevicePage->applyAndSave();
m_storagePage->applyAndSave();
/* save join_policy */
{
const char* key = "join_policy";
int v = m_joinPolicyCombo->currentIndex();
QByteArray val = QByteArray::number(v);
size_t klen = strlen(key), vl = (size_t)val.size(), total = klen + 1 + vl + 1;
if (total <= 256) {
void* arg = u_malloc(total);
memcpy(arg, key, klen + 1);
memcpy((char*)arg + klen + 1, val.constData(), vl + 1);
gui_bridge_post_uasync_fn(chat_core_save_ui_state_trampoline, arg);
}
if (!m_configPath.isEmpty()) {
postChatSetting(m_configPath, "join_policy", v);
}
}
accept();
}