Add menu entry to show decrypted source

Also make hidden entries not consume space in Menus with some qml
styles.
This commit is contained in:
Nicolas Werner 2020-04-21 22:32:45 +02:00
parent 69c8476cb7
commit 0e1bb5137b
15 changed files with 203 additions and 126 deletions

View file

@ -2,11 +2,16 @@
## [0.7.1] -- unreleased ## [0.7.1] -- unreleased
### Features
- Show decrypted message source (helps debugging)
### Bugfixes ### Bugfixes
- Fix display of images sent by the user (thank you, wnereiz and not-chicken for reporting) - 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 crash when trying to maximize image, that wasn't downloaded yet.
- Fix Binding restorMode flooding logs on Qt 5.14.2+ - Fix Binding restorMode flooding logs on Qt 5.14.2+
- Fix with some qml styles hidden menu items leave empty space
## [0.7.0] -- 2020-04-19 ## [0.7.0] -- 2020-04-19

View file

@ -327,12 +327,12 @@
<translation>REGISTRIEREN</translation> <translation>REGISTRIEREN</translation>
</message> </message>
<message> <message>
<location line="+54"/> <location line="+55"/>
<source>No supported registration flows!</source> <source>No supported registration flows!</source>
<translation>Keine unterstützten Registrierungsmethoden!</translation> <translation>Keine unterstützten Registrierungsmethoden!</translation>
</message> </message>
<message> <message>
<location line="+132"/> <location line="+135"/>
<source>Invalid username</source> <source>Invalid username</source>
<translation>Ungültiger Benutzername</translation> <translation>Ungültiger Benutzername</translation>
</message> </message>
@ -471,30 +471,30 @@
<context> <context>
<name>TimelineModel</name> <name>TimelineModel</name>
<message> <message>
<location filename="../../src/timeline/TimelineModel.cpp" line="+733"/> <location filename="../../src/timeline/TimelineModel.cpp" line="+754"/>
<source>-- Decryption Error (failed to communicate with DB) --</source> <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> <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> <translation>-- Entschlüsselungsfehler (Fehler bei Kommunikation mit Datenbank) --</translation>
</message> </message>
<message> <message>
<location line="+19"/> <location line="+20"/>
<source>-- Decryption Error (failed to retrieve megolm keys from db) --</source> <source>-- Decryption Error (failed to retrieve megolm keys from db) --</source>
<comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed.</comment> <comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed.</comment>
<translation>-- Entschlüsselungsfehler (Fehler bei Suche nach megolm Schlüsseln in Datenbank) --</translation> <translation>-- Entschlüsselungsfehler (Fehler bei Suche nach megolm Schlüsseln in Datenbank) --</translation>
</message> </message>
<message> <message>
<location line="+12"/> <location line="+13"/>
<source>-- Decryption Error (%1) --</source> <source>-- Decryption Error (%1) --</source>
<comment>Placeholder, when the message can&apos;t be decrypted. In this case, the Olm decrytion returned an error, which is passed ad %1.</comment> <comment>Placeholder, when the message can&apos;t be decrypted. In this case, the Olm decrytion returned an error, which is passed ad %1.</comment>
<translation>-- Entschlüsselungsfehler (%1) --</translation> <translation>-- Entschlüsselungsfehler (%1) --</translation>
</message> </message>
<message> <message>
<location line="+85"/> <location line="+89"/>
<source>Message redaction failed: %1</source> <source>Message redaction failed: %1</source>
<translation>Nachricht zurückziehen fehlgeschlagen: %1</translation> <translation>Nachricht zurückziehen fehlgeschlagen: %1</translation>
</message> </message>
<message> <message>
<location line="+454"/> <location line="+455"/>
<source>Save image</source> <source>Save image</source>
<translation>Bild speichern</translation> <translation>Bild speichern</translation>
</message> </message>
@ -514,19 +514,19 @@
<translation>Datei speichern</translation> <translation>Datei speichern</translation>
</message> </message>
<message> <message>
<location line="-591"/> <location line="-600"/>
<source>-- Encrypted Event (No keys found for decryption) --</source> <source>-- Encrypted Event (No keys found for decryption) --</source>
<comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment> <comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment>
<translation>-- Verschlüsseltes Event (keine Schlüssel zur Entschlüsselung gefunden) --</translation> <translation>-- Verschlüsseltes Event (keine Schlüssel zur Entschlüsselung gefunden) --</translation>
</message> </message>
<message> <message>
<location line="+75"/> <location line="+82"/>
<source>-- Encrypted Event (Unknown event type) --</source> <source>-- Encrypted Event (Unknown event type) --</source>
<comment>Placeholder, when the message was decrypted, but we couldn&apos;t parse it, because Nheko/mtxclient don&apos;t support that event type yet.</comment> <comment>Placeholder, when the message was decrypted, but we couldn&apos;t parse it, because Nheko/mtxclient don&apos;t support that event type yet.</comment>
<translation>-- Verschlüsseltes Event (Unbekannter Eventtyp) --</translation> <translation>-- Verschlüsseltes Event (Unbekannter Eventtyp) --</translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location line="+648"/> <location line="+650"/>
<source>%1 and %2 are typing.</source> <source>%1 and %2 are typing.</source>
<comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment> <comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment>
<translation> <translation>
@ -677,7 +677,7 @@
<context> <context>
<name>TimelineView</name> <name>TimelineView</name>
<message> <message>
<location filename="../qml/TimelineView.qml" line="+46"/> <location filename="../qml/TimelineView.qml" line="+48"/>
<source>Reply</source> <source>Reply</source>
<translation>Antworten</translation> <translation>Antworten</translation>
</message> </message>
@ -694,7 +694,12 @@
<message> <message>
<location line="+3"/> <location line="+3"/>
<source>View raw message</source> <source>View raw message</source>
<translation type="unfinished">Zeige rohen Nachrichteninhalt</translation> <translation>Zeige rohen Nachrichteninhalt</translation>
</message>
<message>
<location line="+6"/>
<source>View decrypted raw message</source>
<translation>Zeige rohen, entschlüsselten Nachrichteninhalt</translation>
</message> </message>
<message> <message>
<location line="+4"/> <location line="+4"/>
@ -702,7 +707,7 @@
<translation>Nachricht löschen</translation> <translation>Nachricht löschen</translation>
</message> </message>
<message> <message>
<location line="+5"/> <location line="+6"/>
<source>Save as</source> <source>Save as</source>
<translation>Speichern unter...</translation> <translation>Speichern unter...</translation>
</message> </message>

View file

@ -327,12 +327,12 @@
<translation>ΕΓΓΡΑΦΗ</translation> <translation>ΕΓΓΡΑΦΗ</translation>
</message> </message>
<message> <message>
<location line="+54"/> <location line="+55"/>
<source>No supported registration flows!</source> <source>No supported registration flows!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+132"/> <location line="+135"/>
<source>Invalid username</source> <source>Invalid username</source>
<translation>Μη έγκυρο όνομα χρήστη</translation> <translation>Μη έγκυρο όνομα χρήστη</translation>
</message> </message>
@ -471,30 +471,30 @@
<context> <context>
<name>TimelineModel</name> <name>TimelineModel</name>
<message> <message>
<location filename="../../src/timeline/TimelineModel.cpp" line="+733"/> <location filename="../../src/timeline/TimelineModel.cpp" line="+754"/>
<source>-- Decryption Error (failed to communicate with DB) --</source> <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> <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> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+19"/> <location line="+20"/>
<source>-- Decryption Error (failed to retrieve megolm keys from db) --</source> <source>-- Decryption Error (failed to retrieve megolm keys from db) --</source>
<comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed.</comment> <comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed.</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+12"/> <location line="+13"/>
<source>-- Decryption Error (%1) --</source> <source>-- Decryption Error (%1) --</source>
<comment>Placeholder, when the message can&apos;t be decrypted. In this case, the Olm decrytion returned an error, which is passed ad %1.</comment> <comment>Placeholder, when the message can&apos;t be decrypted. In this case, the Olm decrytion returned an error, which is passed ad %1.</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+85"/> <location line="+89"/>
<source>Message redaction failed: %1</source> <source>Message redaction failed: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+454"/> <location line="+455"/>
<source>Save image</source> <source>Save image</source>
<translation type="unfinished">Αποθήκευση Εικόνας</translation> <translation type="unfinished">Αποθήκευση Εικόνας</translation>
</message> </message>
@ -514,19 +514,19 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-591"/> <location line="-600"/>
<source>-- Encrypted Event (No keys found for decryption) --</source> <source>-- Encrypted Event (No keys found for decryption) --</source>
<comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment> <comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+75"/> <location line="+82"/>
<source>-- Encrypted Event (Unknown event type) --</source> <source>-- Encrypted Event (Unknown event type) --</source>
<comment>Placeholder, when the message was decrypted, but we couldn&apos;t parse it, because Nheko/mtxclient don&apos;t support that event type yet.</comment> <comment>Placeholder, when the message was decrypted, but we couldn&apos;t parse it, because Nheko/mtxclient don&apos;t support that event type yet.</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location line="+648"/> <location line="+650"/>
<source>%1 and %2 are typing.</source> <source>%1 and %2 are typing.</source>
<comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment> <comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment>
<translation type="unfinished"> <translation type="unfinished">
@ -677,7 +677,7 @@
<context> <context>
<name>TimelineView</name> <name>TimelineView</name>
<message> <message>
<location filename="../qml/TimelineView.qml" line="+46"/> <location filename="../qml/TimelineView.qml" line="+48"/>
<source>Reply</source> <source>Reply</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -696,13 +696,18 @@
<source>View raw message</source> <source>View raw message</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location line="+6"/>
<source>View decrypted raw message</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+4"/> <location line="+4"/>
<source>Redact message</source> <source>Redact message</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+5"/> <location line="+6"/>
<source>Save as</source> <source>Save as</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

View file

@ -327,12 +327,12 @@
<translation>REGISTER</translation> <translation>REGISTER</translation>
</message> </message>
<message> <message>
<location line="+54"/> <location line="+55"/>
<source>No supported registration flows!</source> <source>No supported registration flows!</source>
<translation>No supported registration flows!</translation> <translation>No supported registration flows!</translation>
</message> </message>
<message> <message>
<location line="+132"/> <location line="+135"/>
<source>Invalid username</source> <source>Invalid username</source>
<translation>Invalid username</translation> <translation>Invalid username</translation>
</message> </message>
@ -471,30 +471,30 @@
<context> <context>
<name>TimelineModel</name> <name>TimelineModel</name>
<message> <message>
<location filename="../../src/timeline/TimelineModel.cpp" line="+733"/> <location filename="../../src/timeline/TimelineModel.cpp" line="+754"/>
<source>-- Decryption Error (failed to communicate with DB) --</source> <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> <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> <translation>-- Decryption Error (failed to communicate with DB) --</translation>
</message> </message>
<message> <message>
<location line="+19"/> <location line="+20"/>
<source>-- Decryption Error (failed to retrieve megolm keys from db) --</source> <source>-- Decryption Error (failed to retrieve megolm keys from db) --</source>
<comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed.</comment> <comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed.</comment>
<translation>-- Decryption Error (failed to retrieve megolm keys from db) --</translation> <translation>-- Decryption Error (failed to retrieve megolm keys from db) --</translation>
</message> </message>
<message> <message>
<location line="+12"/> <location line="+13"/>
<source>-- Decryption Error (%1) --</source> <source>-- Decryption Error (%1) --</source>
<comment>Placeholder, when the message can&apos;t be decrypted. In this case, the Olm decrytion returned an error, which is passed ad %1.</comment> <comment>Placeholder, when the message can&apos;t be decrypted. In this case, the Olm decrytion returned an error, which is passed ad %1.</comment>
<translation>-- Decryption Error (%1) --</translation> <translation>-- Decryption Error (%1) --</translation>
</message> </message>
<message> <message>
<location line="+85"/> <location line="+89"/>
<source>Message redaction failed: %1</source> <source>Message redaction failed: %1</source>
<translation>Message redaction failed: %1</translation> <translation>Message redaction failed: %1</translation>
</message> </message>
<message> <message>
<location line="+454"/> <location line="+455"/>
<source>Save image</source> <source>Save image</source>
<translation>Save image</translation> <translation>Save image</translation>
</message> </message>
@ -514,19 +514,19 @@
<translation>Save file</translation> <translation>Save file</translation>
</message> </message>
<message> <message>
<location line="-591"/> <location line="-600"/>
<source>-- Encrypted Event (No keys found for decryption) --</source> <source>-- Encrypted Event (No keys found for decryption) --</source>
<comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment> <comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment>
<translation>-- Encrypted Event (No keys found for decryption) --</translation> <translation>-- Encrypted Event (No keys found for decryption) --</translation>
</message> </message>
<message> <message>
<location line="+75"/> <location line="+82"/>
<source>-- Encrypted Event (Unknown event type) --</source> <source>-- Encrypted Event (Unknown event type) --</source>
<comment>Placeholder, when the message was decrypted, but we couldn&apos;t parse it, because Nheko/mtxclient don&apos;t support that event type yet.</comment> <comment>Placeholder, when the message was decrypted, but we couldn&apos;t parse it, because Nheko/mtxclient don&apos;t support that event type yet.</comment>
<translation>-- Encrypted Event (Unknown event type) --</translation> <translation>-- Encrypted Event (Unknown event type) --</translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location line="+648"/> <location line="+650"/>
<source>%1 and %2 are typing.</source> <source>%1 and %2 are typing.</source>
<comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment> <comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment>
<translation> <translation>
@ -677,7 +677,7 @@
<context> <context>
<name>TimelineView</name> <name>TimelineView</name>
<message> <message>
<location filename="../qml/TimelineView.qml" line="+46"/> <location filename="../qml/TimelineView.qml" line="+48"/>
<source>Reply</source> <source>Reply</source>
<translation>Reply</translation> <translation>Reply</translation>
</message> </message>
@ -696,13 +696,18 @@
<source>View raw message</source> <source>View raw message</source>
<translation>View raw message</translation> <translation>View raw message</translation>
</message> </message>
<message>
<location line="+6"/>
<source>View decrypted raw message</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+4"/> <location line="+4"/>
<source>Redact message</source> <source>Redact message</source>
<translation>Redact message</translation> <translation>Redact message</translation>
</message> </message>
<message> <message>
<location line="+5"/> <location line="+6"/>
<source>Save as</source> <source>Save as</source>
<translation>Save as</translation> <translation>Save as</translation>
</message> </message>

View file

@ -327,12 +327,12 @@
<translation>REKISTERÖIDY</translation> <translation>REKISTERÖIDY</translation>
</message> </message>
<message> <message>
<location line="+54"/> <location line="+55"/>
<source>No supported registration flows!</source> <source>No supported registration flows!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+132"/> <location line="+135"/>
<source>Invalid username</source> <source>Invalid username</source>
<translation>Epäkelpo käyttäjänimi</translation> <translation>Epäkelpo käyttäjänimi</translation>
</message> </message>
@ -471,30 +471,30 @@
<context> <context>
<name>TimelineModel</name> <name>TimelineModel</name>
<message> <message>
<location filename="../../src/timeline/TimelineModel.cpp" line="+733"/> <location filename="../../src/timeline/TimelineModel.cpp" line="+754"/>
<source>-- Decryption Error (failed to communicate with DB) --</source> <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> <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> <translation type="unfinished">-- Virhe purkaessa salausta (tietokannan kanssa kommunikointi epäonnistui) --</translation>
</message> </message>
<message> <message>
<location line="+19"/> <location line="+20"/>
<source>-- Decryption Error (failed to retrieve megolm keys from db) --</source> <source>-- Decryption Error (failed to retrieve megolm keys from db) --</source>
<comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed.</comment> <comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed.</comment>
<translation type="unfinished">-- Virhe purkaessa salausta (megolm-avaimien hakeminen tietokannasta epäonnistui) --</translation> <translation type="unfinished">-- Virhe purkaessa salausta (megolm-avaimien hakeminen tietokannasta epäonnistui) --</translation>
</message> </message>
<message> <message>
<location line="+12"/> <location line="+13"/>
<source>-- Decryption Error (%1) --</source> <source>-- Decryption Error (%1) --</source>
<comment>Placeholder, when the message can&apos;t be decrypted. In this case, the Olm decrytion returned an error, which is passed ad %1.</comment> <comment>Placeholder, when the message can&apos;t be decrypted. In this case, the Olm decrytion returned an error, which is passed ad %1.</comment>
<translation type="unfinished">-- Virhe purkaessa salausta (%1) --</translation> <translation type="unfinished">-- Virhe purkaessa salausta (%1) --</translation>
</message> </message>
<message> <message>
<location line="+85"/> <location line="+89"/>
<source>Message redaction failed: %1</source> <source>Message redaction failed: %1</source>
<translation type="unfinished">Viestin poisto epäonnistui: %1</translation> <translation type="unfinished">Viestin poisto epäonnistui: %1</translation>
</message> </message>
<message> <message>
<location line="+454"/> <location line="+455"/>
<source>Save image</source> <source>Save image</source>
<translation type="unfinished">Tallenna kuva</translation> <translation type="unfinished">Tallenna kuva</translation>
</message> </message>
@ -514,19 +514,19 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-591"/> <location line="-600"/>
<source>-- Encrypted Event (No keys found for decryption) --</source> <source>-- Encrypted Event (No keys found for decryption) --</source>
<comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment> <comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment>
<translation type="unfinished">-- Salattu viesti (salauksen purkuavaimia ei löydetty) --</translation> <translation type="unfinished">-- Salattu viesti (salauksen purkuavaimia ei löydetty) --</translation>
</message> </message>
<message> <message>
<location line="+75"/> <location line="+82"/>
<source>-- Encrypted Event (Unknown event type) --</source> <source>-- Encrypted Event (Unknown event type) --</source>
<comment>Placeholder, when the message was decrypted, but we couldn&apos;t parse it, because Nheko/mtxclient don&apos;t support that event type yet.</comment> <comment>Placeholder, when the message was decrypted, but we couldn&apos;t parse it, because Nheko/mtxclient don&apos;t support that event type yet.</comment>
<translation type="unfinished">-- Salattu viesti (tuntematon viestityyppi) --</translation> <translation type="unfinished">-- Salattu viesti (tuntematon viestityyppi) --</translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location line="+648"/> <location line="+650"/>
<source>%1 and %2 are typing.</source> <source>%1 and %2 are typing.</source>
<comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment> <comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment>
<translation> <translation>
@ -677,7 +677,7 @@
<context> <context>
<name>TimelineView</name> <name>TimelineView</name>
<message> <message>
<location filename="../qml/TimelineView.qml" line="+46"/> <location filename="../qml/TimelineView.qml" line="+48"/>
<source>Reply</source> <source>Reply</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -696,13 +696,18 @@
<source>View raw message</source> <source>View raw message</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location line="+6"/>
<source>View decrypted raw message</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+4"/> <location line="+4"/>
<source>Redact message</source> <source>Redact message</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+5"/> <location line="+6"/>
<source>Save as</source> <source>Save as</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

View file

@ -328,12 +328,12 @@
<translation>S&apos;ENREGISTRER</translation> <translation>S&apos;ENREGISTRER</translation>
</message> </message>
<message> <message>
<location line="+54"/> <location line="+55"/>
<source>No supported registration flows!</source> <source>No supported registration flows!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+132"/> <location line="+135"/>
<source>Invalid username</source> <source>Invalid username</source>
<translation>Nom d&apos;utilisateur invalide</translation> <translation>Nom d&apos;utilisateur invalide</translation>
</message> </message>
@ -472,30 +472,30 @@
<context> <context>
<name>TimelineModel</name> <name>TimelineModel</name>
<message> <message>
<location filename="../../src/timeline/TimelineModel.cpp" line="+733"/> <location filename="../../src/timeline/TimelineModel.cpp" line="+754"/>
<source>-- Decryption Error (failed to communicate with DB) --</source> <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> <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> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+19"/> <location line="+20"/>
<source>-- Decryption Error (failed to retrieve megolm keys from db) --</source> <source>-- Decryption Error (failed to retrieve megolm keys from db) --</source>
<comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed.</comment> <comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed.</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+12"/> <location line="+13"/>
<source>-- Decryption Error (%1) --</source> <source>-- Decryption Error (%1) --</source>
<comment>Placeholder, when the message can&apos;t be decrypted. In this case, the Olm decrytion returned an error, which is passed ad %1.</comment> <comment>Placeholder, when the message can&apos;t be decrypted. In this case, the Olm decrytion returned an error, which is passed ad %1.</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+85"/> <location line="+89"/>
<source>Message redaction failed: %1</source> <source>Message redaction failed: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+454"/> <location line="+455"/>
<source>Save image</source> <source>Save image</source>
<translation type="unfinished">Enregistrer l&apos;image</translation> <translation type="unfinished">Enregistrer l&apos;image</translation>
</message> </message>
@ -515,19 +515,19 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-591"/> <location line="-600"/>
<source>-- Encrypted Event (No keys found for decryption) --</source> <source>-- Encrypted Event (No keys found for decryption) --</source>
<comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment> <comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+75"/> <location line="+82"/>
<source>-- Encrypted Event (Unknown event type) --</source> <source>-- Encrypted Event (Unknown event type) --</source>
<comment>Placeholder, when the message was decrypted, but we couldn&apos;t parse it, because Nheko/mtxclient don&apos;t support that event type yet.</comment> <comment>Placeholder, when the message was decrypted, but we couldn&apos;t parse it, because Nheko/mtxclient don&apos;t support that event type yet.</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location line="+648"/> <location line="+650"/>
<source>%1 and %2 are typing.</source> <source>%1 and %2 are typing.</source>
<comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment> <comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment>
<translation type="unfinished"> <translation type="unfinished">
@ -678,7 +678,7 @@
<context> <context>
<name>TimelineView</name> <name>TimelineView</name>
<message> <message>
<location filename="../qml/TimelineView.qml" line="+46"/> <location filename="../qml/TimelineView.qml" line="+48"/>
<source>Reply</source> <source>Reply</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -697,13 +697,18 @@
<source>View raw message</source> <source>View raw message</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location line="+6"/>
<source>View decrypted raw message</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+4"/> <location line="+4"/>
<source>Redact message</source> <source>Redact message</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+5"/> <location line="+6"/>
<source>Save as</source> <source>Save as</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

View file

@ -327,12 +327,12 @@
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location line="+54"/> <location line="+55"/>
<source>No supported registration flows!</source> <source>No supported registration flows!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+132"/> <location line="+135"/>
<source>Invalid username</source> <source>Invalid username</source>
<translation></translation> <translation></translation>
</message> </message>
@ -471,30 +471,30 @@
<context> <context>
<name>TimelineModel</name> <name>TimelineModel</name>
<message> <message>
<location filename="../../src/timeline/TimelineModel.cpp" line="+733"/> <location filename="../../src/timeline/TimelineModel.cpp" line="+754"/>
<source>-- Decryption Error (failed to communicate with DB) --</source> <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> <comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed when trying to lookup the session.</comment>
<translation>-- () --</translation> <translation>-- () --</translation>
</message> </message>
<message> <message>
<location line="+19"/> <location line="+20"/>
<source>-- Decryption Error (failed to retrieve megolm keys from db) --</source> <source>-- Decryption Error (failed to retrieve megolm keys from db) --</source>
<comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed.</comment> <comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed.</comment>
<translation>-- (megolm鍵を取得できませんでした) --</translation> <translation>-- (megolm鍵を取得できませんでした) --</translation>
</message> </message>
<message> <message>
<location line="+12"/> <location line="+13"/>
<source>-- Decryption Error (%1) --</source> <source>-- Decryption Error (%1) --</source>
<comment>Placeholder, when the message can&apos;t be decrypted. In this case, the Olm decrytion returned an error, which is passed ad %1.</comment> <comment>Placeholder, when the message can&apos;t be decrypted. In this case, the Olm decrytion returned an error, which is passed ad %1.</comment>
<translation type="unfinished">-- (%1) --</translation> <translation type="unfinished">-- (%1) --</translation>
</message> </message>
<message> <message>
<location line="+85"/> <location line="+89"/>
<source>Message redaction failed: %1</source> <source>Message redaction failed: %1</source>
<translation>: %1</translation> <translation>: %1</translation>
</message> </message>
<message> <message>
<location line="+454"/> <location line="+455"/>
<source>Save image</source> <source>Save image</source>
<translation></translation> <translation></translation>
</message> </message>
@ -514,19 +514,19 @@
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location line="-591"/> <location line="-600"/>
<source>-- Encrypted Event (No keys found for decryption) --</source> <source>-- Encrypted Event (No keys found for decryption) --</source>
<comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment> <comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment>
<translation type="unfinished">-- () --</translation> <translation type="unfinished">-- () --</translation>
</message> </message>
<message> <message>
<location line="+75"/> <location line="+82"/>
<source>-- Encrypted Event (Unknown event type) --</source> <source>-- Encrypted Event (Unknown event type) --</source>
<comment>Placeholder, when the message was decrypted, but we couldn&apos;t parse it, because Nheko/mtxclient don&apos;t support that event type yet.</comment> <comment>Placeholder, when the message was decrypted, but we couldn&apos;t parse it, because Nheko/mtxclient don&apos;t support that event type yet.</comment>
<translation type="unfinished">-- () --</translation> <translation type="unfinished">-- () --</translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location line="+648"/> <location line="+650"/>
<source>%1 and %2 are typing.</source> <source>%1 and %2 are typing.</source>
<comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment> <comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment>
<translation> <translation>
@ -676,7 +676,7 @@
<context> <context>
<name>TimelineView</name> <name>TimelineView</name>
<message> <message>
<location filename="../qml/TimelineView.qml" line="+46"/> <location filename="../qml/TimelineView.qml" line="+48"/>
<source>Reply</source> <source>Reply</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -695,13 +695,18 @@
<source>View raw message</source> <source>View raw message</source>
<translation></translation> <translation></translation>
</message> </message>
<message>
<location line="+6"/>
<source>View decrypted raw message</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+4"/> <location line="+4"/>
<source>Redact message</source> <source>Redact message</source>
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location line="+5"/> <location line="+6"/>
<source>Save as</source> <source>Save as</source>
<translation></translation> <translation></translation>
</message> </message>

View file

@ -327,12 +327,12 @@
<translation>REGISTREREN</translation> <translation>REGISTREREN</translation>
</message> </message>
<message> <message>
<location line="+54"/> <location line="+55"/>
<source>No supported registration flows!</source> <source>No supported registration flows!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+132"/> <location line="+135"/>
<source>Invalid username</source> <source>Invalid username</source>
<translation>Ongeldige gebruikersnaam</translation> <translation>Ongeldige gebruikersnaam</translation>
</message> </message>
@ -471,30 +471,30 @@
<context> <context>
<name>TimelineModel</name> <name>TimelineModel</name>
<message> <message>
<location filename="../../src/timeline/TimelineModel.cpp" line="+733"/> <location filename="../../src/timeline/TimelineModel.cpp" line="+754"/>
<source>-- Decryption Error (failed to communicate with DB) --</source> <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> <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> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+19"/> <location line="+20"/>
<source>-- Decryption Error (failed to retrieve megolm keys from db) --</source> <source>-- Decryption Error (failed to retrieve megolm keys from db) --</source>
<comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed.</comment> <comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed.</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+12"/> <location line="+13"/>
<source>-- Decryption Error (%1) --</source> <source>-- Decryption Error (%1) --</source>
<comment>Placeholder, when the message can&apos;t be decrypted. In this case, the Olm decrytion returned an error, which is passed ad %1.</comment> <comment>Placeholder, when the message can&apos;t be decrypted. In this case, the Olm decrytion returned an error, which is passed ad %1.</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+85"/> <location line="+89"/>
<source>Message redaction failed: %1</source> <source>Message redaction failed: %1</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+454"/> <location line="+455"/>
<source>Save image</source> <source>Save image</source>
<translation type="unfinished">Afbeelding opslaan</translation> <translation type="unfinished">Afbeelding opslaan</translation>
</message> </message>
@ -514,19 +514,19 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-591"/> <location line="-600"/>
<source>-- Encrypted Event (No keys found for decryption) --</source> <source>-- Encrypted Event (No keys found for decryption) --</source>
<comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment> <comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+75"/> <location line="+82"/>
<source>-- Encrypted Event (Unknown event type) --</source> <source>-- Encrypted Event (Unknown event type) --</source>
<comment>Placeholder, when the message was decrypted, but we couldn&apos;t parse it, because Nheko/mtxclient don&apos;t support that event type yet.</comment> <comment>Placeholder, when the message was decrypted, but we couldn&apos;t parse it, because Nheko/mtxclient don&apos;t support that event type yet.</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location line="+648"/> <location line="+650"/>
<source>%1 and %2 are typing.</source> <source>%1 and %2 are typing.</source>
<comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment> <comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment>
<translation type="unfinished"> <translation type="unfinished">
@ -677,7 +677,7 @@
<context> <context>
<name>TimelineView</name> <name>TimelineView</name>
<message> <message>
<location filename="../qml/TimelineView.qml" line="+46"/> <location filename="../qml/TimelineView.qml" line="+48"/>
<source>Reply</source> <source>Reply</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -696,13 +696,18 @@
<source>View raw message</source> <source>View raw message</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location line="+6"/>
<source>View decrypted raw message</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+4"/> <location line="+4"/>
<source>Redact message</source> <source>Redact message</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+5"/> <location line="+6"/>
<source>Save as</source> <source>Save as</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

View file

@ -327,12 +327,12 @@
<translation>ZAREJESTRUJ</translation> <translation>ZAREJESTRUJ</translation>
</message> </message>
<message> <message>
<location line="+54"/> <location line="+55"/>
<source>No supported registration flows!</source> <source>No supported registration flows!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+132"/> <location line="+135"/>
<source>Invalid username</source> <source>Invalid username</source>
<translation>Nieprawidłowa nazwa użytkownika</translation> <translation>Nieprawidłowa nazwa użytkownika</translation>
</message> </message>
@ -471,30 +471,30 @@
<context> <context>
<name>TimelineModel</name> <name>TimelineModel</name>
<message> <message>
<location filename="../../src/timeline/TimelineModel.cpp" line="+733"/> <location filename="../../src/timeline/TimelineModel.cpp" line="+754"/>
<source>-- Decryption Error (failed to communicate with DB) --</source> <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> <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> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+19"/> <location line="+20"/>
<source>-- Decryption Error (failed to retrieve megolm keys from db) --</source> <source>-- Decryption Error (failed to retrieve megolm keys from db) --</source>
<comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed.</comment> <comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed.</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+12"/> <location line="+13"/>
<source>-- Decryption Error (%1) --</source> <source>-- Decryption Error (%1) --</source>
<comment>Placeholder, when the message can&apos;t be decrypted. In this case, the Olm decrytion returned an error, which is passed ad %1.</comment> <comment>Placeholder, when the message can&apos;t be decrypted. In this case, the Olm decrytion returned an error, which is passed ad %1.</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+85"/> <location line="+89"/>
<source>Message redaction failed: %1</source> <source>Message redaction failed: %1</source>
<translation type="unfinished">Redagowanie wiadomości nie powiodło się: %1</translation> <translation type="unfinished">Redagowanie wiadomości nie powiodło się: %1</translation>
</message> </message>
<message> <message>
<location line="+454"/> <location line="+455"/>
<source>Save image</source> <source>Save image</source>
<translation type="unfinished">Zapisz obraz</translation> <translation type="unfinished">Zapisz obraz</translation>
</message> </message>
@ -514,19 +514,19 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-591"/> <location line="-600"/>
<source>-- Encrypted Event (No keys found for decryption) --</source> <source>-- Encrypted Event (No keys found for decryption) --</source>
<comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment> <comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+75"/> <location line="+82"/>
<source>-- Encrypted Event (Unknown event type) --</source> <source>-- Encrypted Event (Unknown event type) --</source>
<comment>Placeholder, when the message was decrypted, but we couldn&apos;t parse it, because Nheko/mtxclient don&apos;t support that event type yet.</comment> <comment>Placeholder, when the message was decrypted, but we couldn&apos;t parse it, because Nheko/mtxclient don&apos;t support that event type yet.</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location line="+648"/> <location line="+650"/>
<source>%1 and %2 are typing.</source> <source>%1 and %2 are typing.</source>
<comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment> <comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment>
<translation type="unfinished"> <translation type="unfinished">
@ -678,7 +678,7 @@
<context> <context>
<name>TimelineView</name> <name>TimelineView</name>
<message> <message>
<location filename="../qml/TimelineView.qml" line="+46"/> <location filename="../qml/TimelineView.qml" line="+48"/>
<source>Reply</source> <source>Reply</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -697,13 +697,18 @@
<source>View raw message</source> <source>View raw message</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location line="+6"/>
<source>View decrypted raw message</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+4"/> <location line="+4"/>
<source>Redact message</source> <source>Redact message</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+5"/> <location line="+6"/>
<source>Save as</source> <source>Save as</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

View file

@ -327,12 +327,12 @@
<translation>РЕГИСТРАЦИЯ</translation> <translation>РЕГИСТРАЦИЯ</translation>
</message> </message>
<message> <message>
<location line="+54"/> <location line="+55"/>
<source>No supported registration flows!</source> <source>No supported registration flows!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+132"/> <location line="+135"/>
<source>Invalid username</source> <source>Invalid username</source>
<translation>Некорректное имя пользователя</translation> <translation>Некорректное имя пользователя</translation>
</message> </message>
@ -471,30 +471,30 @@
<context> <context>
<name>TimelineModel</name> <name>TimelineModel</name>
<message> <message>
<location filename="../../src/timeline/TimelineModel.cpp" line="+733"/> <location filename="../../src/timeline/TimelineModel.cpp" line="+754"/>
<source>-- Decryption Error (failed to communicate with DB) --</source> <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> <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> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+19"/> <location line="+20"/>
<source>-- Decryption Error (failed to retrieve megolm keys from db) --</source> <source>-- Decryption Error (failed to retrieve megolm keys from db) --</source>
<comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed.</comment> <comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed.</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+12"/> <location line="+13"/>
<source>-- Decryption Error (%1) --</source> <source>-- Decryption Error (%1) --</source>
<comment>Placeholder, when the message can&apos;t be decrypted. In this case, the Olm decrytion returned an error, which is passed ad %1.</comment> <comment>Placeholder, when the message can&apos;t be decrypted. In this case, the Olm decrytion returned an error, which is passed ad %1.</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+85"/> <location line="+89"/>
<source>Message redaction failed: %1</source> <source>Message redaction failed: %1</source>
<translation type="unfinished">Ошибка редактирования сообщения: %1</translation> <translation type="unfinished">Ошибка редактирования сообщения: %1</translation>
</message> </message>
<message> <message>
<location line="+454"/> <location line="+455"/>
<source>Save image</source> <source>Save image</source>
<translation type="unfinished">Сохранить изображение</translation> <translation type="unfinished">Сохранить изображение</translation>
</message> </message>
@ -514,19 +514,19 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-591"/> <location line="-600"/>
<source>-- Encrypted Event (No keys found for decryption) --</source> <source>-- Encrypted Event (No keys found for decryption) --</source>
<comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment> <comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+75"/> <location line="+82"/>
<source>-- Encrypted Event (Unknown event type) --</source> <source>-- Encrypted Event (Unknown event type) --</source>
<comment>Placeholder, when the message was decrypted, but we couldn&apos;t parse it, because Nheko/mtxclient don&apos;t support that event type yet.</comment> <comment>Placeholder, when the message was decrypted, but we couldn&apos;t parse it, because Nheko/mtxclient don&apos;t support that event type yet.</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location line="+648"/> <location line="+650"/>
<source>%1 and %2 are typing.</source> <source>%1 and %2 are typing.</source>
<comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment> <comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment>
<translation type="unfinished"> <translation type="unfinished">
@ -678,7 +678,7 @@
<context> <context>
<name>TimelineView</name> <name>TimelineView</name>
<message> <message>
<location filename="../qml/TimelineView.qml" line="+46"/> <location filename="../qml/TimelineView.qml" line="+48"/>
<source>Reply</source> <source>Reply</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -697,13 +697,18 @@
<source>View raw message</source> <source>View raw message</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location line="+6"/>
<source>View decrypted raw message</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+4"/> <location line="+4"/>
<source>Redact message</source> <source>Redact message</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+5"/> <location line="+6"/>
<source>Save as</source> <source>Save as</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

View file

@ -327,12 +327,12 @@
<translation></translation> <translation></translation>
</message> </message>
<message> <message>
<location line="+54"/> <location line="+55"/>
<source>No supported registration flows!</source> <source>No supported registration flows!</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+132"/> <location line="+135"/>
<source>Invalid username</source> <source>Invalid username</source>
<translation></translation> <translation></translation>
</message> </message>
@ -471,30 +471,30 @@
<context> <context>
<name>TimelineModel</name> <name>TimelineModel</name>
<message> <message>
<location filename="../../src/timeline/TimelineModel.cpp" line="+733"/> <location filename="../../src/timeline/TimelineModel.cpp" line="+754"/>
<source>-- Decryption Error (failed to communicate with DB) --</source> <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> <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> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+19"/> <location line="+20"/>
<source>-- Decryption Error (failed to retrieve megolm keys from db) --</source> <source>-- Decryption Error (failed to retrieve megolm keys from db) --</source>
<comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed.</comment> <comment>Placeholder, when the message can&apos;t be decrypted, because the DB access failed.</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+12"/> <location line="+13"/>
<source>-- Decryption Error (%1) --</source> <source>-- Decryption Error (%1) --</source>
<comment>Placeholder, when the message can&apos;t be decrypted. In this case, the Olm decrytion returned an error, which is passed ad %1.</comment> <comment>Placeholder, when the message can&apos;t be decrypted. In this case, the Olm decrytion returned an error, which is passed ad %1.</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+85"/> <location line="+89"/>
<source>Message redaction failed: %1</source> <source>Message redaction failed: %1</source>
<translation type="unfinished">%1</translation> <translation type="unfinished">%1</translation>
</message> </message>
<message> <message>
<location line="+454"/> <location line="+455"/>
<source>Save image</source> <source>Save image</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -514,19 +514,19 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="-591"/> <location line="-600"/>
<source>-- Encrypted Event (No keys found for decryption) --</source> <source>-- Encrypted Event (No keys found for decryption) --</source>
<comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment> <comment>Placeholder, when the message was not decrypted yet or can&apos;t be decrypted.</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+75"/> <location line="+82"/>
<source>-- Encrypted Event (Unknown event type) --</source> <source>-- Encrypted Event (Unknown event type) --</source>
<comment>Placeholder, when the message was decrypted, but we couldn&apos;t parse it, because Nheko/mtxclient don&apos;t support that event type yet.</comment> <comment>Placeholder, when the message was decrypted, but we couldn&apos;t parse it, because Nheko/mtxclient don&apos;t support that event type yet.</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message numerus="yes"> <message numerus="yes">
<location line="+648"/> <location line="+650"/>
<source>%1 and %2 are typing.</source> <source>%1 and %2 are typing.</source>
<comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment> <comment>Multiple users are typing. First argument is a comma separated list of potentially multiple users. Second argument is the last user of that list. (If only one user is typing, %1 is empty. You should still use it in your string though to silence Qt warnings.)</comment>
<translation type="unfinished"> <translation type="unfinished">
@ -676,7 +676,7 @@
<context> <context>
<name>TimelineView</name> <name>TimelineView</name>
<message> <message>
<location filename="../qml/TimelineView.qml" line="+46"/> <location filename="../qml/TimelineView.qml" line="+48"/>
<source>Reply</source> <source>Reply</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -695,13 +695,18 @@
<source>View raw message</source> <source>View raw message</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location line="+6"/>
<source>View decrypted raw message</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location line="+4"/> <location line="+4"/>
<source>Redact message</source> <source>Redact message</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+5"/> <location line="+6"/>
<source>Save as</source> <source>Save as</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

View file

@ -17,11 +17,11 @@ MouseArea {
acceptedButtons: Qt.LeftButton | Qt.RightButton acceptedButtons: Qt.LeftButton | Qt.RightButton
onClicked: { onClicked: {
if (mouse.button === Qt.RightButton) if (mouse.button === Qt.RightButton)
messageContextMenu.show(model.id, model.type, row) messageContextMenu.show(model.id, model.type, model.isEncrypted, row)
} }
onPressAndHold: { onPressAndHold: {
if (mouse.source === Qt.MouseEventNotSynthesized) if (mouse.source === Qt.MouseEventNotSynthesized)
messageContextMenu.show(model.id, model.type, row) messageContextMenu.show(model.id, model.type, model.isEncrypted, row)
} }
RowLayout { RowLayout {
@ -97,8 +97,7 @@ MouseArea {
ToolTip.visible: hovered ToolTip.visible: hovered
ToolTip.text: qsTr("Options") ToolTip.text: qsTr("Options")
onClicked: messageContextMenu.show(model.id, model.type, optionsButton) onClicked: messageContextMenu.show(model.id, model.type, model.isEncrypted, optionsButton)
} }
Label { Label {

View file

@ -33,14 +33,16 @@ Page {
id: messageContextMenu id: messageContextMenu
modal: true modal: true
function show(eventId_, eventType_, showAt) { function show(eventId_, eventType_, isEncrypted_, showAt) {
eventId = eventId_ eventId = eventId_
eventType = eventType_ eventType = eventType_
isEncrypted = isEncrypted_
popup(showAt) popup(showAt)
} }
property string eventId property string eventId
property int eventType property int eventType
property bool isEncrypted
MenuItem { MenuItem {
text: qsTr("Reply") text: qsTr("Reply")
@ -57,12 +59,19 @@ Page {
text: qsTr("View raw message") text: qsTr("View raw message")
onTriggered: chat.model.viewRawMessage(messageContextMenu.eventId) onTriggered: chat.model.viewRawMessage(messageContextMenu.eventId)
} }
MenuItem {
visible: messageContextMenu.isEncrypted
height: visible ? implicitHeight : 0
text: qsTr("View decrypted raw message")
onTriggered: chat.model.viewDecryptedRawMessage(messageContextMenu.eventId)
}
MenuItem { MenuItem {
text: qsTr("Redact message") text: qsTr("Redact message")
onTriggered: chat.model.redactEvent(messageContextMenu.eventId) onTriggered: chat.model.redactEvent(messageContextMenu.eventId)
} }
MenuItem { MenuItem {
visible: messageContextMenu.eventType == MtxEvent.ImageMessage || messageContextMenu.eventType == MtxEvent.VideoMessage || messageContextMenu.eventType == MtxEvent.AudioMessage || messageContextMenu.eventType == MtxEvent.FileMessage || messageContextMenu.eventType == MtxEvent.Sticker visible: messageContextMenu.eventType == MtxEvent.ImageMessage || messageContextMenu.eventType == MtxEvent.VideoMessage || messageContextMenu.eventType == MtxEvent.AudioMessage || messageContextMenu.eventType == MtxEvent.FileMessage || messageContextMenu.eventType == MtxEvent.Sticker
height: visible ? implicitHeight : 0
text: qsTr("Save as") text: qsTr("Save as")
onTriggered: timelineManager.timeline.saveMedia(messageContextMenu.eventId) onTriggered: timelineManager.timeline.saveMedia(messageContextMenu.eventId)
} }

View file

@ -697,7 +697,20 @@ TimelineModel::viewRawMessage(QString id) const
} }
void void
TimelineModel::viewDecryptedRawMessage(QString id) const
{
auto event = events.value(id);
if (auto e =
std::get_if<mtx::events::EncryptedEvent<mtx::events::msg::Encrypted>>(&event)) {
event = decryptEvent(*e).event;
}
std::string ev = utils::serialize_event(event).dump(4);
auto dialog = new dialogs::RawMessage(QString::fromStdString(ev));
Q_UNUSED(dialog);
}
void
TimelineModel::openUserProfile(QString userid) const TimelineModel::openUserProfile(QString userid) const
{ {
MainWindow::instance()->openUserProfile(userid, room_id_); MainWindow::instance()->openUserProfile(userid, room_id_);

View file

@ -179,6 +179,7 @@ public:
Q_INVOKABLE QString escapeEmoji(QString str) const; Q_INVOKABLE QString escapeEmoji(QString str) const;
Q_INVOKABLE void viewRawMessage(QString id) const; Q_INVOKABLE void viewRawMessage(QString id) const;
Q_INVOKABLE void viewDecryptedRawMessage(QString id) const;
Q_INVOKABLE void openUserProfile(QString userid) const; Q_INVOKABLE void openUserProfile(QString userid) const;
Q_INVOKABLE void replyAction(QString id); Q_INVOKABLE void replyAction(QString id);
Q_INVOKABLE void readReceiptsAction(QString id) const; Q_INVOKABLE void readReceiptsAction(QString id) const;