From e8b9d92e8e84df51dfce386e722f0de398b198bd Mon Sep 17 00:00:00 2001 From: FallenValkyrie Date: Thu, 7 Dec 2023 00:56:24 +0100 Subject: Factor out the logic to delete an ImagePack --- src/SingleImagePackModel.cpp | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) (limited to 'src/SingleImagePackModel.cpp') diff --git a/src/SingleImagePackModel.cpp b/src/SingleImagePackModel.cpp index 1adfdaa2..daec135f 100644 --- a/src/SingleImagePackModel.cpp +++ b/src/SingleImagePackModel.cpp @@ -285,18 +285,7 @@ SingleImagePackModel::save() }); } else { if (old_statekey_ != statekey_) { - http::client()->send_state_event( - roomid_, - to_string(mtx::events::EventType::ImagePackInRoom), - old_statekey_, - nlohmann::json::object(), - [](const mtx::responses::EventId &, mtx::http::RequestErr e) { - if (e) - ChatPage::instance()->showNotification( - tr("Failed to delete old image pack: %1") - .arg(QString::fromStdString(e->matrix_error.error))); - }); - old_statekey_ = statekey_; + this->remove(); } http::client()->send_state_event( @@ -314,6 +303,23 @@ SingleImagePackModel::save() } } +void +SingleImagePackModel::remove() +{ + http::client()->send_state_event( + roomid_, + to_string(mtx::events::EventType::ImagePackInRoom), + old_statekey_, + nlohmann::json::object(), + [](const mtx::responses::EventId &, mtx::http::RequestErr e) { + if (e) + ChatPage::instance()->showNotification( + tr("Failed to delete old image pack: %1") + .arg(QString::fromStdString(e->matrix_error.error))); + }); + old_statekey_ = statekey_; +} + void SingleImagePackModel::addStickers(QList files) { -- cgit 1.5.1 From 31623000a8a7043697d4d1698004b8471b8c1ebc Mon Sep 17 00:00:00 2001 From: FallenValkyrie Date: Tue, 19 Dec 2023 16:12:38 +0100 Subject: Implement account pack deletion --- src/SingleImagePackModel.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src/SingleImagePackModel.cpp') diff --git a/src/SingleImagePackModel.cpp b/src/SingleImagePackModel.cpp index daec135f..95a863d3 100644 --- a/src/SingleImagePackModel.cpp +++ b/src/SingleImagePackModel.cpp @@ -8,6 +8,7 @@ #include #include +#include #include #include @@ -306,6 +307,20 @@ SingleImagePackModel::save() void SingleImagePackModel::remove() { + // handle account pack deletion. + // Sadly we cannot actually delete the pack, + // so we just send an empty pack to clear out its information. + if (roomid_.empty()) { + http::client()->put_account_data( + mtx::events::msc2545::ImagePack(), [](mtx::http::RequestErr e) { + if (e) + ChatPage::instance()->showNotification( + tr("Failed to update image pack: %1") + .arg(QString::fromStdString(e->matrix_error.error))); + }); + return; + } + http::client()->send_state_event( roomid_, to_string(mtx::events::EventType::ImagePackInRoom), -- cgit 1.5.1