Mentions are now loaded from the cache instead of
directly from the web request. Mentions are also
properly saved to the cache now (instead of as empty
strings). Still lots of tweaks left on this feature.
On first launch, before the user has configured any settings,
check the value of the QT_QPA_PLATFORMTHEME environment var.
If it is set, use the system theme as the default instead of the
light theme. This fixes#72.
Cache user mentions when they are retrieved from the server.
This logic currently isn't being utilized by the UI. Additionally,
the app should use a 'since' value to only get mentions newer
than those stored in the DB, to avoid excessive web requests.
This will be implemented in a future commit.
Mentions are now separated into 'this room' and 'all rooms'
tab., which allows the user to filter on the current room
if they desire. Should add additional logic in the future
to show which room the mention was in the for the 'all rooms'
view.
I'm not sure, if that is the right way, but Qt doesn't really have a way
to format custom localised dates, so I tried to find the closest
approximations to what we currently have.
Relates to #69
Respect system styling
Increase size of emojis (to remove empty space)
Add hover effect (partially adresses #41)
Less hardcoding of sizes
Use emoji font (color)
If the QMimeData contains an image, it actually has a mime type of
application/x-qt-image. At least in some cases accessing the image/*
data returns a 0 length array. Accessing the data via ->imageData works
however. So we use that as our accessor and pass it to the preview
dialog.
Add a RoomListItem-like button that opens a dialog
containing all of the messages that would result in a
highlight from the server (for example, the user is mentioned,
or @room is mentioned).
This is VERY rudimentary and will be completely reworked in the future
to take advantage of the existing TimelineView class, instead of
using a dialog like it does now. The button to show the mentions
also needs work.
Quoted replies now include matrix.to links for the event and the user.
UI Rendering has been (slightly) improved... still very WIP.
Restructured the reply structure in the code for future usability
improvements.
Add placeholder UI for showing replies in the text entry widget.
Existing quoting capability has been removed (Temporarily), as
it was replaced with the new reply capability. Replies sent from
nheko do not currently appear correctly in the timeline (this
will be fixed in a future commit).
Parsing html as xml has inherent problems, most notable there are many
matrix clients that don't escape ampersands in urls of mx-replies, etc.
(See issue #18)
This also removes the replacement of <mx-reply> as it isn't strictly
needed.
Also the QRegExp is replaced with the Qt5 QRegularExpression for
perfomance and because it supports lookahead and lookbehind.
I'm pretty sure that the original code also replaced href="" with
href=\"\", which was probably wrong, but I'm not to sure about that.
Fixes#18
Colors are generated asynchronously now and the TimelineItem is
updated when the color generation finishes. This allows the UI
to stay responsive while new colors are being generated.
When opening images in the full-screen overlay, there is now
a download button next to the close button. This button utilizes
the same functionality as the right-click->save image button.
Restored the emoji picker, but it now falls back to the system
instead of forcing Emoji One. The allows users to user the
picker for convenience, but doesn't enforce the emoji style on them.
Add initial loading of qt jdenticon plugin:
https://github.com/redsky17/qt-jdenticon
Currently, the library's functionality has not been integrated
into the rest of nheko. Next step is to add a configuration
item in the User Settings and use the plugin to generate
avatars for users without their own picture. These avatars
should be cached in the Cache object.