Reject rename saves when the initial nickname read failed
This commit is contained in:
1 parent
2d79023c5e
commit
d73d62db48
2 files changed
+5
-2
No files matched your search
@@ -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(), {},
|
||||
|
||||
@@ -31,4 +31,5 @@ private:
|
||||
QLabel* m_errorLabel; // Ошибка чтения/сохранения без технических подробностей.
|
||||
QPushButton* m_saveBtn; // Отключена до результата.
|
||||
QObject* m_saveContext = nullptr; // Собственный context одного запроса; удаляется при результате/закрытии.
|
||||
bool m_loaded = false; // Ник успешно прочитан; при ошибке чтения сохранение запрещено.
|
||||
};
|
||||
Reference in new issue
Block a user