summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--.gitignore4
-rw-r--r--CHANGELOG.md3
-rw-r--r--resources/langs/nheko_de.ts19
-rw-r--r--resources/langs/nheko_el.ts19
-rw-r--r--resources/langs/nheko_en.ts19
-rw-r--r--resources/langs/nheko_fi.ts19
-rw-r--r--resources/langs/nheko_fr.ts19
-rw-r--r--resources/langs/nheko_ja.ts19
-rw-r--r--resources/langs/nheko_nl.ts19
-rw-r--r--resources/langs/nheko_pl.ts19
-rw-r--r--resources/langs/nheko_ru.ts19
-rw-r--r--resources/langs/nheko_zh_CN.ts19
-rw-r--r--src/ChatPage.h1
-rw-r--r--src/MainWindow.cpp4
-rw-r--r--src/Olm.cpp2
-rw-r--r--src/UserSettingsPage.cpp11
-rw-r--r--src/UserSettingsPage.h10
-rw-r--r--src/Utils.cpp5
-rw-r--r--src/Utils.h1
-rw-r--r--src/timeline/TimelineModel.cpp26
-rw-r--r--src/timeline/TimelineModel.h4
-rw-r--r--src/timeline/TimelineViewManager.cpp21
-rw-r--r--src/timeline/TimelineViewManager.h1
23 files changed, 197 insertions, 86 deletions
diff --git a/.gitignore b/.gitignore
index 6d178679..5f6725db 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,6 +6,7 @@ cscope*
 /.ccls-cache
 /.exrc
 .gdb_history
+.hunter
 
 # GTAGS
 GTAGS
@@ -70,7 +71,8 @@ install_manifest.txt
 .LSOverride
 
 # Icon must end with two \r
-Icon


+Icon
+
 
 # Thumbnails
 ._*
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 816c757e..e90dce89 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -10,8 +10,9 @@
 
 - Fix display of images sent by the user (thank you, wnereiz and not-chicken for reporting)
 - Fix crash when trying to maximize image, that wasn't downloaded yet.
-- Fix Binding restorMode flooding logs on Qt 5.14.2+
+- Fix Binding restoreMode flooding logs on Qt 5.14.2+
 - Fix with some qml styles hidden menu items leave empty space
+- Fix encrypted messages not showing a user in the sidebar
 - Fix hangs when generating colors with some system theme color schemes (#172)
 
 ## [0.7.0] -- 2020-04-19
diff --git a/resources/langs/nheko_de.ts b/resources/langs/nheko_de.ts
index 259b5c86..a97c3fb3 100644
--- a/resources/langs/nheko_de.ts
+++ b/resources/langs/nheko_de.ts
@@ -471,7 +471,7 @@
 <context>
     <name>TimelineModel</name>
     <message>
-        <location filename="../../src/timeline/TimelineModel.cpp" line="+754"/>
+        <location filename="../../src/timeline/TimelineModel.cpp" line="+766"/>
         <source>-- Decryption Error (failed to communicate with DB) --</source>
         <comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed when trying to lookup the session.</comment>
         <translation>-- Entschlüsselungsfehler (Fehler bei Kommunikation mit Datenbank) --</translation>
@@ -779,7 +779,7 @@
 <context>
     <name>UserSettingsPage</name>
     <message>
-        <location filename="../../src/UserSettingsPage.cpp" line="+333"/>
+        <location filename="../../src/UserSettingsPage.cpp" line="+335"/>
         <source>Minimize to tray</source>
         <translation>Ins Benachrichtigungsfeld minimieren</translation>
     </message>
@@ -800,6 +800,11 @@
     </message>
     <message>
         <location line="+2"/>
+        <source>Decrypt messages in sidebar</source>
+        <translation>Entschlüssele Nachrichten in der Raumliste</translation>
+    </message>
+    <message>
+        <location line="+1"/>
         <source>Show buttons in timeline</source>
         <translation type="unfinished"></translation>
     </message>
@@ -859,7 +864,7 @@
         <translation>Gerätefingerabdruck</translation>
     </message>
     <message>
-        <location line="-58"/>
+        <location line="-59"/>
         <source>Session Keys</source>
         <translation>Sitzungsschlüssel</translation>
     </message>
@@ -879,22 +884,22 @@
         <translation>VERSCHLÜSSELUNG</translation>
     </message>
     <message>
-        <location line="-62"/>
+        <location line="-63"/>
         <source>GENERAL</source>
         <translation>ALLGEMEINES</translation>
     </message>
     <message>
-        <location line="+24"/>
+        <location line="+25"/>
         <source>INTERFACE</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+107"/>
+        <location line="+108"/>
         <source>Emoji Font Family</source>
         <translation>Emojischriftart</translation>
     </message>
     <message>
-        <location line="+152"/>
+        <location line="+158"/>
         <source>Open Sessions File</source>
         <translation>Öffne Sessions Datei</translation>
     </message>
diff --git a/resources/langs/nheko_el.ts b/resources/langs/nheko_el.ts
index 4ce7e6e4..1f4c355c 100644
--- a/resources/langs/nheko_el.ts
+++ b/resources/langs/nheko_el.ts
@@ -471,7 +471,7 @@
 <context>
     <name>TimelineModel</name>
     <message>
-        <location filename="../../src/timeline/TimelineModel.cpp" line="+754"/>
+        <location filename="../../src/timeline/TimelineModel.cpp" line="+766"/>
         <source>-- Decryption Error (failed to communicate with DB) --</source>
         <comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed when trying to lookup the session.</comment>
         <translation type="unfinished"></translation>
@@ -779,7 +779,7 @@
 <context>
     <name>UserSettingsPage</name>
     <message>
-        <location filename="../../src/UserSettingsPage.cpp" line="+333"/>
+        <location filename="../../src/UserSettingsPage.cpp" line="+335"/>
         <source>Minimize to tray</source>
         <translation>Ελαχιστοποίηση</translation>
     </message>
@@ -800,6 +800,11 @@
     </message>
     <message>
         <location line="+2"/>
+        <source>Decrypt messages in sidebar</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
         <source>Show buttons in timeline</source>
         <translation type="unfinished"></translation>
     </message>
@@ -859,7 +864,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-58"/>
+        <location line="-59"/>
         <source>Session Keys</source>
         <translation type="unfinished"></translation>
     </message>
@@ -879,22 +884,22 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-62"/>
+        <location line="-63"/>
         <source>GENERAL</source>
         <translation>ΓΕΝΙΚΑ</translation>
     </message>
     <message>
-        <location line="+24"/>
+        <location line="+25"/>
         <source>INTERFACE</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+107"/>
+        <location line="+108"/>
         <source>Emoji Font Family</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+152"/>
+        <location line="+158"/>
         <source>Open Sessions File</source>
         <translation type="unfinished"></translation>
     </message>
diff --git a/resources/langs/nheko_en.ts b/resources/langs/nheko_en.ts
index f7b3b093..52eb4a4c 100644
--- a/resources/langs/nheko_en.ts
+++ b/resources/langs/nheko_en.ts
@@ -471,7 +471,7 @@
 <context>
     <name>TimelineModel</name>
     <message>
-        <location filename="../../src/timeline/TimelineModel.cpp" line="+754"/>
+        <location filename="../../src/timeline/TimelineModel.cpp" line="+766"/>
         <source>-- Decryption Error (failed to communicate with DB) --</source>
         <comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed when trying to lookup the session.</comment>
         <translation>-- Decryption Error (failed to communicate with DB) --</translation>
@@ -779,7 +779,7 @@
 <context>
     <name>UserSettingsPage</name>
     <message>
-        <location filename="../../src/UserSettingsPage.cpp" line="+333"/>
+        <location filename="../../src/UserSettingsPage.cpp" line="+335"/>
         <source>Minimize to tray</source>
         <translation>Minimize to tray</translation>
     </message>
@@ -800,6 +800,11 @@
     </message>
     <message>
         <location line="+2"/>
+        <source>Decrypt messages in sidebar</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
         <source>Show buttons in timeline</source>
         <translation>Show buttons in timeline</translation>
     </message>
@@ -859,7 +864,7 @@
         <translation>Device Fingerprint</translation>
     </message>
     <message>
-        <location line="-58"/>
+        <location line="-59"/>
         <source>Session Keys</source>
         <translation>Session Keys</translation>
     </message>
@@ -879,22 +884,22 @@
         <translation>ENCRYPTION</translation>
     </message>
     <message>
-        <location line="-62"/>
+        <location line="-63"/>
         <source>GENERAL</source>
         <translation>GENERAL</translation>
     </message>
     <message>
-        <location line="+24"/>
+        <location line="+25"/>
         <source>INTERFACE</source>
         <translation>INTERFACE</translation>
     </message>
     <message>
-        <location line="+107"/>
+        <location line="+108"/>
         <source>Emoji Font Family</source>
         <translation>Emoji Font Family</translation>
     </message>
     <message>
-        <location line="+152"/>
+        <location line="+158"/>
         <source>Open Sessions File</source>
         <translation>Open Sessions File</translation>
     </message>
diff --git a/resources/langs/nheko_fi.ts b/resources/langs/nheko_fi.ts
index eab4771b..3ab797d8 100644
--- a/resources/langs/nheko_fi.ts
+++ b/resources/langs/nheko_fi.ts
@@ -471,7 +471,7 @@
 <context>
     <name>TimelineModel</name>
     <message>
-        <location filename="../../src/timeline/TimelineModel.cpp" line="+754"/>
+        <location filename="../../src/timeline/TimelineModel.cpp" line="+766"/>
         <source>-- Decryption Error (failed to communicate with DB) --</source>
         <comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed when trying to lookup the session.</comment>
         <translation type="unfinished">-- Virhe purkaessa salausta (tietokannan kanssa kommunikointi epäonnistui) --</translation>
@@ -779,7 +779,7 @@
 <context>
     <name>UserSettingsPage</name>
     <message>
-        <location filename="../../src/UserSettingsPage.cpp" line="+333"/>
+        <location filename="../../src/UserSettingsPage.cpp" line="+335"/>
         <source>Minimize to tray</source>
         <translation>Pienennä ilmoitusalueelle</translation>
     </message>
@@ -800,6 +800,11 @@
     </message>
     <message>
         <location line="+2"/>
+        <source>Decrypt messages in sidebar</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
         <source>Show buttons in timeline</source>
         <translation type="unfinished"></translation>
     </message>
@@ -859,7 +864,7 @@
         <translation>Laitteen sormenjälki</translation>
     </message>
     <message>
-        <location line="-58"/>
+        <location line="-59"/>
         <source>Session Keys</source>
         <translation>Istunnon avaimet</translation>
     </message>
@@ -879,22 +884,22 @@
         <translation>SALAUS</translation>
     </message>
     <message>
-        <location line="-62"/>
+        <location line="-63"/>
         <source>GENERAL</source>
         <translation>YLEISET ASETUKSET</translation>
     </message>
     <message>
-        <location line="+24"/>
+        <location line="+25"/>
         <source>INTERFACE</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+107"/>
+        <location line="+108"/>
         <source>Emoji Font Family</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+152"/>
+        <location line="+158"/>
         <source>Open Sessions File</source>
         <translation>Avaa Istuntoavaintiedosto</translation>
     </message>
diff --git a/resources/langs/nheko_fr.ts b/resources/langs/nheko_fr.ts
index 472f8c7f..f90ff8c0 100644
--- a/resources/langs/nheko_fr.ts
+++ b/resources/langs/nheko_fr.ts
@@ -472,7 +472,7 @@
 <context>
     <name>TimelineModel</name>
     <message>
-        <location filename="../../src/timeline/TimelineModel.cpp" line="+754"/>
+        <location filename="../../src/timeline/TimelineModel.cpp" line="+766"/>
         <source>-- Decryption Error (failed to communicate with DB) --</source>
         <comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed when trying to lookup the session.</comment>
         <translation type="unfinished"></translation>
@@ -780,7 +780,7 @@
 <context>
     <name>UserSettingsPage</name>
     <message>
-        <location filename="../../src/UserSettingsPage.cpp" line="+333"/>
+        <location filename="../../src/UserSettingsPage.cpp" line="+335"/>
         <source>Minimize to tray</source>
         <translation>Réduire à la barre des tâches</translation>
     </message>
@@ -801,6 +801,11 @@
     </message>
     <message>
         <location line="+2"/>
+        <source>Decrypt messages in sidebar</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
         <source>Show buttons in timeline</source>
         <translation type="unfinished"></translation>
     </message>
@@ -860,7 +865,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-58"/>
+        <location line="-59"/>
         <source>Session Keys</source>
         <translation type="unfinished"></translation>
     </message>
@@ -880,22 +885,22 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-62"/>
+        <location line="-63"/>
         <source>GENERAL</source>
         <translation>GÉNÉRAL</translation>
     </message>
     <message>
-        <location line="+24"/>
+        <location line="+25"/>
         <source>INTERFACE</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+107"/>
+        <location line="+108"/>
         <source>Emoji Font Family</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+152"/>
+        <location line="+158"/>
         <source>Open Sessions File</source>
         <translation type="unfinished"></translation>
     </message>
diff --git a/resources/langs/nheko_ja.ts b/resources/langs/nheko_ja.ts
index d3194b42..884ca357 100644
--- a/resources/langs/nheko_ja.ts
+++ b/resources/langs/nheko_ja.ts
@@ -471,7 +471,7 @@
 <context>
     <name>TimelineModel</name>
     <message>
-        <location filename="../../src/timeline/TimelineModel.cpp" line="+754"/>
+        <location filename="../../src/timeline/TimelineModel.cpp" line="+766"/>
         <source>-- Decryption Error (failed to communicate with DB) --</source>
         <comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed when trying to lookup the session.</comment>
         <translation>-- 復号エラー (データベースと通信できませんでした) --</translation>
@@ -778,7 +778,7 @@
 <context>
     <name>UserSettingsPage</name>
     <message>
-        <location filename="../../src/UserSettingsPage.cpp" line="+333"/>
+        <location filename="../../src/UserSettingsPage.cpp" line="+335"/>
         <source>Minimize to tray</source>
         <translation>トレイへ最小化</translation>
     </message>
@@ -799,6 +799,11 @@
     </message>
     <message>
         <location line="+2"/>
+        <source>Decrypt messages in sidebar</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
         <source>Show buttons in timeline</source>
         <translation type="unfinished"></translation>
     </message>
@@ -858,7 +863,7 @@
         <translation>デバイスの指紋</translation>
     </message>
     <message>
-        <location line="-58"/>
+        <location line="-59"/>
         <source>Session Keys</source>
         <translation>セッション鍵</translation>
     </message>
@@ -878,22 +883,22 @@
         <translation>暗号化</translation>
     </message>
     <message>
-        <location line="-62"/>
+        <location line="-63"/>
         <source>GENERAL</source>
         <translation>全般</translation>
     </message>
     <message>
-        <location line="+24"/>
+        <location line="+25"/>
         <source>INTERFACE</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+107"/>
+        <location line="+108"/>
         <source>Emoji Font Family</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+152"/>
+        <location line="+158"/>
         <source>Open Sessions File</source>
         <translation>セッションファイルを開く</translation>
     </message>
diff --git a/resources/langs/nheko_nl.ts b/resources/langs/nheko_nl.ts
index cb4f68e8..88b25e7f 100644
--- a/resources/langs/nheko_nl.ts
+++ b/resources/langs/nheko_nl.ts
@@ -471,7 +471,7 @@
 <context>
     <name>TimelineModel</name>
     <message>
-        <location filename="../../src/timeline/TimelineModel.cpp" line="+754"/>
+        <location filename="../../src/timeline/TimelineModel.cpp" line="+766"/>
         <source>-- Decryption Error (failed to communicate with DB) --</source>
         <comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed when trying to lookup the session.</comment>
         <translation type="unfinished"></translation>
@@ -779,7 +779,7 @@
 <context>
     <name>UserSettingsPage</name>
     <message>
-        <location filename="../../src/UserSettingsPage.cpp" line="+333"/>
+        <location filename="../../src/UserSettingsPage.cpp" line="+335"/>
         <source>Minimize to tray</source>
         <translation>Minimaliseren naar systeemvak</translation>
     </message>
@@ -800,6 +800,11 @@
     </message>
     <message>
         <location line="+2"/>
+        <source>Decrypt messages in sidebar</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
         <source>Show buttons in timeline</source>
         <translation type="unfinished"></translation>
     </message>
@@ -859,7 +864,7 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-58"/>
+        <location line="-59"/>
         <source>Session Keys</source>
         <translation type="unfinished"></translation>
     </message>
@@ -879,22 +884,22 @@
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="-62"/>
+        <location line="-63"/>
         <source>GENERAL</source>
         <translation>ALGEMEEN</translation>
     </message>
     <message>
-        <location line="+24"/>
+        <location line="+25"/>
         <source>INTERFACE</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+107"/>
+        <location line="+108"/>
         <source>Emoji Font Family</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+152"/>
+        <location line="+158"/>
         <source>Open Sessions File</source>
         <translation type="unfinished"></translation>
     </message>
diff --git a/resources/langs/nheko_pl.ts b/resources/langs/nheko_pl.ts
index 9fb3bae6..749e172b 100644
--- a/resources/langs/nheko_pl.ts
+++ b/resources/langs/nheko_pl.ts
@@ -471,7 +471,7 @@
 <context>
     <name>TimelineModel</name>
     <message>
-        <location filename="../../src/timeline/TimelineModel.cpp" line="+754"/>
+        <location filename="../../src/timeline/TimelineModel.cpp" line="+766"/>
         <source>-- Decryption Error (failed to communicate with DB) --</source>
         <comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed when trying to lookup the session.</comment>
         <translation type="unfinished"></translation>
@@ -780,7 +780,7 @@
 <context>
     <name>UserSettingsPage</name>
     <message>
-        <location filename="../../src/UserSettingsPage.cpp" line="+333"/>
+        <location filename="../../src/UserSettingsPage.cpp" line="+335"/>
         <source>Minimize to tray</source>
         <translation>Zminimalizuj do paska zadań</translation>
     </message>
@@ -801,6 +801,11 @@
     </message>
     <message>
         <location line="+2"/>
+        <source>Decrypt messages in sidebar</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
         <source>Show buttons in timeline</source>
         <translation type="unfinished"></translation>
     </message>
@@ -860,7 +865,7 @@
         <translation>Odcisk palca urządzenia</translation>
     </message>
     <message>
-        <location line="-58"/>
+        <location line="-59"/>
         <source>Session Keys</source>
         <translation type="unfinished"></translation>
     </message>
@@ -880,22 +885,22 @@
         <translation>SZYFROWANIE</translation>
     </message>
     <message>
-        <location line="-62"/>
+        <location line="-63"/>
         <source>GENERAL</source>
         <translation>OGÓLNE</translation>
     </message>
     <message>
-        <location line="+24"/>
+        <location line="+25"/>
         <source>INTERFACE</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+107"/>
+        <location line="+108"/>
         <source>Emoji Font Family</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+152"/>
+        <location line="+158"/>
         <source>Open Sessions File</source>
         <translation type="unfinished"></translation>
     </message>
diff --git a/resources/langs/nheko_ru.ts b/resources/langs/nheko_ru.ts
index f48fccf3..05240613 100644
--- a/resources/langs/nheko_ru.ts
+++ b/resources/langs/nheko_ru.ts
@@ -471,7 +471,7 @@
 <context>
     <name>TimelineModel</name>
     <message>
-        <location filename="../../src/timeline/TimelineModel.cpp" line="+754"/>
+        <location filename="../../src/timeline/TimelineModel.cpp" line="+766"/>
         <source>-- Decryption Error (failed to communicate with DB) --</source>
         <comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed when trying to lookup the session.</comment>
         <translation type="unfinished"></translation>
@@ -780,7 +780,7 @@
 <context>
     <name>UserSettingsPage</name>
     <message>
-        <location filename="../../src/UserSettingsPage.cpp" line="+333"/>
+        <location filename="../../src/UserSettingsPage.cpp" line="+335"/>
         <source>Minimize to tray</source>
         <translation>Сворачивать в системную панель</translation>
     </message>
@@ -801,6 +801,11 @@
     </message>
     <message>
         <location line="+2"/>
+        <source>Decrypt messages in sidebar</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
         <source>Show buttons in timeline</source>
         <translation type="unfinished"></translation>
     </message>
@@ -860,7 +865,7 @@
         <translation>Отпечаток устройства</translation>
     </message>
     <message>
-        <location line="-58"/>
+        <location line="-59"/>
         <source>Session Keys</source>
         <translation>Ключи сеанса</translation>
     </message>
@@ -880,22 +885,22 @@
         <translation>ШИФРОВАНИЕ</translation>
     </message>
     <message>
-        <location line="-62"/>
+        <location line="-63"/>
         <source>GENERAL</source>
         <translation>ГЛАВНОЕ</translation>
     </message>
     <message>
-        <location line="+24"/>
+        <location line="+25"/>
         <source>INTERFACE</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+107"/>
+        <location line="+108"/>
         <source>Emoji Font Family</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+152"/>
+        <location line="+158"/>
         <source>Open Sessions File</source>
         <translation>Открыть файл сеансов</translation>
     </message>
diff --git a/resources/langs/nheko_zh_CN.ts b/resources/langs/nheko_zh_CN.ts
index 63b67734..b6fe6d1d 100644
--- a/resources/langs/nheko_zh_CN.ts
+++ b/resources/langs/nheko_zh_CN.ts
@@ -471,7 +471,7 @@
 <context>
     <name>TimelineModel</name>
     <message>
-        <location filename="../../src/timeline/TimelineModel.cpp" line="+754"/>
+        <location filename="../../src/timeline/TimelineModel.cpp" line="+766"/>
         <source>-- Decryption Error (failed to communicate with DB) --</source>
         <comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed when trying to lookup the session.</comment>
         <translation type="unfinished"></translation>
@@ -778,7 +778,7 @@
 <context>
     <name>UserSettingsPage</name>
     <message>
-        <location filename="../../src/UserSettingsPage.cpp" line="+333"/>
+        <location filename="../../src/UserSettingsPage.cpp" line="+335"/>
         <source>Minimize to tray</source>
         <translation>最小化至托盘</translation>
     </message>
@@ -799,6 +799,11 @@
     </message>
     <message>
         <location line="+2"/>
+        <source>Decrypt messages in sidebar</source>
+        <translation type="unfinished"></translation>
+    </message>
+    <message>
+        <location line="+1"/>
         <source>Show buttons in timeline</source>
         <translation type="unfinished"></translation>
     </message>
@@ -858,7 +863,7 @@
         <translation>设备指纹</translation>
     </message>
     <message>
-        <location line="-58"/>
+        <location line="-59"/>
         <source>Session Keys</source>
         <translation>会话密钥</translation>
     </message>
@@ -878,22 +883,22 @@
         <translation>加密</translation>
     </message>
     <message>
-        <location line="-62"/>
+        <location line="-63"/>
         <source>GENERAL</source>
         <translation>通用</translation>
     </message>
     <message>
-        <location line="+24"/>
+        <location line="+25"/>
         <source>INTERFACE</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+107"/>
+        <location line="+108"/>
         <source>Emoji Font Family</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location line="+152"/>
+        <location line="+158"/>
         <source>Open Sessions File</source>
         <translation>打开会话文件</translation>
     </message>
diff --git a/src/ChatPage.h b/src/ChatPage.h
index 5182ab99..46630692 100644
--- a/src/ChatPage.h
+++ b/src/ChatPage.h
@@ -153,6 +153,7 @@ signals:
 
         void updateGroupsInfo(const mtx::responses::JoinedGroups &groups);
         void themeChanged();
+        void decryptSidebarChanged();
 
 private slots:
         void showUnreadMessageNotification(int count);
diff --git a/src/MainWindow.cpp b/src/MainWindow.cpp
index fb64f0fe..c6abdca2 100644
--- a/src/MainWindow.cpp
+++ b/src/MainWindow.cpp
@@ -117,6 +117,10 @@ MainWindow::MainWindow(QWidget *parent)
           userSettingsPage_, SIGNAL(trayOptionChanged(bool)), trayIcon_, SLOT(setVisible(bool)));
         connect(
           userSettingsPage_, &UserSettingsPage::themeChanged, chat_page_, &ChatPage::themeChanged);
+        connect(userSettingsPage_,
+                &UserSettingsPage::decryptSidebarChanged,
+                chat_page_,
+                &ChatPage::decryptSidebarChanged);
         connect(trayIcon_,
                 SIGNAL(activated(QSystemTrayIcon::ActivationReason)),
                 this,
diff --git a/src/Olm.cpp b/src/Olm.cpp
index 78b16be7..c8e4c13c 100644
--- a/src/Olm.cpp
+++ b/src/Olm.cpp
@@ -184,7 +184,7 @@ encrypt_group_message(const std::string &room_id, const std::string &device_id,
         data.relates_to = relation;
 
         auto message_index = olm_outbound_group_session_message_index(res.session);
-        nhlog::crypto()->info("next message_index {}", message_index);
+        nhlog::crypto()->debug("next message_index {}", message_index);
 
         // We need to re-pickle the session after we send a message to save the new message_index.
         cache::updateOutboundMegolmSession(room_id, message_index);
diff --git a/src/UserSettingsPage.cpp b/src/UserSettingsPage.cpp
index b4f4cb45..4db883f5 100644
--- a/src/UserSettingsPage.cpp
+++ b/src/UserSettingsPage.cpp
@@ -63,6 +63,7 @@ UserSettings::load()
         theme_                        = settings.value("user/theme", defaultTheme_).toString();
         font_                         = settings.value("user/font_family", "default").toString();
         avatarCircles_                = settings.value("user/avatar_circles", true).toBool();
+        decryptSidebar_               = settings.value("user/decrypt_sidebar", true).toBool();
         emojiFont_    = settings.value("user/emoji_font_family", "default").toString();
         baseFontSize_ = settings.value("user/font_size", QFont().pointSizeF()).toDouble();
 
@@ -167,7 +168,7 @@ UserSettings::save()
         settings.endGroup();
 
         settings.setValue("avatar_circles", avatarCircles_);
-
+        settings.setValue("decrypt_sidebar", decryptSidebar_);
         settings.setValue("font_size", baseFontSize_);
         settings.setValue("typing_notifications", isTypingNotificationsEnabled_);
         settings.setValue("minor_events", sortByImportance_);
@@ -230,6 +231,7 @@ UserSettingsPage::UserSettingsPage(QSharedPointer<UserSettings> settings, QWidge
         trayToggle_              = new Toggle{this};
         startInTrayToggle_       = new Toggle{this};
         avatarCircles_           = new Toggle{this};
+        decryptSidebar_          = new Toggle(this);
         groupViewToggle_         = new Toggle{this};
         timelineButtonsToggle_   = new Toggle{this};
         typingNotifications_     = new Toggle{this};
@@ -335,6 +337,7 @@ UserSettingsPage::UserSettingsPage(QSharedPointer<UserSettings> settings, QWidge
         formLayout_->addRow(new HorizontalLine{this});
         boxWrap(tr("Circular Avatars"), avatarCircles_);
         boxWrap(tr("Group's sidebar"), groupViewToggle_);
+        boxWrap(tr("Decrypt messages in sidebar"), decryptSidebar_);
         boxWrap(tr("Show buttons in timeline"), timelineButtonsToggle_);
         boxWrap(tr("Typing notifications"), typingNotifications_);
         boxWrap(tr("Sort rooms by unreads"), sortByImportance_);
@@ -427,6 +430,11 @@ UserSettingsPage::UserSettingsPage(QSharedPointer<UserSettings> settings, QWidge
                 settings_->setGroupView(!isDisabled);
         });
 
+        connect(decryptSidebar_, &Toggle::toggled, this, [this](bool isDisabled) {
+                settings_->setDecryptSidebar(!isDisabled);
+                emit decryptSidebarChanged();
+        });
+
         connect(avatarCircles_, &Toggle::toggled, this, [this](bool isDisabled) {
                 settings_->setAvatarCircles(!isDisabled);
         });
@@ -479,6 +487,7 @@ UserSettingsPage::showEvent(QShowEvent *)
         trayToggle_->setState(!settings_->isTrayEnabled());
         startInTrayToggle_->setState(!settings_->isStartInTrayEnabled());
         groupViewToggle_->setState(!settings_->isGroupViewEnabled());
+        decryptSidebar_->setState(!settings_->isDecryptSidebarEnabled());
         avatarCircles_->setState(!settings_->isAvatarCirclesEnabled());
         typingNotifications_->setState(!settings_->isTypingNotificationsEnabled());
         sortByImportance_->setState(!settings_->isSortByImportanceEnabled());
diff --git a/src/UserSettingsPage.h b/src/UserSettingsPage.h
index 1c20214e..6b9834ea 100644
--- a/src/UserSettingsPage.h
+++ b/src/UserSettingsPage.h
@@ -111,11 +111,18 @@ public:
                 save();
         }
 
+        void setDecryptSidebar(bool state)
+        {
+                decryptSidebar_ = state;
+                save();
+        }
+
         QString theme() const { return !theme_.isEmpty() ? theme_ : defaultTheme_; }
         bool isTrayEnabled() const { return isTrayEnabled_; }
         bool isStartInTrayEnabled() const { return isStartInTrayEnabled_; }
         bool isGroupViewEnabled() const { return isGroupViewEnabled_; }
         bool isAvatarCirclesEnabled() const { return avatarCircles_; }
+        bool isDecryptSidebarEnabled() const { return decryptSidebar_; }
         bool isMarkdownEnabled() const { return isMarkdownEnabled_; }
         bool isTypingNotificationsEnabled() const { return isTypingNotificationsEnabled_; }
         bool isSortByImportanceEnabled() const { return sortByImportance_; }
@@ -147,6 +154,7 @@ private:
         bool isReadReceiptsEnabled_;
         bool hasDesktopNotifications_;
         bool avatarCircles_;
+        bool decryptSidebar_;
         double baseFontSize_;
         QString font_;
         QString emojiFont_;
@@ -175,6 +183,7 @@ signals:
         void moveBack();
         void trayOptionChanged(bool value);
         void themeChanged();
+        void decryptSidebarChanged();
 
 private slots:
         void importSessionKeys();
@@ -199,6 +208,7 @@ private:
         Toggle *markdownEnabled_;
         Toggle *desktopNotifications_;
         Toggle *avatarCircles_;
+        Toggle *decryptSidebar_;
         QLabel *deviceFingerprintValue_;
         QLabel *deviceIdValue_;
 
diff --git a/src/Utils.cpp b/src/Utils.cpp
index 62a1a3c8..cd615c24 100644
--- a/src/Utils.cpp
+++ b/src/Utils.cpp
@@ -179,8 +179,9 @@ utils::getMessageDescription(const TimelineEvent &event,
                 const auto ts       = QDateTime::fromMSecsSinceEpoch(msg->origin_server_ts);
 
                 DescInfo info;
-                info.userid    = sender;
-                info.body      = QString(" %1").arg(messageDescription<Encrypted>());
+                info.userid = sender;
+                info.body   = QString(" %1").arg(
+                  messageDescription<Encrypted>(username, "", sender == localUser));
                 info.timestamp = utils::descriptiveTime(ts);
                 info.event_id  = QString::fromStdString(msg->event_id);
                 info.datetime  = ts;
diff --git a/src/Utils.h b/src/Utils.h
index a3854dd8..663d5a38 100644
--- a/src/Utils.h
+++ b/src/Utils.h
@@ -306,5 +306,4 @@ centerWidget(QWidget *widget, QWidget *parent);
 
 void
 restoreCombobox(QComboBox *combo, const QString &value);
-
 }
diff --git a/src/timeline/TimelineModel.cpp b/src/timeline/TimelineModel.cpp
index bb793945..e3a1a781 100644
--- a/src/timeline/TimelineModel.cpp
+++ b/src/timeline/TimelineModel.cpp
@@ -8,6 +8,7 @@
 #include <QFileDialog>
 #include <QMimeDatabase>
 #include <QRegularExpression>
+#include <QSettings>
 #include <QStandardPaths>
 
 #include "ChatPage.h"
@@ -476,14 +477,14 @@ TimelineModel::addEvents(const mtx::responses::Timeline &timeline)
 
         std::vector<QString> ids = internalAddEvents(timeline.events);
 
-        if (ids.empty())
-                return;
-
-        beginInsertRows(QModelIndex(), 0, static_cast<int>(ids.size() - 1));
-        this->eventOrder.insert(this->eventOrder.begin(), ids.rbegin(), ids.rend());
-        endInsertRows();
+        if (!ids.empty()) {
+                beginInsertRows(QModelIndex(), 0, static_cast<int>(ids.size() - 1));
+                this->eventOrder.insert(this->eventOrder.begin(), ids.rbegin(), ids.rend());
+                endInsertRows();
+        }
 
-        updateLastMessage();
+        if (!timeline.events.empty())
+                updateLastMessage();
 }
 
 template<typename T>
@@ -501,6 +502,13 @@ isMessage(const mtx::events::Event<T> &)
         return false;
 }
 
+template<typename T>
+auto
+isMessage(const mtx::events::EncryptedEvent<T> &)
+{
+        return true;
+}
+
 void
 TimelineModel::updateLastMessage()
 {
@@ -508,7 +516,9 @@ TimelineModel::updateLastMessage()
                 auto event = events.value(*it);
                 if (auto e = std::get_if<mtx::events::EncryptedEvent<mtx::events::msg::Encrypted>>(
                       &event)) {
-                        event = decryptEvent(*e).event;
+                        if (decryptDescription) {
+                                event = decryptEvent(*e).event;
+                        }
                 }
 
                 if (!std::visit([](const auto &e) -> bool { return isMessage(e); }, event))
diff --git a/src/timeline/TimelineModel.h b/src/timeline/TimelineModel.h
index 84e9ec26..ae468c09 100644
--- a/src/timeline/TimelineModel.h
+++ b/src/timeline/TimelineModel.h
@@ -189,6 +189,7 @@ public:
         Q_INVOKABLE void cacheMedia(QString eventId);
         Q_INVOKABLE bool saveMedia(QString eventId) const;
 
+        void updateLastMessage();
         void addEvents(const mtx::responses::Timeline &events);
         template<class T>
         void sendMessage(const T &msg);
@@ -223,6 +224,7 @@ public slots:
                         emit replyChanged(reply_);
                 }
         }
+        void setDecryptDescription(bool decrypt) { decryptDescription = decrypt; }
 
 private slots:
         // Add old events at the top of the timeline.
@@ -257,7 +259,6 @@ private:
                                const std::string &user_id,
                                const mtx::responses::ClaimKeys &res,
                                mtx::http::RequestErr err);
-        void updateLastMessage();
         void readEvent(const std::string &id);
 
         QHash<QString, mtx::events::collections::TimelineEvents> events;
@@ -270,6 +271,7 @@ private:
 
         bool isInitialSync        = true;
         bool paginationInProgress = false;
+        bool decryptDescription   = true;
 
         QString currentId;
         QString reply_;
diff --git a/src/timeline/TimelineViewManager.cpp b/src/timeline/TimelineViewManager.cpp
index 0a339825..b9565be8 100644
--- a/src/timeline/TimelineViewManager.cpp
+++ b/src/timeline/TimelineViewManager.cpp
@@ -17,6 +17,21 @@
 Q_DECLARE_METATYPE(mtx::events::collections::TimelineEvents)
 
 void
+TimelineViewManager::updateEncryptedDescriptions()
+{
+        auto decrypt = settings->isDecryptSidebarEnabled();
+        QHash<QString, QSharedPointer<TimelineModel>>::iterator i;
+        for (i = models.begin(); i != models.end(); ++i) {
+                auto ptr = i.value();
+
+                if (!ptr.isNull()) {
+                        ptr->setDecryptDescription(decrypt);
+                        ptr->updateLastMessage();
+                }
+        }
+}
+
+void
 TimelineViewManager::updateColorPalette()
 {
         userColors.clear();
@@ -83,6 +98,10 @@ TimelineViewManager::TimelineViewManager(QSharedPointer<UserSettings> userSettin
                 &ChatPage::themeChanged,
                 this,
                 &TimelineViewManager::updateColorPalette);
+        connect(dynamic_cast<ChatPage *>(parent),
+                &ChatPage::decryptSidebarChanged,
+                this,
+                &TimelineViewManager::updateEncryptedDescriptions);
 }
 
 void
@@ -114,6 +133,8 @@ TimelineViewManager::addRoom(const QString &room_id)
 {
         if (!models.contains(room_id)) {
                 QSharedPointer<TimelineModel> newRoom(new TimelineModel(this, room_id));
+                newRoom->setDecryptDescription(settings->isDecryptSidebarEnabled());
+
                 connect(newRoom.data(),
                         &TimelineModel::newEncryptedImage,
                         imgProvider,
diff --git a/src/timeline/TimelineViewManager.h b/src/timeline/TimelineViewManager.h
index 122e4aec..45a603af 100644
--- a/src/timeline/TimelineViewManager.h
+++ b/src/timeline/TimelineViewManager.h
@@ -84,6 +84,7 @@ public slots:
                                const QString &url,
                                const QString &mime,
                                uint64_t dsize);
+        void updateEncryptedDescriptions();
 
 private:
 #ifdef USE_QUICK_VIEW