Reject rename saves when the initial nickname read failed

This commit is contained in:
evgeny committed 2026-10-28 00:58:59 +01:00
1 parent 2d79023c5e
commit d73d62db48
2 files changed
+5 -2

No files matched your search

+4 -2
View File
@@ -71,6 +71,7 @@ RenameDialog::RenameDialog(DbManager* db, const QString& channelId,
auto* saveBtn = new QPushButton(QCoreApplication::translate("ChatGui", "Save"), this);
m_saveBtn = saveBtn;
m_loaded = loaded; m_saveBtn->setEnabled(m_loaded);
saveBtn->setMinimumWidth(90);
saveBtn->setDefault(true);
saveBtn->setStyleSheet(
@@ -84,14 +85,14 @@ RenameDialog::RenameDialog(DbManager* db, const QString& channelId,
layout->addLayout(btnLayout);
connect(this, &QDialog::finished, this, [this] {
delete m_saveContext; m_saveContext = nullptr;
m_edit->setEnabled(true); m_saveBtn->setEnabled(true);
m_edit->setEnabled(true); m_saveBtn->setEnabled(m_loaded);
});
}
/* Результат адресован context запроса; после закрытия/удаления формы мост его не вызовет. */
void RenameDialog::finishSave(int result) {
delete m_saveContext; m_saveContext = nullptr;
m_edit->setEnabled(true); m_saveBtn->setEnabled(true);
m_edit->setEnabled(true); m_saveBtn->setEnabled(m_loaded);
if (!result) { accept(); return; }
m_errorLabel->setText(QCoreApplication::translate("ChatGui", "Could not save member changes. Please try again."));
DEBUG_WARN(DEBUG_CATEGORY_CHAT_SYNC, "rename: save refused ch=%s node=%016llx result=%d",
@@ -100,6 +101,7 @@ void RenameDialog::finishSave(int result) {
void RenameDialog::onSave() {
if (m_saveContext) return;
if (!m_loaded) { finishSave(-1); return; }
m_errorLabel->clear(); m_edit->setEnabled(false); m_saveBtn->setEnabled(false);
m_saveContext = new QObject(this);
if (!gui_bridge_save_member(m_db ? m_db->m_db : nullptr, m_channelId, m_nodeId, m_edit->text().trimmed(), {},
+1
View File
@@ -31,4 +31,5 @@ private:
QLabel* m_errorLabel; // Ошибка чтения/сохранения без технических подробностей.
QPushButton* m_saveBtn; // Отключена до результата.
QObject* m_saveContext = nullptr; // Собственный context одного запроса; удаляется при результате/закрытии.
bool m_loaded = false; // Ник успешно прочитан; при ошибке чтения сохранение запрещено.
};