Commit Graph

351 Commits

Author SHA1 Message Date
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 f1b355f7a7 Add missing header 2018-05-02 16:35:07 +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 f2954a3616 Remove extra semicolon 2018-05-01 19:49:01 +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 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 4a7b62e8fa Fix CI errors 2018-04-28 16:17:36 +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 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 29bd8b71d1 Implement media cache 2018-04-21 21:18:57 +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 945784db11 Correctly propagate focusOut event on TextEdit 2018-03-28 13:09:16 +03:00
Konstantinos Sideris 0a09ce0f75 Update first & last sender after message deletion
fixes #282
2018-03-27 21:07:39 +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 15931fc322 Track invites so they can be removed outside of nheko
fixes #213
2018-03-26 21:39:00 +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 8a2b29a3bf Be compatible with cmake 3.1 2018-03-22 16:34:11 +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
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 a0ae6cf5d5 Add ability to redact messages 2018-03-17 21:23:46 +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 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 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 d703377a0a Add missing header 2018-03-04 16:12:28 +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 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 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 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 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 86280098b4 Implement server-side notification count 2018-02-15 21:58:57 +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
Konstantinos Sideris da6b816228 Remove tone emoji 2018-02-09 12:20:09 +02:00
Konstantinos Sideris b60554b8fd Add a timeout timer for initial sync (#223, #222)
Show a better message on the login screen after an initial sync failure.
2018-02-08 19:07:58 +02: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 b1f232bf86 Render messages received by `/messages` on demand 2018-01-30 12:56:01 -07:00
Konstantinos Sideris 86aa409c1f Register timeline item so that it will be available 2018-01-29 06:29:07 -07:00
Konstantinos Sideris 0e91dae922 Erase items using the key 2018-01-25 14:34:15 +02:00
Konstantinos Sideris 936e215aed Resize text input vertically to fit the contents 2018-01-25 07:57:19 +02:00
Konstantinos Sideris 1fad9398fc Use more stl containers & minor refactorings 2018-01-24 20:46:37 +02:00
Konstantinos Sideris 2274642f12 Show the scroll-down button when showing the timeline 2018-01-23 17:34:57 +02:00
Konstantinos Sideris 48dabdfdc7 Don't dismiss the loading overlay by clicking 2018-01-22 16:47:08 +02:00
Konstantinos Sideris 64dd4c5985 Remove Accept-Encoding header 2018-01-22 12:02:07 +02:00
Konstantinos Sideris c59cd0e80b Load the initial cache data without blocking the UI 2018-01-21 21:43:21 +02:00
Konstantinos Sideris c123bada94 Refactor avatar fetching in one function 2018-01-21 20:28:38 +02:00
Konstantinos Sideris e37c2e34ce Use the Accept-Content header to enable response compression
fixes #86
fixes #89
2018-01-21 15:12:21 +02:00
Konstantinos Sideris 9de2db2fb8 Automatically focus on input when opening a dialog 2018-01-16 22:50:47 +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 af5663b6bc Add borders 2018-01-15 21:04:49 +02:00