Merge pull request #1630 from FallenValkyrie/allow_sticker_pack_removal
Allow sticker pack removal
This commit is contained in:
commit
8049297cd1
5 changed files with 85 additions and 21 deletions
|
|
@ -8,6 +8,7 @@
|
|||
#include <QFileInfo>
|
||||
#include <QMimeDatabase>
|
||||
|
||||
#include <mtx/events/mscs/image_packs.hpp>
|
||||
#include <nlohmann/json.hpp>
|
||||
|
||||
#include <unordered_set>
|
||||
|
|
@ -285,18 +286,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 +304,37 @@ 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),
|
||||
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<QUrl> files)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -70,6 +70,7 @@ public:
|
|||
void setIsEmotePack(bool val);
|
||||
|
||||
Q_INVOKABLE void save();
|
||||
Q_INVOKABLE void remove();
|
||||
Q_INVOKABLE void addStickers(QList<QUrl> files);
|
||||
Q_INVOKABLE void remove(int index);
|
||||
Q_INVOKABLE void setAvatar(QUrl file);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue