As discussed in network/neochat#161, when clicking the image it now only covers the neochat window. A modal popup that covers the neochat window is now used. The app behind get dimmed.
Left clicking anywhere closes the preview as well as the using the close button. Right clicking on the image itself still gives the image's context menu.
Before

After

Latest

Closesnetwork/neochat#161
Convert to rowLayout so that the bubble header works in right to left mode.
Before

After

Add a temporary highlight when the goToEvent is triggered.
This implementation also alows a temporary highlight of an item at anytime if the timeline container's isTemporaryHighlighted property is set to true.
Closesnetwork/neochat#34
This makes (https) links show up as actual links when they're in a message with a `formatted_body`. For example, the pursuivant messages in any KDE channel (like #kirigami), or links which are in a reply to another message/image.
Also corrected a regex mistake in another place using the same link replacement regex.
Fix#331
Moves the highlight to the timeline container object itself so the whole delegate is highlighted. This was suggested for compact mode but I also left it visible for bubble as I think it still works and adds some user feedback.
Fine tunes the hover actions as follows:
- In compact mode as long as the screen is wide enough they are inset further so they don't overlap the up and down buttons.
- In bubble mode for a user message on the right they are inset slightly further so that they don't overlap the scrollbar
Fine tuned the spacing around the avatar and highlight.
Based upon the suggestions here network/neochat#550
Bubble Before - no highlight can be seen

Bubble After

Compact Before

Compact After

Uses Matrix's preview API to generate embedded link previews.
Only title and description for now.

When using Breeze light:
| Before | After |
| ------ | ------ |
|  |  |
Since the preparation for encrypted events landed, audio playback was broken since QtMultimedia (gstreamer)
doesn't use our custom QNAM. Instead of letting QtMultimedia download the media, we thus need to manually download it
and point QML Audio to the local file. On the positive side, this also allows encrypted Audio files to be played and enables us to seek in the audio delegate :)
It does however mean that we do need to do an annoying bit of manual state management.
BUG: 457687
When hovering over a link without a target, qt5 will report the link target to be "1", which is wrong.
To work around this, we manually check if the link is "1" and if it is, we discard it.
In theory, this means that we won't get a preview for any link that actually *is* "1", but why would any link be "1"?
It's not worth reporting this to Qt since it seems fixed in Qt6
BUG: 456877
Implement showing a long datetime as a tooltip when hovering over the timestamp for a message. The timestamp is also moved to just after the username of the poster this means it will not be under the hover buttons unless the message is very short.
Also some cleanup of the alignment of items in the bubble. The reply text is now indented the same amount as the username and message and the padding isn't removed from the username and message when avatars are disabled.
Implements: network/neochat#223
QDesktopServices::openUrl does not have XDG activation support yet so it can't raise an existing browser window when opening URLs
Instead use KIO::OpenUrlJob, which does support that
In compact mode with userMessagesOnRight, the user
avatar disappeared and their messages left space
on the right for an avatar that wasn't displayed
anymore.