Commit Graph

375 Commits

Author SHA1 Message Date
Konstantinos Sideris b1f232bf86 Render messages received by `/messages` on demand 2018-01-30 12:56:01 -07:00
Konstantinos Sideris 992332adf7 Update user avatars in place 2018-01-30 11:39:06 -07:00
Konstantinos Sideris 597f829c57 Remove '#' from the room avatars 2018-01-25 18:10:05 +02: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 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 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 48dabdfdc7 Don't dismiss the loading overlay by clicking 2018-01-22 16:47:08 +02:00
Konstantinos Sideris 72cba5d9eb Disable minimize to tray except for the ChatPage 2018-01-22 16:33:47 +02:00
Konstantinos Sideris 4098cf6780 Fix ci 2018-01-22 14:52:54 +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 fc890f572c Fix iterator crash 2018-01-21 18:25:58 +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 92a578f5e8 Convert 'if' to 'else if' to remove a no-op 2018-01-17 10:16:54 +02:00
Konstantinos Sideris 9de2db2fb8 Automatically focus on input when opening a dialog 2018-01-16 22:50:47 +02:00
Konstantinos Sideris eea33062e3 Add some very useful commands 2018-01-16 22:34:31 +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 7792ca7149 Fix emoji as avatars issue for the receipts 2018-01-16 21:02:29 +02:00
Konstantinos Sideris caf5b70994 Move the cursor to the start/end of the text before we move up/down in history
fixes #166
2018-01-16 20:51:46 +02:00
Konstantinos Sideris af5663b6bc Add borders 2018-01-15 21:04:49 +02:00
Konstantinos Sideris 020a842aef Change cache format to not allow duplicate receipts
Convert list of receipts to map<userId, timestamp>
2018-01-14 23:37:38 +02:00
Konstantinos Sideris 4521837765 Add option to disable typing notifications
fixes #131
2018-01-14 15:57:58 +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 d31a08f1d5 Keep syncing regardless of connectivity (#93) 2018-01-13 22:25:15 +02:00
Konstantinos Sideris d3603606e7 Make some functions inline 2018-01-13 17:52:23 +02:00
Konstantinos Sideris 3929261a8e Use QSharedPointer to save RoomStates 2018-01-13 17:15:47 +02:00
krombel f87b8fe817 Upload filter automatically and use filter_id (#201)
When a custom filter is inserted into nheko.conf or there was no filter
defined yet the default filter gets automatically uploaded.
After a successful upload the server-side generated filter-id is used.

This is done async as it is just an enhancement and it is not required
to upload the filter before the first request.
2018-01-13 14:49:51 +02:00
Konstantinos Sideris daabb40bed Use Q_NULLPTR to be compatible with qt5.7
fixes #199
2018-01-12 11:27:24 +02:00
Konstantinos Sideris 5b09c8e652 Handle surrogate pairs in avatars 2018-01-12 10:21:53 +02:00
Konstantinos Sideris 8beef5e61f Dismiss modal by clicking on the overlay 2018-01-11 18:10:18 +02:00
Konstantinos Sideris 9521efab7e Lint
[ci skip]
2018-01-11 16:34:43 +02:00
krombel 0570135253 Filter out content in sync that is currently unhandled (#198)
I had a look at sync.cpp and checked which parts of the sync response
are currently handled and which not. As I think it is unnecessary to let the 
unhandled data be transmitted without being handled I added these filters.

In the same term I increased the timeout server-side to 30s as Riot
defaults to this value as well. Especially now when a lots of presence-updates 
are not send anymore this value is more relevant.

It is now also possible to use a filter that is defined in`client/sync_filter`.
Advanced users might want to set an own filter here.

[ci skip]
2018-01-11 16:33:50 +02:00
Konstantinos Sideris 82341247f7 Remove Connection header 2018-01-10 23:38:34 +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 53f670096c Make group's sidebar visible through an option 2018-01-09 21:57:41 +02:00
Max Sandholm 312df6f3bb Communities (#195) 2018-01-09 15:07:32 +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 a7e84b63ac Remove an extra colon from the receipt time
[ci skip]
2018-01-04 10:52:49 +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 5e0fbe87a0 Use `toMSecsSinceEpoch` to be compatible with qt < 5.8 2017-12-30 17:44:47 +02:00
Konstantinos Sideris 208f957911 Re-order room list based on activity
fixes #2
2017-12-30 17:29:57 +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 de61663e42 Use the "state_key" to assign avatars
fixes #113
fixes #173
2017-12-22 16:02:08 +02:00
Konstantinos Sideris 33f534c6f8 Cache room avatars (#139)
fixes #107
2017-12-22 00:00:48 +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 1705273bb8 Fix font size inconsistencies 2017-12-21 14:36:05 +02:00
Konstantinos Sideris ccbcfe9fa4 Bold room names 2017-12-21 13:41:05 +02:00
Konstantinos Sideris aaa4d8c323 Prevent emoji selector for closing
fixes #176
2017-12-21 13:17:38 +02:00
Konstantinos Sideris f11044b5eb Handle incoming invites
fixes #128
2017-12-19 22:36:12 +02:00
Konstantinos Sideris 101bf47443 Remove minimum height limit (#160, #163) 2017-12-17 17:49:22 +02:00
Konstantinos Sideris b5e692bb28 Improve logging on event parsing failure 2017-12-16 19:31:07 +02:00
Konstantinos Sideris 65672d3dfb Allow only one application instance
fixes #141
2017-12-14 21:55:00 +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 544b623512 Add dialog to create rooms
fixes #25
2017-12-11 23:00:37 +02:00
Konstantinos Sideris ef0b0f6879 Add menu to invite users 2017-12-10 23:59:50 +02:00
Konstantinos Sideris 19bae2a2e6 Add gui option for joining rooms (#25) 2017-12-10 15:22:01 +02:00
Konstantinos Sideris d872b1060b Reset cache on breaking changes
fixes #154
2017-12-10 12:51:44 +02:00
Konstantinos Sideris f176af0f7a Catch deserialization exceptions on initial /sync 2017-12-06 21:25:56 +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 6415c4125f Add style colors for the ScrollBar 2017-12-05 14:13:26 +02:00
Konstantinos Sideris b9c4a819ad Fix travis errors 2017-12-04 18:49:25 +02:00
Konstantinos Sideris a605e4486f Migrate to matrix-structs for event and response parsing 2017-12-04 18:41:19 +02:00
Konstantinos Sideris 3ea2053b25 Use std::exception for the login response 2017-12-03 02:50:46 +02:00
Konstantinos Sideris 914bdecc0b Initial integration with matrix-structs 2017-12-03 02:47:37 +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
Konstantinos Sideris 5663c58dd9 Use templates for the TimelineItem generation 2017-11-30 13:19:34 +02:00
Konstantinos Sideris deb1a6e292 Simplify timeline item creation 2017-11-30 12:55:30 +02:00
Konstantinos Sideris fdb76bb5c1 Implement file uploads
fixes #24
2017-11-29 23:39:35 +02:00
Konstantinos Sideris b21942a3e3 Add read support for m.file messages (#24) 2017-11-28 02:01:37 +02:00
Konstantinos Sideris f1eb0bbac0 Remove another /messages call (#139) 2017-11-26 22:30:14 +02:00
Konstantinos Sideris e4c8a555d6 Don't backfill messages automatically (#139) 2017-11-26 02:22:58 +02:00
Konstantinos Sideris 0dad256743 Reload theme without restart (#137) 2017-11-25 22:47:06 +02:00
Konstantinos Sideris 54cf3418bc Paint RoomList's background (#137) 2017-11-25 22:20:34 +02:00
Konstantinos Sideris f0ecf6eee6 Add dark theme 2017-11-25 18:19:58 +02:00
Konstantinos Sideris f36e498503 Update system theme 2017-11-25 15:14:37 +02:00
Konstantinos Sideris f4036f6f56 Use span tags to prevent html escaping 2017-11-25 14:01:01 +02:00
Konstantinos Sideris 0f363b5f44 Send read receipts
Automatically dismiss unread notifications when the window regains
focus.

fixes #111
fixes #68
2017-11-24 00:10:58 +02:00
Konstantinos Sideris fc34f373df Remove unnecessary comments 2017-11-22 21:13:22 +02:00
Konstantinos Sideris 56d8be5a27 Fix emoji picker's theme 2017-11-22 21:03:53 +02:00
Konstantinos Sideris 552941118b Fix minor stylistic issues on the nheko theme 2017-11-22 19:52:38 +02:00
Konstantinos Sideris 929b2df6fb Merge branch 'theme' 2017-11-22 19:09:19 +02:00
Konstantinos Sideris 937caddacd Keep track of newly joined rooms in the settings manager
fixes #134
2017-11-21 17:34:32 +02:00