From 4002b1ecf150e0135b9af52352ec0b95864a3cab Mon Sep 17 00:00:00 2001 From: Nicolas Werner 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 02c9a3ce..9d8c3409 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(); } }