Konstantinos Sideris
a21db789e7
Fix double href links on username pills
2018-09-07 14:52:29 +03:00
Konstantinos Sideris
896fe069b6
Use proxy objects on lambdas instead of raw pointers
...
When the object is destroyed the connections will be removed
automatically by Qt.
fixes #433
2018-09-07 12:24:09 +03:00
Konstantinos Sideris
a1af99becb
Put back removed links
2018-09-06 22:41:02 +03:00
Konstantinos Sideris
8ad01f520a
Add initial support for displaying formatted messages
2018-09-06 22:34:41 +03:00
Konstantinos Sideris
990a3a97c7
Merge matrix-structs into the client lib
2018-09-01 13:35:10 +03:00
Konstantinos Sideris
e9a8e51208
Guard against flickering for items added to the top of the timeline
2018-08-31 18:34:54 +03:00
Konstantinos Sideris
28dda237c2
Don't block on empty from token
2018-08-31 14:56:55 +03:00
Konstantinos Sideris
641364c105
Handle some more edge cases in timeline
2018-08-31 10:47:27 +03:00
Konstantinos Sideris
d608950bea
Stop calling /messages if the prev_batch token is empty
2018-08-31 09:57:04 +03:00
Konstantinos Sideris
56ee290b03
Add the ability to change the room avatar
...
fixes #418
2018-08-29 16:00:07 +03:00
Konstantinos Sideris
db9c37d336
Call adjustSize before showing the timeline widget
2018-08-28 00:19:39 +03:00
Konstantinos Sideris
7e16730692
Remove unnecessary height setting for timeline messages
...
This will remove some minor flickering (hopefully for good)
2018-08-27 21:32:24 +03:00
Konstantinos Sideris
aa2f6ce77d
Simplify dialog creation
2018-08-11 13:50:56 +03:00
Konstantinos Sideris
d4c3dac28f
Remove the reserved space gap for the typing notifications
2018-08-09 18:20:17 +03:00
Konstantinos Sideris
3fb57ac049
Add tooltips for the message indicators ( #377 )
2018-08-08 12:57:50 +03:00
Konstantinos Sideris
b5b5faa5ec
Consider the scale ratio when scaling down images
...
fixes #393
2018-08-01 21:10:03 +03:00
Konstantinos Sideris
069f0a1fbd
Use native scrollbar in the timeline
2018-07-25 18:48:11 +03:00
Konstantinos Sideris
bfdbd49e3e
Align timeline widgets to the bottom
2018-07-25 16:46:57 +03:00
Konstantinos Sideris
6583686a7c
Remove spacer & set sizePolicy on the timeline view & widgets
...
This was causing some flickering when many messages were added.
Mostly visible on macOS.
2018-07-23 21:54:13 +03:00
Konstantinos Sideris
9d718fccf4
Clear timeline widgets when they exceed a certain limit ( #158 )
...
That's a fix to deal with long running sessions which will end
up taking more & more memory given enough time.
2018-07-21 12:09:23 +03:00
Konstantinos Sideris
d7e5171bfa
Create user profile modal
2018-07-20 12:02:35 +03:00
Konstantinos Sideris
5540fc0737
Add user avatar after the 'encryption is enabled' message
...
fixes #378
2018-07-19 18:46:36 +03:00
Konstantinos Sideris
e4dedbcaba
Mark own read messages with a double checkmark ( #377 )
2018-07-17 23:50:18 +03:00
Konstantinos Sideris
0e814da91c
Move all files under src/
2018-07-17 16:37:25 +03:00
Konstantinos Sideris
31d09dbd68
De-duplicate the m.room.encryption event
2018-07-15 20:32:22 +03:00
Konstantinos Sideris
a9f02128a2
Use the http link for video messages
...
Add method to convert matrix content URIs to http links
2018-07-15 20:05:31 +03:00
Konstantinos Sideris
33490eddab
Remove the v2 namespace from the http client
2018-07-15 19:09:08 +03:00
Konstantinos Sideris
e6b45263bc
User reverse iterator instead of while loop
2018-07-15 18:58:09 +03:00
Konstantinos Sideris
6f07ab433e
Send image dimensions in m.image event
...
fixes #215
2018-07-10 23:31:51 +03:00
Konstantinos Sideris
6d474b77f1
Fix variable shadowing that caused the key response to be null
2018-07-08 21:24:44 +03:00
Konstantinos Sideris
278eccc040
Add context menu action to request encryption keys
2018-07-07 23:59:23 +03:00
Konstantinos Sideris
9a0e18dea7
Add a timeline message when encryption is enabled
2018-07-07 13:39:53 +03:00
Konstantinos Sideris
67458dd2f8
Mark all decrypted messages with a padlock
...
fixes #351
2018-07-07 12:35:29 +03:00
Konstantinos Sideris
3bc8d791fb
Don't download dependencies during build
...
fixes #346
2018-07-04 01:38:54 +03:00
Konstantinos Sideris
ccc6cd8dab
Mark encrypted messages with a lock icon
2018-07-01 19:40:53 +03:00
Konstantinos Sideris
5b5d35fd1f
Add basic support for replies ( #292 )
2018-06-30 15:13:15 +03:00
Konstantinos Sideris
4344b6964f
Save timeline messages in cache for faster startup times
2018-06-28 16:17:39 +03:00
Konstantinos Sideris
9802ea8809
Send one claim request per user that includes all devices
...
Add missing megolm algorithm field that was causing
the "unknown algorithm" error.
2018-06-25 17:19:52 +03:00
Konstantinos Sideris
74396e9aba
Verify signature of identity keys before sharing the megolm session
...
Ignore devices that fail the verification.
2018-06-20 00:38:34 +03:00
Konstantinos Sideris
961c880d55
Handle olm & lmdb exceptions during message decryption
...
fixes #345
2018-06-19 22:53:22 +03:00
Konstantinos Sideris
7ecabcd614
Mark encrypted rooms when processing room state
2018-06-18 18:36:19 +03:00
Konstantinos Sideris
4514d13948
Improve logging a bit
2018-06-18 12:29:24 +03:00
Konstantinos Sideris
66249ed126
Correctly mark received messages whose response came after /sync
2018-06-17 02:29:19 +03:00
Konstantinos Sideris
24e0285210
Don't try to send megolm session keys to devices with no one-time keys
2018-06-15 16:45:39 +03:00
Konstantinos Sideris
9102a141f3
Handle OLM_MESSAGE type of messages properly
2018-06-15 01:35:31 +03:00
Konstantinos Sideris
8e9d210a2a
Rename the log namespace to avoid symbol clash with the math function
...
- Patch the olm repo with a CMakeLists.txt file
2018-06-14 02:28:35 +03:00
Konstantinos Sideris
5d47cc3940
Add support for sending encrypted messages
2018-06-13 12:28:00 +03:00
Konstantinos Sideris
e5dd64c63a
Add method to convert PendingMessage's to event types
...
Add more logging during message sending
2018-06-12 22:35:10 +03:00
Konstantinos Sideris
36cb62748b
Add menu option to enable encryption in a private room
2018-06-12 09:45:26 +03:00
Konstantinos Sideris
626c680911
Add support for displaying decrypted messages
2018-06-10 20:03:45 +03:00
Konstantinos Sideris
b89257a34b
Migrate to mtxclient for the http calls
2018-06-09 16:03:14 +03:00
Konstantinos Sideris
0fe81ecd4a
Show Matrix ID tooltip when hovering over display name
...
fixes #212
2018-05-26 22:44:49 +03:00
Konstantinos Sideris
b371c15b5f
Properly resize Audio & File widgets
...
Remove empty space between username & timeline widgets
2018-05-26 17:05:57 +03:00
Konstantinos Sideris
90595beb16
Set fixed height for the DateSeparator & TextLabel
2018-05-26 10:34:34 +03:00
Konstantinos Sideris
3cf7ab9f04
Fix line break issue on timeline with long words
...
fixes #193
2018-05-23 16:33:30 +03:00
Konstantinos Sideris
4c4ea557b3
Replace shared pointers of MatrixClient with a single instance
2018-05-08 18:43:56 +03:00
Konstantinos Sideris
ed9501023a
Add support for retrieving the notification events ( #33 )
2018-05-05 16:38:41 +03:00
Konstantinos Sideris
8dd21b1dae
Remove the extra top margin from timeline widgets
2018-05-04 15:47:04 +03:00
Konstantinos Sideris
23accc50d6
Show user avatar for messages on different day or time gap > 15 mins
...
fixes #278
2018-05-01 23:32:11 +03:00
Konstantinos Sideris
62d54146a7
More consistent spacing between messages
2018-04-29 20:39:22 +03:00
Konstantinos Sideris
95120c602b
Refactor utils::getMessageDescription
2018-04-29 15:42:40 +03:00
Konstantinos Sideris
3f80725c33
Add support for displaying m.sticker events
...
fixes #291
2018-04-27 22:15:44 +03:00
Konstantinos Sideris
31f5fbf891
Improve the date separator widget
2018-04-25 15:38:25 +03:00
Konstantinos Sideris
2f00fc51bf
Cache refactoring
2018-04-21 16:35:03 +03:00
Konstantinos Sideris
33a8628059
Update the room list after a redacted event has been removed
...
fixes #286
2018-04-03 10:24:35 +03:00
Konstantinos Sideris
0a09ce0f75
Update first & last sender after message deletion
...
fixes #282
2018-03-27 21:07:39 +03:00
Konstantinos Sideris
72d5d6d286
Show avatars in the completion popup
2018-03-25 15:59:47 +03:00
Hawkheart
42733eeb86
TimelineView: remove unneeded date separators when deleting a redacted message ( #279 )
...
fixes #276
2018-03-20 08:59:00 +02:00
Konstantinos Sideris
d2d65b6662
More stylistic changes & dark theme tweaks
2018-03-19 20:26:14 +02:00
Konstantinos Sideris
7253dc2c54
roomlist: Put the message timestamp on the top
2018-03-18 15:54:53 +02:00
Konstantinos Sideris
fef7cd5b83
Don't count m.room.member or m.room.reaction events as viewable
2018-03-18 13:29:21 +02:00
Konstantinos Sideris
81d3bd8ce6
Remove redacted events from other users ( #171 )
2018-03-18 12:47:35 +02:00
Konstantinos Sideris
a0ae6cf5d5
Add ability to redact messages
2018-03-17 21:23:46 +02:00
Konstantinos Sideris
2fe0dbb38c
Fix CI & adjust snackbar animation
2018-03-17 11:38:06 +02:00
Konstantinos Sideris
511c58d608
Add context menu option to save images
...
fixes #265
2018-03-14 21:31:09 +02:00
Konstantinos Sideris
d6b61fbb14
Add context menu option to mark events individually as read
...
fixes #261
2018-03-11 17:56:40 +02:00
Konstantinos Sideris
39abf163b8
Crete a proxy for media to uniquely match signal to the caller
2018-03-07 21:23:57 +02:00
Konstantinos Sideris
ea22bdce18
Add a unique id for locally uploaded images
...
The event_id will be an empty string because we haven't received yet
2018-03-07 20:42:32 +02:00
Konstantinos Sideris
7f7f3a805b
Remove dead code & small refactorings using the std library
2018-03-03 22:08:56 +02:00
Konstantinos Sideris
020f153f1f
Fix crash when trying to use automatically deleted ImageOverlay dialog
2018-02-20 22:08:16 +02:00
Konstantinos Sideris
f95998a64b
Be explicit about the captured parameters in lambdas
2018-02-20 17:09:11 +02:00
Konstantinos Sideris
127c52e39a
Scale down the preview image to fit in the application window
...
On macOS the modal has some extra space around the main content
that might make it unusable with a big enough image.
2018-02-19 23:33:11 +02:00
Konstantinos Sideris
1764bacd4b
Move scaleImage() in Utils
2018-02-19 23:32:37 +02:00
Konstantinos Sideris
8b139c32a3
Minor adjustments
2018-02-19 22:09:21 +02:00
christarazi
cd9d1a2ec6
Support audio, video, generic file for pasting ( #220 )
...
* Refactor widget items to use same interface
* Support audio, video, generic file for pasting
* Add utils function for human readable file sizes
* Set correct MIME type for media messages
This change also determines the size of the upload once from the
ContentLengthHeader, rather than seeking the QIODevice and asking for
its size. This prevents any future trouble in case the QIODevice is
sequential (cannot be seeked). The MIME type is also determined at
upload once, rather than using the QIODevice and the underlying data
inside.
* Allow for file urls to be used as fall-back
This fixes an issue on macOS which uses `text/uri-list` for copying
files to the clipboard.
fixes #228
2018-02-18 22:52:31 +02:00
Konstantinos Sideris
7e2f835eec
Properly detect the start of the timeline
...
We can't rely solely on the number of the returned messages
because it could be zero if all the event types are unknown.
fixes #168
2018-02-17 19:29:53 +02:00
Konstantinos Sideris
86280098b4
Implement server-side notification count
2018-02-15 21:58:57 +02:00
Konstantinos Sideris
6d08e67abd
Simplify variant access with std::visit
2018-02-11 19:30:22 +02:00
Konstantinos Sideris
ba8faa357f
Remove empty destructors
2018-02-10 16:29:09 +02:00
Konstantinos Sideris
ddcc0f7f60
Generate a date separator before local messages
2018-02-10 01:09:30 +02:00
Chris Tarazi
31eb0a9c88
Create new font for checkmark
2018-02-07 21:32:22 -08:00
Chris Tarazi
2dcc01633e
Apply fixed width for checkmark for all messages
2018-02-07 21:32:21 -08:00
Chris Tarazi
a15079c68f
Fix #217 : create space for checkmark beforehand
2018-02-07 21:32:20 -08:00
Konstantinos Sideris
43ba4d5ed5
Handle case with no available rooms
...
fixes #181
2018-02-02 10:51:07 -07:00
Konstantinos Sideris
96e99710fc
Second attempt to fix failback text size for ImageItem
2018-01-31 09:27:34 -07:00
Konstantinos Sideris
117a739bc4
Add enough space for the failback text in ImageItem
2018-01-30 15:30:25 -07:00
Konstantinos Sideris
07a4e38ed8
Increase pagination retry timeout
2018-01-30 13:40:48 -07:00
Konstantinos Sideris
b1f232bf86
Render messages received by /messages
on demand
2018-01-30 12:56:01 -07:00
Konstantinos Sideris
67418e11b1
Add missing processEvents call
2018-01-25 17:18:37 +02:00
Konstantinos Sideris
2cf3161bff
Call processEvents while rendering new events
2018-01-25 16:49:31 +02:00
Konstantinos Sideris
1fad9398fc
Use more stl containers & minor refactorings
2018-01-24 20:46:37 +02:00
Konstantinos Sideris
9eedcd700a
Remove trailing whitespace from text messages
...
fixes #216
2018-01-23 18:14:13 +02:00
Konstantinos Sideris
2274642f12
Show the scroll-down button when showing the timeline
2018-01-23 17:34:57 +02:00
Konstantinos Sideris
26540bd120
Hack to work around layout flickering when adding new timeline items
2018-01-16 22:24:23 +02:00
Konstantinos Sideris
c4fa8c844d
Add a checkmark to messages that have been received by the server ( #93 )
2018-01-14 12:54:17 +02:00
Konstantinos Sideris
dfeb0c833a
Move timestamps to the right
2018-01-14 12:29:54 +02:00
Konstantinos Sideris
daabb40bed
Use Q_NULLPTR to be compatible with qt5.7
...
fixes #199
2018-01-12 11:27:24 +02:00
christarazi
ddfce136ed
Add support for pasting images into a room ( #180 )
...
fixes #132
2018-01-10 09:52:59 +02:00
Konstantinos Sideris
81a706bf20
Make usernames in timeline less bold
2018-01-08 11:27:37 +02:00
Konstantinos Sideris
953634c9b5
Enable read receipts on messages sent through nheko
2018-01-05 15:28:38 +02:00
Konstantinos Sideris
983aea7c76
Create widgets on demand for messages added to the end of the timeline
2018-01-05 00:27:32 +02:00
Konstantinos Sideris
eaf05748ff
Initial support for read receipts
2018-01-03 18:06:29 +02:00
Konstantinos Sideris
f7003ddeb5
Load last content from all rooms
...
fixes #175
2017-12-30 18:16:11 +02:00
Konstantinos Sideris
d1d8b92b37
Use qobject_cast on TimelineItem
2017-12-30 11:59:55 +02:00
Konstantinos Sideris
1ab55d4732
Add date separator in the timeline
...
fixes #157
2017-12-25 23:02:33 +02:00
Konstantinos Sideris
6835a97b15
Use a better regex to identify URLs
2017-12-24 13:13:07 +02:00
Konstantinos Sideris
e57f5f848b
Restrict display name width to 500px
2017-12-23 14:06:59 +02:00
Konstantinos Sideris
9d763c4de9
Don't keep fetching history on non-visible timelines
...
If the user switched to another timeline before the current timeline
filled up with messages, nheko would keep fetching history.
Now it will check periodically if the timeline became visible so
it can decide whether or not to stop fetching history.
2017-12-23 13:50:11 +02:00
Konstantinos Sideris
ece20dd917
Add rounded corners to inline images
2017-12-21 18:27:57 +02:00
Konstantinos Sideris
32377dc027
Remove the 'Video' prefix from video links
2017-12-21 16:02:54 +02:00
Konstantinos Sideris
1d285993f7
Valgrind run
...
- Fix a memory leak where a layout was created without being used.
- Fix uninitialized value.
2017-12-12 09:31:00 +02:00
Konstantinos Sideris
c1d0bbaf0b
Prevent queue from getting blocked ( #142 )
...
Try sending a message when all the sent messages have been received
through /sync.
2017-12-06 02:59:15 +02:00
Konstantinos Sideris
a605e4486f
Migrate to matrix-structs for event and response parsing
2017-12-04 18:41:19 +02:00
Konstantinos Sideris
f4f78b1d8a
Add basic support for m.video messages
...
fixes #115
2017-12-01 18:28:26 +02:00
Konstantinos Sideris
5573548fb1
Allow audio clip uploads
2017-12-01 17:33:49 +02:00
Konstantinos Sideris
432a2e1354
Add inline audio clip player (m.audio) ( #143 )
2017-12-01 15:39:50 +02:00
Konstantinos Sideris
eae069ad93
Group emoji and dialogs with namespaces
2017-11-30 20:02:46 +02:00
Konstantinos Sideris
32c8340577
Create directories for related files
2017-11-30 13:53:28 +02:00