Implement account pack deletion

This commit is contained in:
FallenValkyrie 2023-12-19 16:12:38 +01:00
parent c605fb6ca8
commit 31623000a8
No known key found for this signature in database
GPG key ID: 9D1AE3C23A00B8BC

View file

@ -8,6 +8,7 @@
#include <QFileInfo> #include <QFileInfo>
#include <QMimeDatabase> #include <QMimeDatabase>
#include <mtx/events/mscs/image_packs.hpp>
#include <nlohmann/json.hpp> #include <nlohmann/json.hpp>
#include <unordered_set> #include <unordered_set>
@ -306,6 +307,20 @@ SingleImagePackModel::save()
void void
SingleImagePackModel::remove() 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( http::client()->send_state_event(
roomid_, roomid_,
to_string(mtx::events::EventType::ImagePackInRoom), to_string(mtx::events::EventType::ImagePackInRoom),