From 6bef2205db536debd6a009d3c3375baec7438fe0 Mon Sep 17 00:00:00 2001 From: Nikita Karpei Date: Sun, 5 Feb 2023 06:20:19 +0200 Subject: [PATCH] Delete a device from the list if the job succeed --- src/models/devicesmodel.cpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/models/devicesmodel.cpp b/src/models/devicesmodel.cpp index e00257f39..a5ef91be9 100644 --- a/src/models/devicesmodel.cpp +++ b/src/models/devicesmodel.cpp @@ -70,7 +70,12 @@ void DevicesModel::logout(int index, const QString &password) auto job = Controller::instance().activeConnection()->callApi(m_devices[index].deviceId); connect(job, &BaseJob::result, this, [this, job, password, index] { - if (job->error() != 0) { + auto onSuccess = [this, index]() { + beginRemoveRows(QModelIndex(), index, index); + m_devices.remove(index); + endRemoveRows(); + }; + if (job->error() != BaseJob::Success) { QJsonObject replyData = job->jsonData(); QJsonObject authData; authData["session"] = replyData["session"]; @@ -79,11 +84,9 @@ void DevicesModel::logout(int index, const QString &password) QJsonObject identifier = {{"type", "m.id.user"}, {"user", Controller::instance().activeConnection()->user()->id()}}; authData["identifier"] = identifier; auto *innerJob = Controller::instance().activeConnection()->callApi(m_devices[index].deviceId, authData); - connect(innerJob, &BaseJob::success, this, [this, index]() { - beginRemoveRows(QModelIndex(), index, index); - m_devices.remove(index); - endRemoveRows(); - }); + connect(innerJob, &BaseJob::success, this, onSuccess); + } else { + onSuccess(); } }); }