From 4002b1ecf150e0135b9af52352ec0b95864a3cab Mon Sep 17 00:00:00 2001
From: Nicolas Werner <nicolas.werner@hotmail.de>
Date: Sun, 9 Oct 2022 02:14:31 +0200
Subject: [PATCH] Properly propagate pack usage to UI

We can't have a pack that is neither sticker nor emoji. Which is why
none defaults to both on. That wasn't propagated to the UI, which made
the interaction very confusing. It also made some states unsettable,
since you can't turn anything off from the none state.

fixes #1152
---
 src/SingleImagePackModel.cpp | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/src/SingleImagePackModel.cpp b/src/SingleImagePackModel.cpp
index 02c9a3ced..9d8c34094 100644
--- a/src/SingleImagePackModel.cpp
+++ b/src/SingleImagePackModel.cpp
@@ -248,6 +248,9 @@ SingleImagePackModel::setIsStickerPack(bool val)
     using mtx::events::msc2545::PackUsage;
     if (val != pack.pack->is_sticker()) {
         pack.pack->usage.set(PackUsage::Sticker, val);
+        if (!val)
+            pack.pack->usage.set(PackUsage::Emoji, true);
+        emit isEmotePackChanged();
         emit isStickerPackChanged();
     }
 }
@@ -258,7 +261,10 @@ SingleImagePackModel::setIsEmotePack(bool val)
     using mtx::events::msc2545::PackUsage;
     if (val != pack.pack->is_emoji()) {
         pack.pack->usage.set(PackUsage::Emoji, val);
+        if (!val)
+            pack.pack->usage.set(PackUsage::Sticker, true);
         emit isEmotePackChanged();
+        emit isStickerPackChanged();
     }
 }
 
-- 
GitLab