diff --git a/src/Cache.cpp b/src/Cache.cpp
index f3f3dbb6..6650334a 100644
--- a/src/Cache.cpp
+++ b/src/Cache.cpp
@@ -3401,7 +3401,7 @@ Cache::getImagePacks(const std::string &room_id, std::optional<bool> stickers)
info.pack.pack = pack.pack;
for (const auto &img : pack.images) {
- if (img.second.overrides_usage() &&
+ if (stickers.has_value() && img.second.overrides_usage() &&
(stickers ? !img.second.is_sticker() : !img.second.is_emoji()))
continue;
diff --git a/src/ImagePackListModel.cpp b/src/ImagePackListModel.cpp
index 89f1f68e..6392de22 100644
--- a/src/ImagePackListModel.cpp
+++ b/src/ImagePackListModel.cpp
@@ -74,3 +74,21 @@ ImagePackListModel::packAt(int row)
QQmlEngine::setObjectOwnership(e, QQmlEngine::CppOwnership);
return e;
}
+
+SingleImagePackModel *
+ImagePackListModel::newPack(bool inRoom)
+{
+ ImagePackInfo info{};
+ if (inRoom)
+ info.source_room = room_id;
+ return new SingleImagePackModel(info);
+}
+
+bool
+ImagePackListModel::containsAccountPack() const
+{
+ for (const auto &p : packs)
+ if (p->roomid().isEmpty())
+ return true;
+ return false;
+}
diff --git a/src/ImagePackListModel.h b/src/ImagePackListModel.h
index 0a044690..2aa5abb2 100644
--- a/src/ImagePackListModel.h
+++ b/src/ImagePackListModel.h
@@ -12,6 +12,7 @@ class SingleImagePackModel;
class ImagePackListModel : public QAbstractListModel
{
Q_OBJECT
+ Q_PROPERTY(bool containsAccountPack READ containsAccountPack CONSTANT)
public:
enum Roles
{
@@ -29,6 +30,9 @@ public:
QVariant data(const QModelIndex &index, int role) const override;
Q_INVOKABLE SingleImagePackModel *packAt(int row);
+ Q_INVOKABLE SingleImagePackModel *newPack(bool inRoom);
+
+ bool containsAccountPack() const;
private:
std::string room_id;
diff --git a/src/SingleImagePackModel.cpp b/src/SingleImagePackModel.cpp
index ddecf1ad..dea25264 100644
--- a/src/SingleImagePackModel.cpp
+++ b/src/SingleImagePackModel.cpp
@@ -15,7 +15,7 @@
#include "timeline/Permissions.h"
#include "timeline/TimelineModel.h"
-Q_DECLARE_METATYPE(mtx::common::ImageInfo);
+Q_DECLARE_METATYPE(mtx::common::ImageInfo)
SingleImagePackModel::SingleImagePackModel(ImagePackInfo pack_, QObject *parent)
: QAbstractListModel(parent)
@@ -285,6 +285,8 @@ SingleImagePackModel::save()
ChatPage::instance()->showNotification(
tr("Failed to update image pack: {}")
.arg(QString::fromStdString(e->matrix_error.error)));
+
+ nhlog::net()->info("Uploaded image pack: {}", statekey_);
});
}
}
|