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
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
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
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