diff --git a/commet/lib/config/preferences.dart b/commet/lib/config/preferences.dart index ced30c1c3..a9efef13b 100644 --- a/commet/lib/config/preferences.dart +++ b/commet/lib/config/preferences.dart @@ -301,6 +301,9 @@ class Preferences { BoolPreference showRoomPreviewsInSpaceSidebar = BoolPreference("show_room_previews_in_space_sidebar", defaultValue: true); + BoolPreference showUserIdInTimeline = + BoolPreference("show_user_id_in_timeline", defaultValue: false); + BoolPreference autoFocusMessageTextBox = BoolPreference( "auto_focus_message_textbox", defaultGetter: () => Layout.mobile ? false : true, diff --git a/commet/lib/ui/molecules/timeline_events/events/timeline_event_view_message.dart b/commet/lib/ui/molecules/timeline_events/events/timeline_event_view_message.dart index 6a9e3d650..14b5bae8e 100644 --- a/commet/lib/ui/molecules/timeline_events/events/timeline_event_view_message.dart +++ b/commet/lib/ui/molecules/timeline_events/events/timeline_event_view_message.dart @@ -126,6 +126,7 @@ class _TimelineEventViewMessageState extends State return TimelineEventLayoutMessage( senderName: senderName, senderColor: senderColor, + senderId: preferences.showUserIdInTimeline.value ? senderId : null, senderAvatar: senderAvatar, showSender: showSender, formattedContent: formattedContent, diff --git a/commet/lib/ui/molecules/timeline_events/layouts/timeline_event_layout_message.dart b/commet/lib/ui/molecules/timeline_events/layouts/timeline_event_layout_message.dart index e55a2bd6b..dd94dcd58 100644 --- a/commet/lib/ui/molecules/timeline_events/layouts/timeline_event_layout_message.dart +++ b/commet/lib/ui/molecules/timeline_events/layouts/timeline_event_layout_message.dart @@ -10,6 +10,7 @@ class TimelineEventLayoutMessage extends StatelessWidget { {super.key, required this.senderName, required this.senderColor, + this.senderId, this.senderAvatar, this.formattedContent, this.attachments, @@ -26,6 +27,7 @@ class TimelineEventLayoutMessage extends StatelessWidget { this.avatarBuilder, this.showSender = true}); final String senderName; + final String? senderId; final Color senderColor; final ImageProvider? senderAvatar; final Widget? formattedContent; @@ -70,7 +72,15 @@ class TimelineEventLayoutMessage extends StatelessWidget { Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ - name(), + Row( + mainAxisAlignment: MainAxisAlignment.start, + spacing: 3, + children: [ + name(), + if(senderId != null) + tiamat.Text.labelLow(senderId!, color: Color.from(alpha: 1.0, red: 0.5, green: 0.5, blue: 0.5),) + ] + ), if (timestamp != null) tiamat.Text.labelLow(timestamp!), ], diff --git a/commet/lib/ui/organisms/chat/.chat_view.dart.kate-swp b/commet/lib/ui/organisms/chat/.chat_view.dart.kate-swp new file mode 100644 index 000000000..864d75378 Binary files /dev/null and b/commet/lib/ui/organisms/chat/.chat_view.dart.kate-swp differ diff --git a/commet/lib/ui/pages/settings/categories/app/appearance_settings_page.dart b/commet/lib/ui/pages/settings/categories/app/appearance_settings_page.dart index 8e7524d29..141bdee32 100644 --- a/commet/lib/ui/pages/settings/categories/app/appearance_settings_page.dart +++ b/commet/lib/ui/pages/settings/categories/app/appearance_settings_page.dart @@ -58,6 +58,16 @@ class _AppearanceSettingsPageState extends State { desc: "Description for enabling using the preview list in the space sidebar"); + String get labelShowUserIdInMessage => Intl.message( + "Show User ID in Timeline", + name: "labelShowUserIdInMessage", + desc: "Label for showing full user ID in message rendering"); + + String get labelShowUserIdInMessageDescription => Intl.message( + "Show the full address of a user next to their name in the timeline", + name: "labelShowUserIdInMessageDescription", + desc: "Description for showing full user ID in message rendering"); + @override void initState() { super.initState(); @@ -128,6 +138,12 @@ class _AppearanceSettingsPageState extends State { preference: preferences.usePlaceholderRoomAvatars, title: labelUseRoomAvatarPlaceholders, description: labelUseRoomAvatarPlaceholdersDescription, + ), + const Seperator(), + BooleanPreferenceToggle( + preference: preferences.showUserIdInTimeline, + title: labelShowUserIdInMessage, + description: labelShowUserIdInMessageDescription, ) ], ),