Commit graph

584 commits

Author SHA1 Message Date
Konstantinos Sideris
cb21433dc8 Allow copying the version info in the settings page 2018-06-23 01:46:18 +03:00
Konstantinos Sideris
a72eca339f Immediately shutdown the http client on exit 2018-06-22 19:47:55 +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
604cdcec8a Save the olm account after we create new one-time keys
Otherwise after a restart the old account will be loaded and we
won't be able to decrypt messages from devices using the new one-time keys.

Also new one-time key upload requests will fail due to conflicts with
the existing keys with the same keyid.
2018-06-18 12:56:47 +03:00
Konstantinos Sideris
4514d13948 Improve logging a bit 2018-06-18 12:29:24 +03:00
Konstantinos Sideris
197b2dac74 Fix regressions regarding invites & slowness during shutdown 2018-06-17 18:44:04 +03:00
Konstantinos Sideris
d081fe9b9e Setup BinTray 2018-06-17 16:53:14 +03:00
Konstantinos Sideris
66249ed126 Correctly mark received messages whose response came after /sync 2018-06-17 02:29:19 +03:00
Konstantinos Sideris
c0d32ef319 Update CI instructions 2018-06-17 00:23:49 +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
7fc010fc4f Fix CI errors on macOS & Windows
- Run the linter
- Explicitly use cmake for installing olm
2018-06-14 09:36:41 +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
a97528b432 Fix bug where cache was initialized twice in a row 2018-06-12 20:36:16 +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
0a9d95dfc9 Include mtxclient in the build 2018-06-04 13:54:51 +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
bcba977f4c Fix resize slowness on the TopBar 2018-05-25 16:13:38 +03:00
Konstantinos Sideris
5538a04690 Make the number of unread messages fit in the bubble
fixes #330
2018-05-25 10:01:53 +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
9eb1c496a0 Retrieve the current room state from cache when the edit modal opens 2018-05-18 21:43:58 +03:00
Konstantinos Sideris
d88dee3185 Refresh the room info on the top bar after sync 2018-05-18 21:37:08 +03:00
Konstantinos Sideris
4ab42c68f4 Fix crash on unfinished animation & center the edit modal 2018-05-18 21:27:44 +03:00
Konstantinos Sideris
791a9d0a4d Hide the edit menu when the user doesn't have enough power 2018-05-16 23:30:50 +03:00
Konstantinos Sideris
340c9ab9de Add menu to modify the name & topic of the room
fixes #235
2018-05-16 20:41:15 +03:00
twahm
4bd43780d9 Add read support for room access options (#324)
- Join rules
- Guest access
2018-05-13 01:31:58 +03:00
Konstantinos Sideris
18061f0600 Use the correct avatar size for HiDPI displays 2018-05-11 16:00:14 +03:00
Konstantinos Sideris
05585ff8cf Make explicit that MatrixClient & Cache are unique pointers 2018-05-11 13:41:46 +03:00
Konstantinos Sideris
701aa93b0a Add scrollbar in the settings menu 2018-05-09 01:00:10 +03:00
Anton Karmanov
17896b1c82 Start in tray (#319) 2018-05-08 23:53:40 +03:00
Konstantinos Sideris
7d809be79f Hide SnackBar initially & guard against access of an empty list 2018-05-08 23:38:57 +03:00
Konstantinos Sideris
ebed87ea57 Don't use shared pointers for cache 2018-05-08 20:30:09 +03:00
Konstantinos Sideris
4c4ea557b3 Replace shared pointers of MatrixClient with a single instance 2018-05-08 18:43:56 +03:00
Konstantinos Sideris
5aff3e4309 Don't send notification for the room that is currently open 2018-05-07 12:00:49 +03:00
Konstantinos Sideris
506cf68072 Implement desktop notification for mac 2018-05-05 22:40:24 +03:00
Konstantinos Sideris
ed9501023a Add support for retrieving the notification events (#33) 2018-05-05 16:38:41 +03:00
Konstantinos Sideris
156e1e62a6 Fetch user avatars while browsing the member list 2018-05-04 17:59:29 +03:00
Konstantinos Sideris
8dd21b1dae Remove the extra top margin from timeline widgets 2018-05-04 15:47:04 +03:00
Konstantinos Sideris
7dab863738 Remove flickering by updating auto-complete menu items in-place
Instead of deleting the current items and creating new ones.
2018-05-03 17:29:02 +03:00
Konstantinos Sideris
d6ac72ab3f Default to the first item in room selection menu
- Add backwards navigation with backtab

fixes #316
2018-05-03 15:19:28 +03:00
Konstantinos Sideris
916c0d48af Move access token to header 2018-05-02 16:00:37 +03:00
Konstantinos Sideris
7f69c71814 Handle invalid access token 2018-05-02 15:30:08 +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
763330fd3c Add member list 2018-05-01 19:35:28 +03:00
Konstantinos Sideris
3097037c3d Add prototype room settings menu 2018-04-30 21:41:47 +03:00
Konstantinos Sideris
21c68c5824 Show room tooltips when the sidebar is collapsed 2018-04-30 09:27:12 +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
7621dc0cb0 Fix UI inconsistencies between room list & communities
fixes #204
fixes #255
2018-04-28 15:27:12 +03:00
Konstantinos Sideris
bee9278a1a Remove old/unused code 2018-04-28 13:16:37 +03:00
Konstantinos Sideris
3f80725c33 Add support for displaying m.sticker events
fixes #291
2018-04-27 22:15:44 +03:00
Konstantinos Sideris
c971602b2d Add remove_if for maps 2018-04-27 18:19:43 +03:00
Konstantinos Sideris
2c6192d08f Fix clicking on room list suggestions 2018-04-27 14:04:13 +03:00
Konstantinos Sideris
b72e48cbab Improve room searching
fixes #257
2018-04-27 01:57:46 +03:00
Konstantinos Sideris
31f5fbf891 Improve the date separator widget 2018-04-25 15:38:25 +03:00
Konstantinos Sideris
b655a503a7 Fix signal redefinition warning 2018-04-24 23:57:49 +03:00
Konstantinos Sideris
4fd8eccece Adjust completion menu to fit its contents 2018-04-24 16:03:50 +03:00
Konstantinos Sideris
649d73a7bd Clear typing notifications when the user list is empty
fixes #304
2018-04-24 14:50:47 +03:00
Konstantinos Sideris
0028fdfe6c Remove map from room_id to QPixmap from ChatPage
The avatars are loaded from cache
2018-04-24 14:13:05 +03:00
Konstantinos Sideris
4f6ffb6e73 Fix CI errors 2018-04-22 15:37:23 +03:00
Konstantinos Sideris
1642f3cf40 Update invites in the UI after sync 2018-04-22 14:19:05 +03:00
Konstantinos Sideris
c0e355f485 Properly clean stale invites 2018-04-22 12:26:41 +03:00
Konstantinos Sideris
6d0bc0c05e Strip whitespace from room names for QuickSwitcher 2018-04-22 11:27:00 +03:00
Konstantinos Sideris
7a16e05b14 Initialize views before room list 2018-04-22 10:54:52 +03:00
Konstantinos Sideris
29bd8b71d1 Implement media cache 2018-04-21 21:18:57 +03:00
Konstantinos Sideris
54091cf403 Bump cache format version 2018-04-21 17:27:38 +03:00
Konstantinos Sideris
9d825b07ca Remove dead code 2018-04-21 17:27:06 +03:00
Konstantinos Sideris
74ff905582 Clean up Top Bar 2018-04-21 17:21:44 +03:00
Konstantinos Sideris
4a2f1af090 Save read receipts 2018-04-21 17:14:16 +03:00
Konstantinos Sideris
2f00fc51bf Cache refactoring 2018-04-21 16:35:03 +03:00
Konstantinos Sideris
ca66940ec3 Popup improvements
- ESC closes the popup.
- Up/Down arrows for navigation.
- BackTab for backwards navigation.

fixes #301
fixes #302
2018-04-14 14:12:36 +03:00
christarazi
0b3029b3c4 Implement pressing tab to navigate auto completion (#294)
Fixes #287

* Fix pop-up not showing when less than max 

* Select suggestion by pressing Enter
2018-04-10 11:47:23 +03:00
Konstantinos Sideris
5125433552 Hide emoji panel if it's not under the mouse cursor
fixes #254
fixes #246
2018-04-08 15:49:53 +03:00
Konstantinos Sideris
8dc17ccecb Bump version 2018-04-03 15:17:34 +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
284d200361 Fix invite button colors on the system theme
fixes #248
2018-03-27 20:21:14 +03:00
Konstantinos Sideris
f4675165ea Add environment variable to allow insecure connections (self-signed certs)
NHEKO_ALLOW_INSECURE_CONNECTIONS=1 ./nheko

fixes #260
2018-03-27 10:38:00 +03:00
Konstantinos Sideris
ed0b345e76 Pin invites to the top of the room list
fixes #252
2018-03-26 22:02:53 +03:00
Konstantinos Sideris
15931fc322 Track invites so they can be removed outside of nheko
fixes #213
2018-03-26 21:39:00 +03:00
Konstantinos Sideris
f9fd03b958 Simplify variant usage 2018-03-26 20:41:16 +03:00
Konstantinos Sideris
f6f46119a6 Fix CI errors 2018-03-25 23:05:44 +03:00
Konstantinos Sideris
f02d3ee606 Replace std::thread with QtConcurrent 2018-03-25 21:50:45 +03:00
Konstantinos Sideris
72d5d6d286 Show avatars in the completion popup 2018-03-25 15:59:47 +03:00
Konstantinos Sideris
553a97c8bb Add basic support for username auto-completion
fixes #40
2018-03-24 23:16:15 +02:00
Konstantinos Sideris
f77a103209 Add version info in the settings menu
fixes #239
2018-03-22 16:20:22 +02:00
Konstantinos Sideris
64a6771dc8 Fix text color on room switcher
fixes #245
2018-03-22 09:16:17 +02:00
Konstantinos Sideris
480de2d30b Adjust unread msg bubble 2018-03-20 21:23:01 +02: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
cef385e1e4 Use the full with of the roomlist for the last message 2018-03-19 18:10:48 +02:00
Konstantinos Sideris
bac1f46127 Dark theme revisited 2018-03-18 23:38:04 +02:00
Konstantinos Sideris
48ee36f6b2 Add border in community list & minor refactorings (#204) 2018-03-18 17:38:57 +02:00
Konstantinos Sideris
b70e09c7ec Add border line above the text input 2018-03-18 17:08:13 +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
49270d10b4 Update matrix-structs library 2018-03-18 11:05:39 +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
4a6becacca Add fancy snackbar animation 2018-03-16 17:56:45 +02:00
Konstantinos Sideris
343acaf434 Remove opacity animation from the scrollbar
fixes #270
2018-03-16 17:29:21 +02:00
Konstantinos Sideris
511c58d608 Add context menu option to save images
fixes #265
2018-03-14 21:31:09 +02:00
Konstantinos Sideris
1b5e18cb1a Fix CI builds 2018-03-13 08:53:32 +02:00
Konstantinos Sideris
4659d0efc2 Implement user registration with reCAPTCHA
fixes #264
2018-03-12 22:23:26 +02:00
Konstantinos Sideris
39a8150fae Update room name & avatar on new rooms
fixes #253
2018-03-12 00:15:06 +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
290de548bb Remove unused variables 2018-03-10 23:31:01 +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
af02b4f4a8 Show messages in the RoomList after initial sync 2018-03-04 15:39:41 +02:00
Konstantinos Sideris
fb5719f184 Don't handle password when the matrix id is entered 2018-03-04 15:15:52 +02:00
Konstantinos Sideris
0f62cba498 Retry initial sync only on specific errors
fixes #233
fixes #89
2018-03-04 14:49:15 +02:00
Konstantinos Sideris
7fc33a71fd Bump version 2018-03-04 14:08:46 +02:00
Konstantinos Sideris
b15a04b00a Don't open room switcher when another dialog is open
fixes #251
2018-03-04 13:40:30 +02:00
Stuart Mumford
47c31b9a18 Retry initial sync forever (#234) 2018-03-04 12:35:14 +02:00
Konstantinos Sideris
7f7f3a805b Remove dead code & small refactorings using the std library 2018-03-03 22:08:56 +02:00
Konstantinos Sideris
735d508a29 Handle empty matrix ID (regression from 9de1ec1)
fixes #259
2018-03-01 09:31:08 +02:00
Konstantinos Sideris
f6c279f6f2 Propagate errors during /login & /versions 2018-02-28 22:07:53 +02:00
Konstantinos Sideris
9de1ec1b7b Fix crash when inviting users 2018-02-28 21:14:41 +02:00
Konstantinos Sideris
12a96aae6d Add some missing references 2018-02-28 12:12:07 +02:00
Konstantinos Sideris
c75a136973 Enable room switcher only in the chat view (#251) 2018-02-26 13:17:04 +02:00
Konstantinos Sideris
f525b7e6a9 Replace login request with the one from matrix-structs 2018-02-23 22:27:59 +02:00
Konstantinos Sideris
fb850787d7 Relax matrix identifier parsing
fixes #241
2018-02-23 22:06:35 +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
Konstantinos Sideris
a8e17b9c91 Notify the user on upload failures 2018-02-19 00:17:54 +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
c8bfb02211 Show loading indicator while waiting for /login & /logout
fixes #208
2018-02-18 22:22:26 +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
fdd5051dcf Remove QPropertyAnimation from modals to work around a regression on Qt 5.10.1 (#87) 2018-02-17 18:43:40 +02:00
Konstantinos Sideris
59e4148a7c Fix transparency issue on custom dialogs
fixes #87
2018-02-17 14:04:46 +02:00
Konstantinos Sideris
8d867f418d Hide emoji picker when the app loses focus
fixes #184
fixes #209
2018-02-16 19:02:15 +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
William Pitcock
0be787f1e4 RoomList: do not blindly dereference RoomState (#232)
This can happen when a new room is being created from a different client and thus is created
with no known state to the local client.
2018-02-11 14:39:06 +02:00
Konstantinos Sideris
ba8faa357f Remove empty destructors 2018-02-10 16:29:09 +02:00
Konstantinos Sideris
26f221ec23 Move LeaveRoom dialog to MainWindow (#87) 2018-02-10 16:05:31 +02:00
Konstantinos Sideris
ddcc0f7f60 Generate a date separator before local messages 2018-02-10 01:09:30 +02:00