Merge pull request #131 from adasauce/shh

Add support for more m.room.events in timeline
This commit is contained in:
adasauce 2020-03-03 15:39:33 -04:00 committed by GitHub
commit 005ed00d67
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 813 additions and 111 deletions

View File

@ -277,6 +277,11 @@
<source>removed topic</source> <source>removed topic</source>
<translation>Raumthema wurde entfernt.</translation> <translation>Raumthema wurde entfernt.</translation>
</message> </message>
<message>
<location line="+6"/>
<source>%1 created and configured room: %2</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>Placeholder</name> <name>Placeholder</name>
@ -474,7 +479,7 @@
<context> <context>
<name>TimelineModel</name> <name>TimelineModel</name>
<message> <message>
<location filename="../../src/timeline/TimelineModel.cpp" line="+711"/> <location filename="../../src/timeline/TimelineModel.cpp" line="+714"/>
<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üsselter Event (keine Schlüssel zur Entschlüsselung gefunden) --</translation> <translation>-- verschlüsselter Event (keine Schlüssel zur Entschlüsselung gefunden) --</translation>
@ -538,12 +543,57 @@
</translation> </translation>
</message> </message>
<message> <message>
<location line="+96"/> <location line="+68"/>
<source>%1 opened the room to the public</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>%1 made this room require and invitation to join</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+23"/>
<source>%1 made the room open to guests</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>%1 has closed the room to guest access</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+23"/>
<source>%1 made the room history world readable. Events may be now read by non-joined people</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+4"/>
<source>%1 set the room history visible to members from this point on</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>%1 set the room history visible to members since they were invited</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>%1 set the room history visible to members since they joined the room</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+22"/>
<source>%1 has changed the room&apos;s permissions.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+48"/>
<source>%1 was invited.</source> <source>%1 was invited.</source>
<translation>%1 wurde eingeladen.</translation> <translation>%1 wurde eingeladen.</translation>
</message> </message>
<message> <message>
<location line="+9"/> <location line="+11"/>
<source>%1 changed their display name and avatar.</source> <source>%1 changed their display name and avatar.</source>
<translation>%1 hat den Anzeigenamen und Avatar geändert.</translation> <translation>%1 hat den Anzeigenamen und Avatar geändert.</translation>
</message> </message>
@ -563,7 +613,7 @@
<translation>%1 hat den Raum betreten.</translation> <translation>%1 hat den Raum betreten.</translation>
</message> </message>
<message> <message>
<location line="+7"/> <location line="+9"/>
<source>%1 rejected their invite.</source> <source>%1 rejected their invite.</source>
<translation>%1 hat die Einladung abgewiesen.</translation> <translation>%1 hat die Einladung abgewiesen.</translation>
</message> </message>
@ -600,16 +650,21 @@
<message> <message>
<location line="+2"/> <location line="+2"/>
<source>%1 left after having already left!</source> <source>%1 left after having already left!</source>
<comment>This is a leave event after the user already left and shouln&apos;t happen apart from state resets</comment> <comment>This is a leave event after the user already left and shouldn&apos;t happen apart from state resets</comment>
<translation>%1 hat den Raum verlassen.</translation> <translation type="unfinished">%1 hat den Raum verlassen.</translation>
</message> </message>
<message> <message>
<location line="+6"/> <location line="+7"/>
<source>%1 was banned.</source> <source>%1 was banned</source>
<translation>%1 wurde gebannt.</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+2"/> <location line="+8"/>
<source> Reason: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-5"/>
<source>%1 knocked.</source> <source>%1 knocked.</source>
<translation>%1 hat angeklopft.</translation> <translation>%1 hat angeklopft.</translation>
</message> </message>

View File

@ -277,6 +277,11 @@
<source>removed topic</source> <source>removed topic</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location line="+6"/>
<source>%1 created and configured room: %2</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>Placeholder</name> <name>Placeholder</name>
@ -474,7 +479,7 @@
<context> <context>
<name>TimelineModel</name> <name>TimelineModel</name>
<message> <message>
<location filename="../../src/timeline/TimelineModel.cpp" line="+711"/> <location filename="../../src/timeline/TimelineModel.cpp" line="+714"/>
<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>
@ -538,12 +543,57 @@
</translation> </translation>
</message> </message>
<message> <message>
<location line="+96"/> <location line="+68"/>
<source>%1 opened the room to the public</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>%1 made this room require and invitation to join</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+23"/>
<source>%1 made the room open to guests</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>%1 has closed the room to guest access</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+23"/>
<source>%1 made the room history world readable. Events may be now read by non-joined people</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+4"/>
<source>%1 set the room history visible to members from this point on</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>%1 set the room history visible to members since they were invited</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>%1 set the room history visible to members since they joined the room</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+22"/>
<source>%1 has changed the room&apos;s permissions.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+48"/>
<source>%1 was invited.</source> <source>%1 was invited.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+9"/> <location line="+11"/>
<source>%1 changed their display name and avatar.</source> <source>%1 changed their display name and avatar.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -563,7 +613,7 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+7"/> <location line="+9"/>
<source>%1 rejected their invite.</source> <source>%1 rejected their invite.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -600,16 +650,21 @@
<message> <message>
<location line="+2"/> <location line="+2"/>
<source>%1 left after having already left!</source> <source>%1 left after having already left!</source>
<comment>This is a leave event after the user already left and shouln&apos;t happen apart from state resets</comment> <comment>This is a leave event after the user already left and shouldn&apos;t happen apart from state resets</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+6"/> <location line="+7"/>
<source>%1 was banned.</source> <source>%1 was banned</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+2"/> <location line="+8"/>
<source> Reason: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-5"/>
<source>%1 knocked.</source> <source>%1 knocked.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

View File

@ -277,6 +277,11 @@
<source>removed topic</source> <source>removed topic</source>
<translation>removed topic</translation> <translation>removed topic</translation>
</message> </message>
<message>
<location line="+6"/>
<source>%1 created and configured room: %2</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>Placeholder</name> <name>Placeholder</name>
@ -474,7 +479,7 @@
<context> <context>
<name>TimelineModel</name> <name>TimelineModel</name>
<message> <message>
<location filename="../../src/timeline/TimelineModel.cpp" line="+711"/> <location filename="../../src/timeline/TimelineModel.cpp" line="+714"/>
<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>
@ -538,12 +543,57 @@
</translation> </translation>
</message> </message>
<message> <message>
<location line="+96"/> <location line="+68"/>
<source>%1 opened the room to the public</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>%1 made this room require and invitation to join</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+23"/>
<source>%1 made the room open to guests</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>%1 has closed the room to guest access</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+23"/>
<source>%1 made the room history world readable. Events may be now read by non-joined people</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+4"/>
<source>%1 set the room history visible to members from this point on</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>%1 set the room history visible to members since they were invited</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>%1 set the room history visible to members since they joined the room</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+22"/>
<source>%1 has changed the room&apos;s permissions.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+48"/>
<source>%1 was invited.</source> <source>%1 was invited.</source>
<translation>%1 was invited.</translation> <translation>%1 was invited.</translation>
</message> </message>
<message> <message>
<location line="+9"/> <location line="+11"/>
<source>%1 changed their display name and avatar.</source> <source>%1 changed their display name and avatar.</source>
<translation>%1 changed their display name and avatar.</translation> <translation>%1 changed their display name and avatar.</translation>
</message> </message>
@ -563,7 +613,7 @@
<translation>%1 joined.</translation> <translation>%1 joined.</translation>
</message> </message>
<message> <message>
<location line="+7"/> <location line="+9"/>
<source>%1 rejected their invite.</source> <source>%1 rejected their invite.</source>
<translation>%1 rejected their invite.</translation> <translation>%1 rejected their invite.</translation>
</message> </message>
@ -600,16 +650,21 @@
<message> <message>
<location line="+2"/> <location line="+2"/>
<source>%1 left after having already left!</source> <source>%1 left after having already left!</source>
<comment>This is a leave event after the user already left and shouln&apos;t happen apart from state resets</comment> <comment>This is a leave event after the user already left and shouldn&apos;t happen apart from state resets</comment>
<translation>%1 left after having already left!</translation> <translation type="unfinished">%1 left after having already left!</translation>
</message> </message>
<message> <message>
<location line="+6"/> <location line="+7"/>
<source>%1 was banned.</source> <source>%1 was banned</source>
<translation>%1 was banned.</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+2"/> <location line="+8"/>
<source> Reason: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-5"/>
<source>%1 knocked.</source> <source>%1 knocked.</source>
<translation>%1 knocked.</translation> <translation>%1 knocked.</translation>
</message> </message>

View File

@ -277,6 +277,11 @@
<source>removed topic</source> <source>removed topic</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location line="+6"/>
<source>%1 created and configured room: %2</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>Placeholder</name> <name>Placeholder</name>
@ -474,7 +479,7 @@
<context> <context>
<name>TimelineModel</name> <name>TimelineModel</name>
<message> <message>
<location filename="../../src/timeline/TimelineModel.cpp" line="+711"/> <location filename="../../src/timeline/TimelineModel.cpp" line="+714"/>
<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>
@ -538,12 +543,57 @@
</translation> </translation>
</message> </message>
<message> <message>
<location line="+96"/> <location line="+68"/>
<source>%1 opened the room to the public</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>%1 made this room require and invitation to join</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+23"/>
<source>%1 made the room open to guests</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>%1 has closed the room to guest access</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+23"/>
<source>%1 made the room history world readable. Events may be now read by non-joined people</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+4"/>
<source>%1 set the room history visible to members from this point on</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>%1 set the room history visible to members since they were invited</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>%1 set the room history visible to members since they joined the room</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+22"/>
<source>%1 has changed the room&apos;s permissions.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+48"/>
<source>%1 was invited.</source> <source>%1 was invited.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+9"/> <location line="+11"/>
<source>%1 changed their display name and avatar.</source> <source>%1 changed their display name and avatar.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -563,7 +613,7 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+7"/> <location line="+9"/>
<source>%1 rejected their invite.</source> <source>%1 rejected their invite.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -600,16 +650,21 @@
<message> <message>
<location line="+2"/> <location line="+2"/>
<source>%1 left after having already left!</source> <source>%1 left after having already left!</source>
<comment>This is a leave event after the user already left and shouln&apos;t happen apart from state resets</comment> <comment>This is a leave event after the user already left and shouldn&apos;t happen apart from state resets</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+6"/> <location line="+7"/>
<source>%1 was banned.</source> <source>%1 was banned</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+2"/> <location line="+8"/>
<source> Reason: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-5"/>
<source>%1 knocked.</source> <source>%1 knocked.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

View File

@ -277,6 +277,11 @@
<source>removed topic</source> <source>removed topic</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location line="+6"/>
<source>%1 created and configured room: %2</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>Placeholder</name> <name>Placeholder</name>
@ -475,7 +480,7 @@
<context> <context>
<name>TimelineModel</name> <name>TimelineModel</name>
<message> <message>
<location filename="../../src/timeline/TimelineModel.cpp" line="+711"/> <location filename="../../src/timeline/TimelineModel.cpp" line="+714"/>
<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>
@ -539,12 +544,57 @@
</translation> </translation>
</message> </message>
<message> <message>
<location line="+96"/> <location line="+68"/>
<source>%1 opened the room to the public</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>%1 made this room require and invitation to join</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+23"/>
<source>%1 made the room open to guests</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>%1 has closed the room to guest access</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+23"/>
<source>%1 made the room history world readable. Events may be now read by non-joined people</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+4"/>
<source>%1 set the room history visible to members from this point on</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>%1 set the room history visible to members since they were invited</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>%1 set the room history visible to members since they joined the room</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+22"/>
<source>%1 has changed the room&apos;s permissions.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+48"/>
<source>%1 was invited.</source> <source>%1 was invited.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+9"/> <location line="+11"/>
<source>%1 changed their display name and avatar.</source> <source>%1 changed their display name and avatar.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -564,7 +614,7 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+7"/> <location line="+9"/>
<source>%1 rejected their invite.</source> <source>%1 rejected their invite.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -601,16 +651,21 @@
<message> <message>
<location line="+2"/> <location line="+2"/>
<source>%1 left after having already left!</source> <source>%1 left after having already left!</source>
<comment>This is a leave event after the user already left and shouln&apos;t happen apart from state resets</comment> <comment>This is a leave event after the user already left and shouldn&apos;t happen apart from state resets</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+6"/> <location line="+7"/>
<source>%1 was banned.</source> <source>%1 was banned</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+2"/> <location line="+8"/>
<source> Reason: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-5"/>
<source>%1 knocked.</source> <source>%1 knocked.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

View File

@ -277,6 +277,11 @@
<source>removed topic</source> <source>removed topic</source>
<translation></translation> <translation></translation>
</message> </message>
<message>
<location line="+6"/>
<source>%1 created and configured room: %2</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>Placeholder</name> <name>Placeholder</name>
@ -474,7 +479,7 @@
<context> <context>
<name>TimelineModel</name> <name>TimelineModel</name>
<message> <message>
<location filename="../../src/timeline/TimelineModel.cpp" line="+711"/> <location filename="../../src/timeline/TimelineModel.cpp" line="+714"/>
<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>-- () --</translation> <translation>-- () --</translation>
@ -537,12 +542,57 @@
</translation> </translation>
</message> </message>
<message> <message>
<location line="+96"/> <location line="+68"/>
<source>%1 opened the room to the public</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>%1 made this room require and invitation to join</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+23"/>
<source>%1 made the room open to guests</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>%1 has closed the room to guest access</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+23"/>
<source>%1 made the room history world readable. Events may be now read by non-joined people</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+4"/>
<source>%1 set the room history visible to members from this point on</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>%1 set the room history visible to members since they were invited</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>%1 set the room history visible to members since they joined the room</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+22"/>
<source>%1 has changed the room&apos;s permissions.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+48"/>
<source>%1 was invited.</source> <source>%1 was invited.</source>
<translation>%1</translation> <translation>%1</translation>
</message> </message>
<message> <message>
<location line="+9"/> <location line="+11"/>
<source>%1 changed their display name and avatar.</source> <source>%1 changed their display name and avatar.</source>
<translation>%1</translation> <translation>%1</translation>
</message> </message>
@ -562,7 +612,7 @@
<translation>%1</translation> <translation>%1</translation>
</message> </message>
<message> <message>
<location line="+7"/> <location line="+9"/>
<source>%1 rejected their invite.</source> <source>%1 rejected their invite.</source>
<translation>%1</translation> <translation>%1</translation>
</message> </message>
@ -599,16 +649,21 @@
<message> <message>
<location line="+2"/> <location line="+2"/>
<source>%1 left after having already left!</source> <source>%1 left after having already left!</source>
<comment>This is a leave event after the user already left and shouln&apos;t happen apart from state resets</comment> <comment>This is a leave event after the user already left and shouldn&apos;t happen apart from state resets</comment>
<translation>退%1退!</translation> <translation type="unfinished">退%1退!</translation>
</message> </message>
<message> <message>
<location line="+6"/> <location line="+7"/>
<source>%1 was banned.</source> <source>%1 was banned</source>
<translation>%1</translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+2"/> <location line="+8"/>
<source> Reason: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-5"/>
<source>%1 knocked.</source> <source>%1 knocked.</source>
<translation>%1</translation> <translation>%1</translation>
</message> </message>

View File

@ -277,6 +277,11 @@
<source>removed topic</source> <source>removed topic</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location line="+6"/>
<source>%1 created and configured room: %2</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>Placeholder</name> <name>Placeholder</name>
@ -474,7 +479,7 @@
<context> <context>
<name>TimelineModel</name> <name>TimelineModel</name>
<message> <message>
<location filename="../../src/timeline/TimelineModel.cpp" line="+711"/> <location filename="../../src/timeline/TimelineModel.cpp" line="+714"/>
<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>
@ -538,12 +543,57 @@
</translation> </translation>
</message> </message>
<message> <message>
<location line="+96"/> <location line="+68"/>
<source>%1 opened the room to the public</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>%1 made this room require and invitation to join</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+23"/>
<source>%1 made the room open to guests</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>%1 has closed the room to guest access</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+23"/>
<source>%1 made the room history world readable. Events may be now read by non-joined people</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+4"/>
<source>%1 set the room history visible to members from this point on</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>%1 set the room history visible to members since they were invited</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>%1 set the room history visible to members since they joined the room</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+22"/>
<source>%1 has changed the room&apos;s permissions.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+48"/>
<source>%1 was invited.</source> <source>%1 was invited.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+9"/> <location line="+11"/>
<source>%1 changed their display name and avatar.</source> <source>%1 changed their display name and avatar.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -563,7 +613,7 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+7"/> <location line="+9"/>
<source>%1 rejected their invite.</source> <source>%1 rejected their invite.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -600,16 +650,21 @@
<message> <message>
<location line="+2"/> <location line="+2"/>
<source>%1 left after having already left!</source> <source>%1 left after having already left!</source>
<comment>This is a leave event after the user already left and shouln&apos;t happen apart from state resets</comment> <comment>This is a leave event after the user already left and shouldn&apos;t happen apart from state resets</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+6"/> <location line="+7"/>
<source>%1 was banned.</source> <source>%1 was banned</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+2"/> <location line="+8"/>
<source> Reason: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-5"/>
<source>%1 knocked.</source> <source>%1 knocked.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

View File

@ -277,6 +277,11 @@
<source>removed topic</source> <source>removed topic</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location line="+6"/>
<source>%1 created and configured room: %2</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>Placeholder</name> <name>Placeholder</name>
@ -474,7 +479,7 @@
<context> <context>
<name>TimelineModel</name> <name>TimelineModel</name>
<message> <message>
<location filename="../../src/timeline/TimelineModel.cpp" line="+711"/> <location filename="../../src/timeline/TimelineModel.cpp" line="+714"/>
<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>
@ -539,12 +544,57 @@
</translation> </translation>
</message> </message>
<message> <message>
<location line="+96"/> <location line="+68"/>
<source>%1 opened the room to the public</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>%1 made this room require and invitation to join</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+23"/>
<source>%1 made the room open to guests</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>%1 has closed the room to guest access</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+23"/>
<source>%1 made the room history world readable. Events may be now read by non-joined people</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+4"/>
<source>%1 set the room history visible to members from this point on</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>%1 set the room history visible to members since they were invited</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>%1 set the room history visible to members since they joined the room</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+22"/>
<source>%1 has changed the room&apos;s permissions.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+48"/>
<source>%1 was invited.</source> <source>%1 was invited.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+9"/> <location line="+11"/>
<source>%1 changed their display name and avatar.</source> <source>%1 changed their display name and avatar.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -564,7 +614,7 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+7"/> <location line="+9"/>
<source>%1 rejected their invite.</source> <source>%1 rejected their invite.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -601,16 +651,21 @@
<message> <message>
<location line="+2"/> <location line="+2"/>
<source>%1 left after having already left!</source> <source>%1 left after having already left!</source>
<comment>This is a leave event after the user already left and shouln&apos;t happen apart from state resets</comment> <comment>This is a leave event after the user already left and shouldn&apos;t happen apart from state resets</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+6"/> <location line="+7"/>
<source>%1 was banned.</source> <source>%1 was banned</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+2"/> <location line="+8"/>
<source> Reason: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-5"/>
<source>%1 knocked.</source> <source>%1 knocked.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

View File

@ -277,6 +277,11 @@
<source>removed topic</source> <source>removed topic</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location line="+6"/>
<source>%1 created and configured room: %2</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>Placeholder</name> <name>Placeholder</name>
@ -474,7 +479,7 @@
<context> <context>
<name>TimelineModel</name> <name>TimelineModel</name>
<message> <message>
<location filename="../../src/timeline/TimelineModel.cpp" line="+711"/> <location filename="../../src/timeline/TimelineModel.cpp" line="+714"/>
<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>
@ -539,12 +544,57 @@
</translation> </translation>
</message> </message>
<message> <message>
<location line="+96"/> <location line="+68"/>
<source>%1 opened the room to the public</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>%1 made this room require and invitation to join</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+23"/>
<source>%1 made the room open to guests</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>%1 has closed the room to guest access</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+23"/>
<source>%1 made the room history world readable. Events may be now read by non-joined people</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+4"/>
<source>%1 set the room history visible to members from this point on</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>%1 set the room history visible to members since they were invited</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>%1 set the room history visible to members since they joined the room</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+22"/>
<source>%1 has changed the room&apos;s permissions.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+48"/>
<source>%1 was invited.</source> <source>%1 was invited.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+9"/> <location line="+11"/>
<source>%1 changed their display name and avatar.</source> <source>%1 changed their display name and avatar.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -564,7 +614,7 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+7"/> <location line="+9"/>
<source>%1 rejected their invite.</source> <source>%1 rejected their invite.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -601,16 +651,21 @@
<message> <message>
<location line="+2"/> <location line="+2"/>
<source>%1 left after having already left!</source> <source>%1 left after having already left!</source>
<comment>This is a leave event after the user already left and shouln&apos;t happen apart from state resets</comment> <comment>This is a leave event after the user already left and shouldn&apos;t happen apart from state resets</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+6"/> <location line="+7"/>
<source>%1 was banned.</source> <source>%1 was banned</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+2"/> <location line="+8"/>
<source> Reason: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-5"/>
<source>%1 knocked.</source> <source>%1 knocked.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

View File

@ -277,6 +277,11 @@
<source>removed topic</source> <source>removed topic</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location line="+6"/>
<source>%1 created and configured room: %2</source>
<translation type="unfinished"></translation>
</message>
</context> </context>
<context> <context>
<name>Placeholder</name> <name>Placeholder</name>
@ -474,7 +479,7 @@
<context> <context>
<name>TimelineModel</name> <name>TimelineModel</name>
<message> <message>
<location filename="../../src/timeline/TimelineModel.cpp" line="+711"/> <location filename="../../src/timeline/TimelineModel.cpp" line="+714"/>
<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>
@ -537,12 +542,57 @@
</translation> </translation>
</message> </message>
<message> <message>
<location line="+96"/> <location line="+68"/>
<source>%1 opened the room to the public</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>%1 made this room require and invitation to join</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+23"/>
<source>%1 made the room open to guests</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+2"/>
<source>%1 has closed the room to guest access</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+23"/>
<source>%1 made the room history world readable. Events may be now read by non-joined people</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+4"/>
<source>%1 set the room history visible to members from this point on</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>%1 set the room history visible to members since they were invited</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+3"/>
<source>%1 set the room history visible to members since they joined the room</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+22"/>
<source>%1 has changed the room&apos;s permissions.</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="+48"/>
<source>%1 was invited.</source> <source>%1 was invited.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+9"/> <location line="+11"/>
<source>%1 changed their display name and avatar.</source> <source>%1 changed their display name and avatar.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -562,7 +612,7 @@
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+7"/> <location line="+9"/>
<source>%1 rejected their invite.</source> <source>%1 rejected their invite.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@ -599,16 +649,21 @@
<message> <message>
<location line="+2"/> <location line="+2"/>
<source>%1 left after having already left!</source> <source>%1 left after having already left!</source>
<comment>This is a leave event after the user already left and shouln&apos;t happen apart from state resets</comment> <comment>This is a leave event after the user already left and shouldn&apos;t happen apart from state resets</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+6"/> <location line="+7"/>
<source>%1 was banned.</source> <source>%1 was banned</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location line="+2"/> <location line="+8"/>
<source> Reason: %1</source>
<translation type="unfinished"></translation>
</message>
<message>
<location line="-5"/>
<source>%1 knocked.</source> <source>%1 knocked.</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

View File

@ -81,6 +81,37 @@ Item {
text: model.data.roomTopic ? qsTr("topic changed to: %1").arg(model.data.roomTopic) : qsTr("removed topic") text: model.data.roomTopic ? qsTr("topic changed to: %1").arg(model.data.roomTopic) : qsTr("removed topic")
} }
} }
DelegateChoice {
roleValue: MtxEvent.RoomCreate
NoticeMessage {
text: qsTr("%1 created and configured room: %2").arg(model.data.userName).arg(model.data.roomId)
}
}
DelegateChoice {
// TODO: make a more complex formatter for the power levels.
roleValue: MtxEvent.PowerLevels
NoticeMessage {
text: timelineManager.timeline.formatPowerLevelEvent(model.data.id)
}
}
DelegateChoice {
roleValue: MtxEvent.RoomJoinRules
NoticeMessage {
text: timelineManager.timeline.formatJoinRuleEvent(model.data.id)
}
}
DelegateChoice {
roleValue: MtxEvent.RoomHistoryVisibility
NoticeMessage {
text: timelineManager.timeline.formatHistoryVisibilityEvent(model.data.id)
}
}
DelegateChoice {
roleValue: MtxEvent.RoomGuestAccess
NoticeMessage {
text: timelineManager.timeline.formatGuestAccessEvent(model.data.id)
}
}
DelegateChoice { DelegateChoice {
roleValue: MtxEvent.Member roleValue: MtxEvent.Member
NoticeMessage { NoticeMessage {

View File

@ -39,17 +39,17 @@ struct RoomEventType
case EventType::RoomCanonicalAlias: case EventType::RoomCanonicalAlias:
return qml_mtx_events::EventType::CanonicalAlias; return qml_mtx_events::EventType::CanonicalAlias;
case EventType::RoomCreate: case EventType::RoomCreate:
return qml_mtx_events::EventType::Create; return qml_mtx_events::EventType::RoomCreate;
case EventType::RoomEncrypted: case EventType::RoomEncrypted:
return qml_mtx_events::EventType::Encrypted; return qml_mtx_events::EventType::Encrypted;
case EventType::RoomEncryption: case EventType::RoomEncryption:
return qml_mtx_events::EventType::Encryption; return qml_mtx_events::EventType::Encryption;
case EventType::RoomGuestAccess: case EventType::RoomGuestAccess:
return qml_mtx_events::EventType::GuestAccess; return qml_mtx_events::EventType::RoomGuestAccess;
case EventType::RoomHistoryVisibility: case EventType::RoomHistoryVisibility:
return qml_mtx_events::EventType::HistoryVisibility; return qml_mtx_events::EventType::RoomHistoryVisibility;
case EventType::RoomJoinRules: case EventType::RoomJoinRules:
return qml_mtx_events::EventType::JoinRules; return qml_mtx_events::EventType::RoomJoinRules;
case EventType::RoomMember: case EventType::RoomMember:
return qml_mtx_events::EventType::Member; return qml_mtx_events::EventType::Member;
case EventType::RoomMessage: case EventType::RoomMessage:
@ -222,6 +222,7 @@ TimelineModel::roleNames() const
{State, "state"}, {State, "state"},
{IsEncrypted, "isEncrypted"}, {IsEncrypted, "isEncrypted"},
{ReplyTo, "replyTo"}, {ReplyTo, "replyTo"},
{RoomId, "roomId"},
{RoomName, "roomName"}, {RoomName, "roomName"},
{RoomTopic, "roomTopic"}, {RoomTopic, "roomTopic"},
{Dump, "dump"}, {Dump, "dump"},
@ -335,6 +336,8 @@ TimelineModel::data(const QString &id, int role) const
} }
case ReplyTo: case ReplyTo:
return QVariant(QString::fromStdString(in_reply_to_event(event))); return QVariant(QString::fromStdString(in_reply_to_event(event)));
case RoomId:
return QVariant(QString::fromStdString(room_id(event)));
case RoomName: case RoomName:
return QVariant(QString::fromStdString(room_name(event))); return QVariant(QString::fromStdString(room_name(event)));
case RoomTopic: case RoomTopic:
@ -1471,6 +1474,107 @@ TimelineModel::formatTypingUsers(const std::vector<QString> &users, QColor bg)
return temp.arg(uidWithoutLast.join(", ")).arg(formatUser(users.back())); return temp.arg(uidWithoutLast.join(", ")).arg(formatUser(users.back()));
} }
QString
TimelineModel::formatJoinRuleEvent(QString id)
{
if (!events.contains(id))
return "";
auto event =
std::get_if<mtx::events::StateEvent<mtx::events::state::JoinRules>>(&events[id]);
if (!event)
return "";
QString user = QString::fromStdString(event->sender);
QString name = escapeEmoji(displayName(user));
switch (event->content.join_rule) {
case mtx::events::state::JoinRule::Public:
return tr("%1 opened the room to the public").arg(name);
case mtx::events::state::JoinRule::Invite:
return tr("%1 made this room require and invitation to join").arg(name);
default:
// Currently, knock and private are reserved keywords and not implemented in Matrix.
return "";
}
}
QString
TimelineModel::formatGuestAccessEvent(QString id)
{
if (!events.contains(id))
return "";
auto event =
std::get_if<mtx::events::StateEvent<mtx::events::state::GuestAccess>>(&events[id]);
if (!event)
return "";
QString user = QString::fromStdString(event->sender);
QString name = escapeEmoji(displayName(user));
switch (event->content.guest_access) {
case mtx::events::state::AccessState::CanJoin:
return tr("%1 made the room open to guests").arg(name);
case mtx::events::state::AccessState::Forbidden:
return tr("%1 has closed the room to guest access").arg(name);
default:
return "";
}
}
QString
TimelineModel::formatHistoryVisibilityEvent(QString id)
{
if (!events.contains(id))
return "";
auto event =
std::get_if<mtx::events::StateEvent<mtx::events::state::HistoryVisibility>>(&events[id]);
if (!event)
return "";
QString user = QString::fromStdString(event->sender);
QString name = escapeEmoji(displayName(user));
switch (event->content.history_visibility) {
case mtx::events::state::Visibility::WorldReadable:
return tr("%1 made the room history world readable. Events may be now read by "
"non-joined people")
.arg(name);
case mtx::events::state::Visibility::Shared:
return tr("%1 set the room history visible to members from this point on")
.arg(name);
case mtx::events::state::Visibility::Invited:
return tr("%1 set the room history visible to members since they were invited")
.arg(name);
case mtx::events::state::Visibility::Joined:
return tr("%1 set the room history visible to members since they joined the room")
.arg(name);
default:
return "";
}
}
QString
TimelineModel::formatPowerLevelEvent(QString id)
{
if (!events.contains(id))
return "";
auto event =
std::get_if<mtx::events::StateEvent<mtx::events::state::PowerLevels>>(&events[id]);
if (!event)
return "";
QString user = QString::fromStdString(event->sender);
QString name = escapeEmoji(displayName(user));
// TODO: power levels rendering is actually a bit complex. work on this later.
return tr("%1 has changed the room's permissions.").arg(name);
}
QString QString
TimelineModel::formatMemberEvent(QString id) TimelineModel::formatMemberEvent(QString id)
{ {
@ -1510,12 +1614,14 @@ TimelineModel::formatMemberEvent(QString id)
QString user = QString::fromStdString(event->state_key); QString user = QString::fromStdString(event->state_key);
QString name = escapeEmoji(displayName(user)); QString name = escapeEmoji(displayName(user));
QString rendered;
// see table https://matrix.org/docs/spec/client_server/latest#m-room-member // see table https://matrix.org/docs/spec/client_server/latest#m-room-member
using namespace mtx::events::state; using namespace mtx::events::state;
switch (event->content.membership) { switch (event->content.membership) {
case Membership::Invite: case Membership::Invite:
return tr("%1 was invited.").arg(name); rendered = tr("%1 was invited.").arg(name);
break;
case Membership::Join: case Membership::Join:
if (prevEvent && prevEvent->content.membership == Membership::Join) { if (prevEvent && prevEvent->content.membership == Membership::Join) {
bool displayNameChanged = bool displayNameChanged =
@ -1524,47 +1630,57 @@ TimelineModel::formatMemberEvent(QString id)
prevEvent->content.avatar_url != event->content.avatar_url; prevEvent->content.avatar_url != event->content.avatar_url;
if (displayNameChanged && avatarChanged) if (displayNameChanged && avatarChanged)
return tr("%1 changed their display name and avatar.").arg(name); rendered =
tr("%1 changed their display name and avatar.").arg(name);
else if (displayNameChanged) else if (displayNameChanged)
return tr("%1 changed their display name.").arg(name); rendered = tr("%1 changed their display name.").arg(name);
else if (avatarChanged) else if (avatarChanged)
return tr("%1 changed their avatar.").arg(name); rendered = tr("%1 changed their avatar.").arg(name);
// the case of nothing changed but join follows join shouldn't happen, so // the case of nothing changed but join follows join shouldn't happen, so
// just show it as join // just show it as join
} else {
rendered = tr("%1 joined.").arg(name);
} }
return tr("%1 joined.").arg(name); break;
case Membership::Leave: case Membership::Leave:
if (!prevEvent) // Should only ever happen temporarily if (!prevEvent) // Should only ever happen temporarily
return ""; return "";
if (prevEvent->content.membership == Membership::Invite) { if (prevEvent->content.membership == Membership::Invite) {
if (event->state_key == event->sender) if (event->state_key == event->sender)
return tr("%1 rejected their invite.").arg(name); rendered = tr("%1 rejected their invite.").arg(name);
else else
return tr("Revoked the invite to %1.").arg(name); rendered = tr("Revoked the invite to %1.").arg(name);
} else if (prevEvent->content.membership == Membership::Join) { } else if (prevEvent->content.membership == Membership::Join) {
if (event->state_key == event->sender) if (event->state_key == event->sender)
return tr("%1 left the room.").arg(name); rendered = tr("%1 left the room.").arg(name);
else else
return tr("Kicked %1.").arg(name); rendered = tr("Kicked %1.").arg(name);
} else if (prevEvent->content.membership == Membership::Ban) { } else if (prevEvent->content.membership == Membership::Ban) {
return tr("Unbanned %1").arg(name); rendered = tr("Unbanned %1").arg(name);
} else if (prevEvent->content.membership == Membership::Knock) { } else if (prevEvent->content.membership == Membership::Knock) {
if (event->state_key == event->sender) if (event->state_key == event->sender)
return tr("%1 redacted their knock.").arg(name); rendered = tr("%1 redacted their knock.").arg(name);
else else
return tr("Rejected the knock from %1.").arg(name); rendered = tr("Rejected the knock from %1.").arg(name);
} else } else
return tr("%1 left after having already left!", return tr("%1 left after having already left!",
"This is a leave event after the user already left and shouln't " "This is a leave event after the user already left and shouldn't "
"happen apart from state resets") "happen apart from state resets")
.arg(name); .arg(name);
break;
case Membership::Ban: case Membership::Ban:
return tr("%1 was banned.").arg(name); rendered = tr("%1 was banned").arg(name);
break;
case Membership::Knock: case Membership::Knock:
return tr("%1 knocked.").arg(name); rendered = tr("%1 knocked.").arg(name);
default: break;
return "";
} }
if (event->content.reason != "") {
rendered += tr(" Reason: %1").arg(QString::fromStdString(event->content.reason));
}
return rendered;
} }

View File

@ -35,17 +35,17 @@ enum EventType
/// m.room.canonical_alias /// m.room.canonical_alias
CanonicalAlias, CanonicalAlias,
/// m.room.create /// m.room.create
Create, RoomCreate,
/// m.room.encrypted. /// m.room.encrypted.
Encrypted, Encrypted,
/// m.room.encryption. /// m.room.encryption.
Encryption, Encryption,
/// m.room.guest_access /// m.room.guest_access
GuestAccess, RoomGuestAccess,
/// m.room.history_visibility /// m.room.history_visibility
HistoryVisibility, RoomHistoryVisibility,
/// m.room.join_rules /// m.room.join_rules
JoinRules, RoomJoinRules,
/// m.room.member /// m.room.member
Member, Member,
/// m.room.name /// m.room.name
@ -152,6 +152,7 @@ public:
State, State,
IsEncrypted, IsEncrypted,
ReplyTo, ReplyTo,
RoomId,
RoomName, RoomName,
RoomTopic, RoomTopic,
Dump, Dump,
@ -170,6 +171,10 @@ public:
Q_INVOKABLE QString formatDateSeparator(QDate date) const; Q_INVOKABLE QString formatDateSeparator(QDate date) const;
Q_INVOKABLE QString formatTypingUsers(const std::vector<QString> &users, QColor bg); Q_INVOKABLE QString formatTypingUsers(const std::vector<QString> &users, QColor bg);
Q_INVOKABLE QString formatMemberEvent(QString id); Q_INVOKABLE QString formatMemberEvent(QString id);
Q_INVOKABLE QString formatJoinRuleEvent(QString id);
Q_INVOKABLE QString formatHistoryVisibilityEvent(QString id);
Q_INVOKABLE QString formatGuestAccessEvent(QString id);
Q_INVOKABLE QString formatPowerLevelEvent(QString id);
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;