summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md1
-rw-r--r--src/components/chatlist.cpp11
-rw-r--r--src/settings.cpp2
-rw-r--r--src/settings.hpp1
4 files changed, 13 insertions, 2 deletions
diff --git a/README.md b/README.md
index 828e044..0038f1f 100644
--- a/README.md
+++ b/README.md
@@ -299,6 +299,7 @@ For example, memory_db would be set by adding `memory_db = true` under the line
| `save_state` | boolean | true | save the state of the gui (active channels, tabs, expanded channels) |
| `alt_menu` | boolean | false | keep the menu hidden unless revealed with alt key |
| `hide_to_tray` | boolean | false | hide abaddon to the system tray on window close |
+| `show_deleted_indicator` | boolean | true | show \[deleted\] indicator next to deleted messages instead of actually deleting the message |
| `font_scale` | double | | scale font rendering. 1 is unchanged |
#### style
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]