Just loading that plugin already triggers an HTTP request, so lets only
do that when really needed and even more importantly, not for every single
location delegate again.
Create a cpp helper class to calculate the correct delegate width given it's parent width.
This is designed to be more robust and hopefully easier to understand than the current mass of javascript calcs.
BUG: 470167
Always use `NeoChatRoom::getUser` for getting user details in a room context.
- `MessageEventModel` now calls `getUser`
- `getUser` is now overloaded to also be able to take a `NeoChatUser*`
- add params to `getUser` that are needed for the model outputs
Restore the functionality to edit or reply to the last message in the `chatbar`.
This is achieved be moving the functions `getLastLocalUserMessageEventId` and `getLatestMessageFromRow` to `NeoChatRoom` as `editLastMessage` and `replyLastMessage` as `chatbar` no longer has access to `messageEventModel`.
The functions are also simplified as they only need to find the `eventId` and always from row 0 as this was the only use of the functions.
BUG: 469733
We can't (easily) make this declarative, since there are no spaces on startup, causing the loader to be disabled,
making the repeater not load anything, which means the loader stays disabled.
We should figure out a better solution, since this means that the drawer doesn't open immediately when joining a space,
but for now this fix is better then the current bug.
Create a reaction model that provides all the required data for `ReactionDelegate` so that none need to be calculated in QML.
This also cleans up the API for `ReactionDelegate`
Limit the maximum number of avatars shown for other user read markers and collapsed state events
For state events \

For read markers \

Unread count is deprecated and notification count should be used in all cases. As such remove unreadCount and use notification count in all places it was being used.
Fixesnetwork/neochat#76 \
BUG: 466515
This move the finding of links and the creation of a `linkpreviewer` into c++.
- The links are now extracted from the text in `texthandler`
- The `messageeventmodel` now creates and stores `linkpreviewers` for events that have links in the current room.
Two new model roles have been created to let a text delegate know when the link preview should be shown (`showLinkPreview`) and pass the link previewer (`linkPreviewer`). Empty link previewer are returned where link don't exist so the qml doesn't have to have checks for whether the parameters are undefined.
Further improvements to the handling of `mediaInfo` in `messageeventmodel`.
`blurhash` and `thumbnailInfo` are now replaced with a single `tempInfo` object that contains a single temp source. The priority is thumbnail > `blurhash` > empty if none exist.
Fixesnetwork/neochat#235