diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/components/chatlist.cpp | 11 | ||||
-rw-r--r-- | src/settings.cpp | 2 | ||||
-rw-r--r-- | src/settings.hpp | 1 |
3 files changed, 12 insertions, 2 deletions
diff --git a/src/components/chatlist.cpp b/src/components/chatlist.cpp index 4dde8a3..a656a43 100644 --- a/src/components/chatlist.cpp +++ b/src/components/chatlist.cpp @@ -187,8 +187,15 @@ void ChatList::DeleteMessage(Snowflake id) { if (widget == m_id_to_widget.end()) return; auto *x = dynamic_cast<ChatMessageItemContainer *>(widget->second); - if (x != nullptr) - x->UpdateAttributes(); + + if (x != nullptr) { + if (Abaddon::Get().GetSettings().ShowDeletedIndicator) { + x->UpdateAttributes(); + } else { + RemoveMessageAndHeader(x); + m_id_to_widget.erase(id); + } + } } void ChatList::RefetchMessage(Snowflake id) { diff --git a/src/settings.cpp b/src/settings.cpp index f910ff7..c824a34 100644 --- a/src/settings.cpp +++ b/src/settings.cpp @@ -63,6 +63,7 @@ void SettingsManager::ReadSettings() { SMBOOL("gui", "unreads", Unreads); SMBOOL("gui", "alt_menu", AltMenu); SMBOOL("gui", "hide_to_tray", HideToTray); + SMBOOL("gui", "show_deleted_indicator", ShowDeletedIndicator); SMFLT("gui", "font_scale", FontScale); SMINT("http", "concurrent", CacheHTTPConcurrency); SMSTR("http", "user_agent", UserAgent); @@ -153,6 +154,7 @@ void SettingsManager::Close() { SMBOOL("gui", "unreads", Unreads); SMBOOL("gui", "alt_menu", AltMenu); SMBOOL("gui", "hide_to_tray", HideToTray); + SMBOOL("gui", "show_deleted_indicator", ShowDeletedIndicator); SMFLT("gui", "font_scale", FontScale); SMINT("http", "concurrent", CacheHTTPConcurrency); SMSTR("http", "user_agent", UserAgent); diff --git a/src/settings.hpp b/src/settings.hpp index 7c6368f..037233b 100644 --- a/src/settings.hpp +++ b/src/settings.hpp @@ -30,6 +30,7 @@ public: bool Unreads { true }; bool AltMenu { false }; bool HideToTray { false }; + bool ShowDeletedIndicator { true }; double FontScale { -1.0 }; // [http] |