Fix state event visiblity in timeline

Rework the filtering of state events in the timeline and for lastevent. This is now consistent everywhere and includes the following:
- The timeline settings are obeyed everywhere
- A new setting is added to filter all state events
- Last event obeys the timeline setting in all cases
- The roomlist will show a state event as the latest event if it's visible in the timeline
- Names are no longer hyperlinked in eventToString if plaintext is selected.

BUG: 455048\
Closes network/neochat#148
This commit is contained in:
James Graham
2023-03-13 19:00:22 +00:00
parent 81c73037ca
commit 741cb57105
9 changed files with 101 additions and 93 deletions

View File

@@ -77,8 +77,38 @@ Kirigami.ScrollablePage {
title: i18n("Timeline Events")
}
MobileForm.FormCheckDelegate {
id: showDeletedMessages
text: i18n("Show deleted messages")
checked: Config.showDeletedMessages
enabled: !Config.isShowDeletedMessagesImmutable
onToggled: {
Config.showDeletedMessages = checked
Config.save()
}
}
MobileForm.FormDelegateSeparator { above: showDeletedMessages; below: showStateEvents }
MobileForm.FormCheckDelegate {
id: showStateEvents
text: i18n("Show state events")
checked: Config.showStateEvent
enabled: !Config.isShowStateEventImmutable
onToggled: {
Config.showStateEvent = checked
Config.save()
}
}
MobileForm.FormDelegateSeparator {
visible: Config.showStateEvent
above: showStateEvents
below: showLeaveJoinEventDelegate }
MobileForm.FormCheckDelegate {
id: showLeaveJoinEventDelegate
visible: Config.showStateEvent
text: i18n("Show leave and join events")
checked: Config.showLeaveJoinEvent
enabled: !Config.isShowLeaveJoinEventImmutable
@@ -88,10 +118,15 @@ Kirigami.ScrollablePage {
}
}
MobileForm.FormDelegateSeparator { above: showLeaveJoinEventDelegate; below: showNameDelegate }
MobileForm.FormDelegateSeparator {
visible: Config.showStateEvent
above: showLeaveJoinEventDelegate
below: showNameDelegate
}
MobileForm.FormCheckDelegate {
id: showNameDelegate
visible: Config.showStateEvent
text: i18n("Show name change events")
checked: Config.showRename
enabled: !Config.isShowRenameImmutable
@@ -101,10 +136,15 @@ Kirigami.ScrollablePage {
}
}
MobileForm.FormDelegateSeparator { above: showNameDelegate; below: showAvatarChangeDelegate }
MobileForm.FormDelegateSeparator {
visible: Config.showStateEvent
above: showNameDelegate
below: showAvatarChangeDelegate
}
MobileForm.FormCheckDelegate {
id: showAvatarChangeDelegate
visible: Config.showStateEvent
text: i18n("Show avatar update events")
checked: Config.showAvatarUpdate
enabled: !Config.isShowAvatarUpdateImmutable
@@ -113,19 +153,6 @@ Kirigami.ScrollablePage {
Config.save()
}
}
MobileForm.FormDelegateSeparator { above: showAvatarChangeDelegate; below: showDeletedMessages }
MobileForm.FormCheckDelegate {
id: showDeletedMessages
text: i18n("Show deleted messages")
checked: Config.showDeletedMessages
enabled: !Config.isShowDeletedMessagesImmutable
onToggled: {
Config.showDeletedMessages = checked
Config.save()
}
}
}
}