Commit Graph

950 Commits

Author SHA1 Message Date
Nicolas Werner 4ca8da9a89 Allow replying with an image 2020-01-12 17:07:22 +01:00
Nicolas Werner 4727f1c2bb Fetch missing events for replies 2020-01-11 18:53:32 +01:00
Nicolas Werner 2b3dc3d8b9 Implement fancy reply rendering
This currently assumes the event, that is replied to, is already
fetched. If it isn't, it will render an empty reply. In the future we
should fetch replies before rendering them.
2020-01-11 14:07:51 +01:00
Nicolas Werner 51d7e64992 Simplify read message logic with inverted timeline 2020-01-06 18:29:08 +01:00
Nicolas Werner 5af6f6528b Use fetchMore for native lazy loading of item model data 2020-01-06 18:29:08 +01:00
Nicolas Werner 946ab4d0f2 invert timeline 2020-01-06 18:29:08 +01:00
Nicolas Werner e084543cc0 Move visitors out of TimelineModel 2019-12-27 21:50:37 +01:00
Nicolas Werner 3bbd034781 Fix transitive dependencies on iostream 2019-12-23 05:22:03 +01:00
Nicolas Werner ceb6f85ccb Actually include header that provides std::signal instead of signal 2019-12-15 03:51:33 +01:00
Nicolas Werner 79f967da8c Reduce Cache.h includes further via one forward declaration 2019-12-15 03:34:37 +01:00
Nicolas Werner 37fbcaf07b Reduce includes of MatrixClient.h, as it is the most expensive header 2019-12-15 03:19:33 +01:00
Nicolas Werner 5fc1f3bd67 Reduce overhead of Cache.h 2019-12-15 02:56:04 +01:00
Nicolas Werner 7d6a015f36 Add qml debugging option 2019-12-14 23:48:28 +01:00
Nicolas Werner 935727864a Increase max cache size and remove const from lmdb constants
fixes compilation issues with last released lmdb++
2019-12-14 23:41:54 +01:00
Nicolas Werner 13df852479 Reduce some include of Cache.h since it needs 11s on average 2019-12-14 23:40:32 +01:00
Nicolas Werner 659e36b113 Update to c++17 2019-12-14 18:59:38 +01:00
Nicolas Werner 932dbf38fe Fix position of invite button and elide long button texts 2019-12-13 21:05:28 +01:00
Nicolas Werner ba25771c08 Make invites always stick to the top
This also removes an ugly hack, that was needed before.
2019-12-13 20:49:27 +01:00
Nicolas Werner 9c1912ed93 Fix preview of sent encrypted images 2019-12-13 01:31:14 +01:00
Nicolas Werner 31b00c445b Send encrypted files as generic mimetype and actually set url 2019-12-12 23:17:17 +01:00
Nicolas Werner e98a61fea6 Show topic and name changes in timeline 2019-12-10 14:46:52 +01:00
Nicolas Werner 362efbf5b9 Restore linkification of messages 2019-12-06 02:57:08 +01:00
Nicolas Werner 43d7fe0d35 Implement sending encrypted files 2019-12-05 15:31:53 +01:00
Nicolas Werner 5bfdaff778 Implement decryption of images
It is a bit of a hack, but it works...
2019-12-03 23:34:16 +01:00
Nicolas Werner a689118d71 lint 2019-12-03 19:49:56 +01:00
Nicolas Werner b8f6e4ce64 Add encrypted file download 2019-12-03 02:48:29 +01:00
Nicolas Werner 6c2ec3fe67 Rename qml namespace from com.github.nheko to im.nheko 2019-11-30 01:43:39 +01:00
Nicolas Werner 9fd279c020 Show encryption enabled and use a non zero size for zero size vide 2019-11-23 20:07:15 +01:00
Nicolas Werner 7bd875004f Only mark messages as read, when room is active 2019-11-23 20:07:15 +01:00
Nicolas Werner 5429b425e9 Lint 2019-11-23 20:07:15 +01:00
Nicolas Werner cf88499ccb Fix replies to encrypted events 2019-11-23 20:07:15 +01:00
Nicolas Werner 001c94865c Fix windows build
No idea, why apply visitor doesn't work with temporaries?
2019-11-23 20:07:15 +01:00
Nicolas Werner c424e397b0 Add loading spinner and restore message send queue 2019-11-23 20:07:15 +01:00
Nicolas Werner 562169965c Show only messages in room list 2019-11-23 20:07:15 +01:00
Nicolas Werner 91d1f19058 Remove old timeline 2019-11-23 20:07:15 +01:00
Nicolas Werner 2bfb885b47 optionally use QQuickWidget and replace ColorOverlay -> colorImageProvider 2019-11-23 20:06:15 +01:00
Nicolas Werner 1268e9f11c Make replies format nicer
Also lays a bit of groundwork for better reply rendering
2019-11-23 20:06:15 +01:00
Nicolas Werner 88dc72df4f Enable link handling 2019-11-23 20:06:15 +01:00
Nicolas Werner 993926e189 Make user clickable and improve button cursor look 2019-11-23 20:06:15 +01:00
Nicolas Werner 4f7a45a0a6 Improve avatar look and layouting
Thanks to red_sky for the feedback!
2019-11-23 20:06:15 +01:00
Nicolas Werner bde71a6cbc fixup bad room list translation commit 2019-11-23 20:06:15 +01:00
Nicolas Werner 2c37beba8d Fix translation of roomlist message preview
This also makes long messages unreadable, because we don't shorten long
usernames anymore. We may eventually want to do that again, but it is
hard with translations and we probably want to shorten the displayname
more, as before this change the message was only ever as long as the
timestamp, which is usually just 5 characters...
2019-11-23 20:06:15 +01:00
Nicolas Werner 6b6085b270 Actually fix updating roomlist on new messages 2019-11-23 20:06:15 +01:00
Nicolas Werner 15badebc77 Show own messages in RoomList 2019-11-23 20:06:15 +01:00
Nicolas Werner b1f1cb2b56 Redirect qt logger 2019-11-23 20:06:15 +01:00
Nicolas Werner 0d8bf6c676 lint 2019-11-23 20:06:15 +01:00
Nicolas Werner 3d6f502bcc Incubate delegates asynchronously 2019-11-23 20:06:15 +01:00
Nicolas Werner c8f97216fa Small fixes to delegate chooser implementation 2019-11-23 20:06:15 +01:00
Nicolas Werner c37495fae2 Use a basic implementation of a DelegateChooser for compat with older Qt
The interface is taken from Qt/KDE, but the implementation is different,
because the Qt implementation depends on some Qt internals.
2019-11-23 20:06:15 +01:00
Nicolas Werner cff46d97a8 Add native themeing to QML (where possible) 2019-11-23 20:06:15 +01:00
Nicolas Werner a83ae7e95f Fix section layout issues and pagination issues
Pagination could get stuck, if the messages request failed.
Section height seemes to have been calculated to late, which would make
some section overlap the next message in some cases. Fix that by doing
the height calculation manually.
2019-11-23 20:06:15 +01:00
Nicolas Werner 0fd2199112 Load content if no scrollbar is needed 2019-11-23 20:06:15 +01:00
Nicolas Werner 8ebef4eed2 Size images/videos by timeline width 2019-11-23 20:06:15 +01:00
Nicolas Werner ec6953d0c0 Fix linting issues 2019-11-23 20:06:15 +01:00
Nicolas Werner 241c0236fc Try to fix windows Winsock.h compilation error 2019-11-23 20:06:15 +01:00
Nicolas Werner 425d534e22 Enable Sticker and Emote messages 2019-11-23 20:06:15 +01:00
Nicolas Werner ea98d7b2ae Add simple audio message widget 2019-11-23 20:06:15 +01:00
Nicolas Werner a8166462ad File messages (qml) 2019-11-23 20:06:15 +01:00
Nicolas Werner ea12c9f9bc Add basic read_event support (qml) 2019-11-23 20:06:15 +01:00
Nicolas Werner 1dd1a19b06 Update roomlist on new messages 2019-11-23 20:06:15 +01:00
Nicolas Werner aee29c6ed5 Reenable redactions 2019-11-23 20:06:15 +01:00
Nicolas Werner 0d3c9390c6 Rename initialize to sync, since it does the same thing 2019-11-23 20:06:15 +01:00
Nicolas Werner e2d733a01a Restore saving of media 2019-11-23 20:06:14 +01:00
Nicolas Werner 9b18440b4f Reenable ImageOverlay 2019-11-23 20:06:14 +01:00
Nicolas Werner 82091999c4 Add lock to encrypted messages 2019-11-23 20:06:14 +01:00
Nicolas Werner a5ccd00be0 Remove noisy decrypted message 2019-11-23 20:06:14 +01:00
Nicolas Werner bb60976e7e Reenable encrypted messages 2019-11-23 20:06:14 +01:00
Nicolas Werner 6c7e6b0e86 Fix read indicator 2019-11-23 20:06:14 +01:00
Nicolas Werner d34067a257 Enable read receipts action and sync read receipts from cache 2019-11-23 20:06:14 +01:00
Nicolas Werner 240b3a566b Add send/received indicator 2019-11-23 20:06:14 +01:00
Nicolas Werner d1fffd6617 Implement simple scroll state handling 2019-11-23 20:06:14 +01:00
Nicolas Werner 691c854201 Try to fix CI, no match for QString::arg(QStringRef) 2019-11-23 20:06:14 +01:00
Nicolas Werner 62d0cd74da Implement replies in qml timeline 2019-11-23 20:06:14 +01:00
Nicolas Werner 5c87d6faa6 Implement sending other message types in qml timeline
not using placeholders in timeline for now
2019-11-23 20:06:14 +01:00
Nicolas Werner a7595eab5a Reimplement sending basic text messages 2019-11-23 20:06:14 +01:00
Nicolas Werner a1c97fc8d6 Show redactions in qml timeline 2019-11-23 20:06:14 +01:00
Nicolas Werner 4efac5a247 Try to fix duplicate messages in certain edge cases (i.e. sync and pagination at the same time) 2019-11-23 20:06:14 +01:00
Nicolas Werner f260b8b4ae Fix shadow error 2019-11-23 20:06:14 +01:00
Nicolas Werner e20501cec7 Reenable display of encrypted messages 2019-11-23 20:06:14 +01:00
Nicolas Werner 7aca8a9430 Reenable view raw message 2019-11-23 20:06:14 +01:00
Nicolas Werner 86f4119a05 Implement basic ImageMessages in qml timeline
I suck at sizing so the images in the message are currently hardcoded to
300 pixels in width...
2019-11-23 20:06:14 +01:00
Nicolas Werner ebeb1eb772 Implement avatars in qml timeline 2019-11-23 20:06:14 +01:00
Nicolas Werner aae295cb02 Fix new messages not arriving in qml timeline 2019-11-23 20:06:14 +01:00
Nicolas Werner 8727831de7 Fix QML emojis 2019-11-23 20:06:14 +01:00
Nicolas Werner bbbd5df75f Use system colors for now 2019-11-23 20:06:14 +01:00
Nicolas Werner c4ba832331 Fix misc CI issues 2019-11-23 20:06:14 +01:00
Nicolas Werner c1ee22a53e Fix shadow warning 2019-11-23 20:06:14 +01:00
Nicolas Werner 34f5400e99 Implement TextMessage delegate
Text selection over multiple items doesn't work yet
2019-11-23 20:06:14 +01:00
Nicolas Werner 56e27ced25 Format date (close to) the old way in qml timeline 2019-11-23 20:06:14 +01:00
Nicolas Werner ccedbde38b Add avatar placeholder and scrollbar to qml timeline 2019-11-23 20:06:14 +01:00
Nicolas Werner 2dd636456c Add basic sections and button placeholders to qml timeline 2019-11-23 20:06:14 +01:00
Nicolas Werner 699fd7b38e Implement loading of history, when timeline is displayed 2019-11-23 20:06:14 +01:00
Nicolas Werner 47fbfd3f44 Add items to timline 2019-11-23 20:06:14 +01:00
Nicolas Werner 8b5c7b2f2f Add placeholder timeline model 2019-11-23 20:06:14 +01:00
Nicolas Werner 8e611abe87 Replace timeline with empty qml view 2019-11-23 20:06:14 +01:00
Michele Guerini Rocco 1659176c0d
escape html before parsing commonmark 2019-09-25 01:18:01 +02:00
Aidan Hahn 34ac2c4f75
re-re-linted 2019-09-03 21:23:54 -07:00
Aidan Hahn 4a223ef508
relinted 2019-09-03 19:59:08 -07:00
Aidan Hahn 5326d29e56
group similar ui options on settings page 2019-09-02 23:40:42 -07:00
Aidan Hahn 69fbaf9ae6
ran make lint to apply style guidelines 2019-09-02 23:30:59 -07:00
Aidan Hahn 3677c58a17
ReImplement UserSettings::setAvatarCircles 2019-09-01 19:54:50 -07:00
Aidan Hahn a38f390355
Merge branch '0.7.0-dev' of https://github.com/Nheko-Reborn/nheko into 0.7.0-dev-bugfix-71 2019-09-01 16:32:09 -07:00
Aidan Hahn ce978589b7
removed leftovers from previous refactor 2019-09-01 16:28:19 -07:00
Aidan Hahn 1e6fc6e342
fixed typoes in code, added layout metadata to new settings toggle. 2019-09-01 16:10:11 -07:00
Aidan Hahn a1c2aed36a
Refactored Avatar and RoomInfoListItem to access rounding settings in place 2019-09-01 14:41:23 -07:00
DeepBlueV7.X 5be967fb1d
Merge pull request #86 from Nheko-Reborn/avatar-memory-usage
Try to reduce memory usage by reusing avatar pixmaps
2019-08-30 23:15:09 +00:00
Joseph Donofry 98d4f14bd1
Fix themeing issues on mentions 2019-08-29 18:01:20 -04:00
Aidan Hahn b10d453bd5
add controll bits for avatar rounding 2019-08-28 21:36:28 -07:00
Aidan Hahn 8a47388ec6
rounding options for Avatar class 2019-08-28 18:34:04 -07:00
Aidan Hahn 26002bf0e4
added logic in avatar class to determine rounding type 2019-08-27 23:31:04 -07:00
Nicolas Werner c5f0c3221f Fix usage of deprecated find 2019-08-28 08:21:07 +02:00
Nicolas Werner 8b5515d5c1 Remove unused variables 2019-08-26 08:51:56 +02:00
Nicolas Werner 52056a79fa Try to reduce memory usage by reusing avatar pixmaps 2019-08-26 08:51:56 +02:00
Joseph Donofry 89015b9f18
Fix SIGNAL SLOT issue on mtx types 2019-08-19 20:44:58 -04:00
Joseph Donofry 8d04236fbd
Fix build issues w/ clang 2019-08-19 18:54:17 -04:00
Joseph Donofry bcdd97c85f
More updates to mentions functionality 2019-08-19 18:11:38 -04:00
Joseph Donofry 52a2621776
Fix issues with caching and loading of mentions.
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.
2019-08-12 22:09:40 -04:00
Joseph Donofry 8839cb7d68
Fix missing include in prior commit 2019-08-10 13:20:13 -04:00
Joseph Donofry d5bb0936bf
Use 'system' theme as default if QT_QPA_PLATFORMTHEME is set
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.
2019-08-10 13:14:37 -04:00
Joseph Donofry 7c7889a04d
Fix linting issues w/ the last commit 2019-08-09 23:36:45 -04:00
Joseph Donofry 3f563e1e6e
Cache User Mentions
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.
2019-08-09 23:34:44 -04:00
Joseph Donofry 41dc420edd
Fix linting issues 2019-08-06 08:16:19 -04:00
Joseph Donofry dbdaf35907
Cache user mentions 2019-08-05 23:00:07 -04:00
Joseph Donofry 24a6495291
Fix lambda capture issue 2019-07-29 15:37:21 -04:00
Joseph Donofry fd2d4d6db3
Update mentions dialog
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.
2019-07-28 23:14:10 -04:00
Joseph Donofry 497774d623
Fix linting 2019-07-28 20:50:18 -04:00
Joseph Donofry b875a8debc
Update translation context 2019-07-28 18:45:37 -04:00
Joseph Donofry a9375add32
Address 'sent' translation issue 2019-07-28 18:40:23 -04:00
Nicolas Werner 0398c846f6 Add 'and' to typing display 2019-07-28 18:13:16 +02:00
Nicolas Werner b28115eb37 Fix message_type not being initialized correctly
Fixes "sent an audio file" replies, that were actually replies to text
messages.
2019-07-28 16:50:10 +02:00
Nicolas Werner dbb8eecf29 media->file in error message, when image upload fails 2019-07-28 16:16:02 +02:00
Nicolas Werner 50c3d4ed3a Add decryption error messages to translations 2019-07-28 13:16:13 +02:00
Nicolas Werner 1c9cc33902 Try to localise timestamps
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
2019-07-28 12:55:08 +02:00
Joseph Donofry f18a5dacda
Ignore badge label macos deprecations 2019-07-26 17:47:52 -04:00
Joseph Donofry 9fc079a4a9
Remove uneeded log message 2019-07-26 17:47:34 -04:00
Joseph Donofry 86888ee713
Fix bug with emoji font setting and clean linting 2019-07-26 17:44:44 -04:00
Joseph Donofry 778921be8a
Add emoji text selection option for non-mac 2019-07-26 17:31:59 -04:00
Nicolas Werner 78ed78c410 Improve layout of Emoji Picker
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)
2019-07-25 11:49:15 +02:00
Joseph Donofry 49ec388c1d
Merge branch '0.7.0-dev' of ssh://github.com/Nheko-Reborn/nheko into 0.7.0-dev 2019-07-21 21:58:48 -04:00
Joseph Donofry 8b2488b7ef
Update Mentions UI
Mentions are now an '@' icon in the upper right.

UI Popup is now a smaller dialog.

Still lots of work to be done here.
2019-07-21 21:58:11 -04:00
Nicolas Werner cefe5fe719 Fix copy and pasting image from clipboard
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.
2019-07-22 02:38:44 +02:00
Nicolas Werner 512db8c6ff Actually set attributes before starting the app
fixes "Attribute Qt::AA_EnableHighDpiScaling must be set before
QCoreApplication is created."
2019-07-22 00:03:12 +02:00
Joseph Donofry d2af827194
Fix linting issues 2019-07-16 22:50:23 -04:00
Joseph Donofry 579bf23460
Add User Mentions 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.
2019-07-16 22:39:10 -04:00
Joseph Donofry e5576f03d4
Fix additional Qt version issue 2019-07-05 16:31:01 -04:00
Joseph Donofry 4c0d4f35fe
Fix support for Qt versions < 5.11 2019-07-04 22:58:56 -04:00
Joseph Donofry 2484e0c118
Fix formatting issues 2019-07-04 21:31:28 -04:00
Joseph Donofry c0a010acbb
Fix deprecated function call issues with Qt 5.13
Update to mtxclient 0.3.0
2019-07-04 21:20:19 -04:00
Joseph Donofry 175737c28b
Fix some linting issues 2019-07-04 13:18:32 -04:00
Nicolas Werner 713f9dbe89 Show room version in settings 2019-07-04 01:26:16 +02:00