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
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
Max Sandholm
19b526d453
Use system color scheme (using a Qt stylesheet) #104
...
The color scheme of nheko obeys the default color theme of Qt
(i.e. the system theme). It uses a Qt stylesheet to accomplish this,
which means replacing the color theme with a custom theme would only
be a matter of writing a new style sheet and loading it into the app.
2017-11-16 16:33:52 +02:00
Konstantinos Sideris
21fdb26bd4
Don't send empty messages
2017-11-16 14:42:13 +02:00
Konstantinos Sideris
4166a863b4
Lint
2017-11-15 18:42:21 +02:00
Jani Mustonen
4e1c8dd663
Implement a per-room send queue. ( #118 )
...
[ci skip]
2017-11-15 18:38:50 +02:00
Konstantinos Sideris
e40dab9f98
Improve settings menu layout
2017-11-09 22:04:40 +02:00
Konstantinos Sideris
b586a2329c
Fix roomlist borders
2017-11-09 11:39:21 +02:00
Konstantinos Sideris
9c331905e6
Fix initial sidebar width
2017-11-09 00:17:08 +02:00
Konstantinos Sideris
a6b84fac45
Remove unnecessary layouts
2017-11-08 23:09:15 +02:00
Konstantinos Sideris
26904fe992
Remove obsolete artifact from appveyor
2017-11-07 09:16:39 +02:00
Konstantinos Sideris
dc0ffc26dd
Merge remote-tracking branch 'ralith/fix-newlines'
2017-11-07 09:15:30 +02:00
Konstantinos Sideris
24dd76ee0b
Parse unsigned key
2017-11-06 22:14:16 +02:00
Benjamin Saunders
097dac4f79
Fix wacky newline/linkification interaction
2017-11-05 16:23:19 -08:00
Benjamin Saunders
e19775443a
Fix newlines not being displayed ( #122 )
...
Fixes #64
2017-11-06 00:29:02 +02:00
Benjamin Saunders
d0d15f8f58
Fix a formatting issue that snuck in between PRs ( #123 )
2017-11-06 00:25:47 +02:00
Benjamin Saunders
5bd5555a51
Use C++11 braced list style ( #121 )
2017-11-05 23:04:55 +02:00
Benjamin Saunders
4ccb5ed81f
Add input history, enable multi-line input, refactor commands ( #119 )
...
This also fixes the transmission of mis-typed commands as messages,
fixes inability to send messages that start with a command, and does
some initial work towards automatically resizing the input field to fit
the input message.
2017-11-05 23:01:21 +02:00
Konstantinos Sideris
595d11cfa0
Exclude modifier keys from triggering typing notifications
...
fixes #116
2017-11-05 00:19:56 +02:00
Jani Mustonen
8c5a331c73
Simple SOCKS proxy support ( #110 )
2017-11-04 13:28:50 +02:00
Konstantinos Sideris
7e03ca4359
Reset the sender's name when paginating backwards
...
The first message of the timeline would have an avatar and
the rest of the messages would use the previous to be configured
(whether or not should have an avatar).
fixes #63
2017-11-03 14:25:01 +02:00
Jani Mustonen
13cb0521fa
Improvements to the quick switcher ( #109 )
...
- Ghetto disambiguation for the quick switcher
- Fix the Ctrl+K shortcut
- Fix keyboard focus when the quick switcher is closed
fixes #114
2017-11-03 08:54:17 +02:00
Konstantinos Sideris
beda0db543
Update issue template
2017-11-02 22:02:31 +02:00
Jani Mustonen
84741adc16
Implement a setting for the tray icon ( #108 )
2017-11-02 22:00:43 +02:00
Konstantinos Sideris
886edd03fb
Add dummy settings menu
2017-11-02 00:41:13 +02:00
Thomas Herzog
287b5aa4c0
Implemented sending of typing notifications ( #105 )
2017-10-31 20:11:49 +02:00
Konstantinos Sideris
91b8427795
Add missing headers
2017-10-28 21:24:42 +03:00
Konstantinos Sideris
e224440f5d
Display user avatar changes
2017-10-28 21:11:40 +03:00
Konstantinos Sideris
c18a49915b
Save the changes between syncs in cache
...
- Fixes high cpu issues caused by the serialization of the whole
in-memory state.
- Display name changes are now visible in the timeline.
2017-10-28 20:46:34 +03:00
Konstantinos Sideris
a17b6dffaf
Clean up headers
2017-10-28 15:46:39 +03:00
Konstantinos Sideris
845228ac6a
Add scroll-down button
2017-10-27 22:20:33 +03:00
Konstantinos Sideris
8e15a5080d
Adjust scrollbar only after pagination ( #94 )
...
The scrollbar will stay in the same position if new messages
are added to the bottom of the timeline.
2017-10-27 13:36:26 +03:00
Konstantinos Sideris
c6e1068e0e
Lint
2017-10-23 00:19:35 +03:00
Konstantinos Sideris
143ed5176a
Use callbacks on MatrixClient
2017-10-22 22:51:50 +03:00
Konstantinos Sideris
c0e55378c3
Remove extra inline keywords
2017-10-22 19:03:55 +03:00
Konstantinos Sideris
160fe1d668
Remove cache updates from the main thread
2017-10-21 21:17:01 +03:00
Konstantinos Sideris
3cae6c3983
Remove ui flickering when adding new timeline events
2017-10-21 18:53:15 +03:00
Konstantinos Sideris
47d1546adf
Clean unread count when the user logs out
...
fixes #60
2017-10-21 16:46:11 +03:00
Konstantinos Sideris
13e526c27d
Retry initial sync ( #19 )
2017-10-20 22:32:48 +03:00
Konstantinos Sideris
8a9a513ecd
Move ctrl-k callback to the MainWindow
2017-10-20 21:39:05 +03:00
Konstantinos Sideris
9b60fdd620
Remove sync timer
2017-10-20 21:21:04 +03:00
Rokas Kupstys
3205e5fdd3
Make sidebar topic expand on click and fix html formatting of elided text. ( #96 )
...
Fixes #95
2017-10-20 20:58:23 +03:00
Konstantinos Sideris
8299a74775
Elide room topic
2017-10-19 19:04:51 +03:00
Konstantinos Sideris
8390ff253d
Fix icons for retina displays
2017-10-15 22:08:51 +03:00
Konstantinos Sideris
513f69e88a
Scroll to the bottom on new messages
...
Bug introduced on the last commit
2017-10-09 13:59:44 +03:00
Konstantinos Sideris
ac8e42b926
Reduce timeline flickering
2017-10-09 01:32:25 +03:00
Konstantinos Sideris
76ddfb792b
Add /join command support
2017-10-08 22:38:38 +03:00
Konstantinos Sideris
ac525970b0
Add snackbar
2017-10-08 22:01:18 +03:00
Konstantinos Sideris
ebe36b5713
Drop the loading screen if consensus can't be achieved
2017-10-08 21:35:37 +03:00
Konstantinos Sideris
6e1285bb0e
Prevent FOUC
2017-10-07 20:51:35 +03:00
Konstantinos Sideris
bc4b47a5e3
Use shared pointer for the modals
2017-10-07 20:51:35 +03:00
Konstantinos Sideris
985530e99b
Resume sync when connectivity is established
2017-10-05 18:13:11 +03:00
Konstantinos Sideris
1fc68c5b7f
Use string timeout parameter
2017-10-05 08:47:29 +03:00
Konstantinos Sideris
11a3282136
Remove full_state from initial sync
2017-10-04 22:11:55 +03:00
Konstantinos Sideris
28b3a3fde0
Put typing notifications above the text input
2017-10-04 22:00:26 +03:00
Konstantinos Sideris
d60c2b76e3
Receive typing notifications ( #88 )
2017-10-04 11:33:34 +03:00
Konstantinos Sideris
88349eae90
Recover from corrupted cache data
...
Make Cache constructor exception free
fixes #74
2017-10-03 21:16:31 +03:00
Victor Berger
73222aa900
Fix unicode handling of replaceEmoji ( #84 )
2017-10-02 20:52:21 +03:00
Konstantinos Sideris
35355756e5
Build lmdb on appveyor
2017-10-01 22:38:46 +03:00
Max Sandholm
7ad45d8d64
React to externally left and joined rooms, and add "leave room" button in room menu ( #75 )
...
* Initial "join room" feature.
* React correctly to remotely joined rooms.
* Leaving rooms implemented both locally using the room menu
in nheko, and reacting properly when leaving a room remotely
from another client.
2017-10-01 19:49:36 +03:00
Konstantinos Sideris
6e0ae807d5
Update badge counter only on change
2017-10-01 18:15:23 +03:00
Konstantinos Sideris
0c0ac68bc2
Remove extra clang-format options
2017-10-01 12:51:29 +03:00
Rokas Kupstys
da6e7c11dc
Fixes #50 .
...
On KDE desktop icon failed to appear because TrayIcon requested a zero-size rect. Implementing MsgCountComposedIcon::availableSizes() method fixes that.
After icon became visible it was not transparent, and places that should have been transparent contained artifacts likely due to uninitialized memory. Implementing MsgCountComposedIcon::pixmap() which returns a pixmap with alpha channel fixes that.
2017-10-01 12:15:38 +03:00
Konstantinos Sideris
775d2e88f5
Don't move scrollbar to the bottom when it's active
...
fixes #55
2017-09-30 22:26:33 +03:00
Konstantinos Sideris
96562c078d
Add custom logging format
2017-09-30 21:36:40 +03:00
Konstantinos Sideris
748f480077
Add missing update calls
2017-09-30 20:44:18 +03:00
Konstantinos Sideris
41a85832b3
Remove unnecessary animations
2017-09-30 17:05:05 +03:00
Konstantinos Sideris
ff1bc797de
Refactor the welcome page
2017-09-30 16:39:24 +03:00
Konstantinos Sideris
b9521b0809
Stop sync timer after logout
...
Silence errors from redacted events
2017-09-30 15:52:14 +03:00
krombel
4c00e64f3f
Allow handling of incomplete /sync responses ( #67 )
...
matrix-org/synapse#2358 proposes a change to only contain objects
in the sync stream where values get updated.
The current behavior leads nheko to fail when that is used.
2017-09-29 21:10:11 +03:00
Konstantinos Sideris
2f488bd9e3
Don't mangle bot's display name
2017-09-28 22:26:24 +03:00
Konstantinos Sideris
03da01423d
Use a valid value for setWeight
2017-09-28 14:42:16 +03:00
Konstantinos Sideris
9def76aa08
Linting
2017-09-24 17:39:06 +03:00
Konstantinos Sideris
f351b00075
Manually remove KDE accelerators
...
fixes #14
2017-09-24 15:25:57 +03:00
Max Sandholm
b1214a9ae8
Ctrl-Q from the main window quits the application ( #69 )
...
Ctrl-Q from the main window now quits the application.
fixes #61
2017-09-24 13:58:36 +03:00
Konstantinos Sideris
ed5a96341b
Properly handle html tags
2017-09-22 22:12:36 +03:00
Konstantinos Sideris
1024198228
Fix reverse iterator crash
2017-09-22 21:34:31 +03:00
Konstantinos Sideris
b45f35cb51
Remove hdpi scaling
2017-09-22 21:33:29 +03:00
Konstantinos Sideris
3d13e1416a
Use white as the background color
2017-09-20 23:17:11 +03:00
Konstantinos Sideris
e7b7bf86c5
Do not capitalise the organization name
2017-09-18 20:50:51 +03:00
Konstantinos Sideris
fd552b8a9c
Remove off-white color
2017-09-16 17:43:34 +03:00
Konstantinos Sideris
29e21e2970
Merge branch 'images'
2017-09-10 13:13:02 +03:00
Konstantinos Sideris
1bfe48de75
Style change again
2017-09-10 12:59:21 +03:00
Konstantinos Sideris
edff71bc24
Implement image uploads ( #24 )
2017-09-10 12:58:00 +03:00
Konstantinos Sideris
ed36bdb037
Allow port number as part of the hostname
...
closes #21
2017-09-04 00:32:47 +03:00
Konstantinos Sideris
b5ae84c3c3
Add write support for m.emote events
...
closes #41
2017-09-03 11:43:45 +03:00
Konstantinos Sideris
a44a4f36af
Add read support for m.emote events ( #41 )
2017-09-02 16:47:59 +03:00
Konstantinos Sideris
6797cbc943
Linkify URLs in room topics
...
closes #52
2017-08-26 15:36:10 +03:00
Konstantinos Sideris
177dd6a5b0
Remove cache data when the user logs out
2017-08-26 14:31:23 +03:00
Konstantinos Sideris
7fbfe3af15
Update the cache state at once to avoid being in an invalid state
2017-08-26 13:49:16 +03:00
Konstantinos Sideris
43b1bdfe63
Remove nick colors
2017-08-26 11:33:26 +03:00
Konstantinos Sideris
18625d9d27
Fix login UX
...
The mxid input will not prevent the user from entering any invalid
value.
closes #22
2017-08-21 20:55:35 +03:00
Konstantinos Sideris
c6ec20fa40
Place the completion popup under the search widget
2017-08-20 21:13:00 +03:00
Konstantinos Sideris
2644e4acca
Small style change
2017-08-20 13:47:22 +03:00
Konstantinos Sideris
8d81489e05
Ghetto room switcher
2017-08-15 21:06:27 +03:00
Konstantinos Sideris
69036967ff
Focus on the text input when switching rooms
2017-08-14 18:25:43 +03:00
Konstantinos Sideris
9c28ba28a8
Update the last sender from the initial pagination
2017-08-14 00:26:57 +03:00
Konstantinos Sideris
f8505fe0bc
Don't overwrite last user
2017-08-13 21:04:43 +03:00
Konstantinos Sideris
9189782d3b
macOS: Get rid of text field's focus border
2017-08-12 13:21:52 +03:00
Konstantinos Sideris
c428ef4b6a
Remove unused variable
2017-08-06 22:37:55 +03:00
Konstantinos Sideris
7a56f65fb3
Use 'You' instead of your own user id
2017-08-06 22:28:54 +03:00
Konstantinos Sideris
146aaa8746
Display the most recent message instead of the topic
...
closes #11
2017-08-06 18:53:31 +03:00
Konstantinos Sideris
4fccc6270e
Fix full screen image viewer on macOS sierra
2017-08-06 10:35:32 +03:00
Konstantinos Sideris
93e8297b61
The emoji panel shouldn't steal focus from other windows
2017-08-05 21:34:24 +03:00
Konstantinos Sideris
dd30b5d06e
Rename Event.h header to avoid header conflict
2017-08-05 17:02:53 +03:00
Konstantinos Sideris
b1c7e58585
Remove extra exception catch
2017-08-05 16:27:30 +03:00
Konstantinos Sideris
af0f22fc91
Keep fetching history until the scrollbar gets activated
2017-08-05 15:59:24 +03:00
Konstantinos Sideris
748eb949a7
Parse utf-8 data properly
2017-08-01 19:42:42 +03:00
Konstantinos Sideris
8d05073547
Initial support for state cache
...
- Adds detection for duplicate events
2017-07-30 14:30:55 +03:00
Konstantinos Sideris
e5ccb73a20
Add serialization on matrix events
2017-07-30 14:30:55 +03:00
Konstantinos Sideris
c6c024ccbf
Append backwards events after the spacer
2017-07-30 14:02:15 +03:00
Konstantinos Sideris
622fc3f9c3
Save and restore app's window size
...
closes #46
2017-07-30 13:59:28 +03:00
Konstantinos Sideris
3c1f9696df
Fix small timestamp misalignment
2017-07-15 19:18:34 +03:00
Konstantinos Sideris
30fb46e25b
Use pixels to specify the font sizes
...
Basically reverts the last font related commits since pointSize isn't
as reliable as pixelSize.
Also some layout values (margins, spacings) have been moved out to Config.h.
2017-07-15 17:11:46 +03:00
Konstantinos Sideris
847ae37df2
Linting
2017-07-09 22:27:20 +03:00
Konstantinos Sideris
b382dfbee6
Remove custom badge counter from mac and windows ( #42 )
...
- Add icon set on mac for future packaging
2017-07-09 12:49:17 +03:00
jansol
f5ba63946b
Improve login flow ( #35 )
...
* Validate both inferred and explicitly entered server addresses by attempting to call the /versions endpoint
* If the domain from the mxid fails validation, try prefixing it with 'matrix'
* Only show server address field if address validation ultimately fails
2017-07-08 14:41:49 +03:00
george99g
03437cc693
Fix emoji alignment issue ( #43 )
2017-07-04 23:40:41 +03:00
Konstantinos Sideris
140cbd3c27
Slow down spinner
2017-07-02 16:44:05 +03:00
Konstantinos Sideris
06cacc13d1
Show unread count on MacOs toolbar
2017-07-01 16:34:36 +03:00
Konstantinos Sideris
97ca8d0ed1
Remove hardcoded font sizes on the top bars and text input
2017-07-01 15:52:46 +03:00
Konstantinos Sideris
22d0f50e36
Add option for the default font size
2017-07-01 15:21:07 +03:00
Konstantinos Sideris
0ed2350664
Set emoji size relative to the default font
2017-07-01 14:03:00 +03:00
Konstantinos Sideris
730a56f58e
Remove hardcoded font sizes, margins etc
...
- Fixes small font issue on MacOs
2017-07-01 12:46:58 +03:00
Konstantinos Sideris
82b48d926d
Don't collapse room list
2017-06-06 15:03:11 +03:00
Konstantinos Sideris
da190593c8
Repaint when the room avatar is received
2017-06-05 20:19:20 +03:00
Konstantinos Sideris
26dfbfd08c
Lazy load initial timeline events
2017-06-05 19:54:45 +03:00
Konstantinos Sideris
36d25951dc
Fix scrolling flickering on backwards pagination
2017-06-05 19:21:19 +03:00
Konstantinos Sideris
95c492bad8
Experimental support for user avatars in timeline
2017-06-05 02:14:05 +03:00
Konstantinos Sideris
b8c8fed655
Show confirmation dialog on logout
...
Minor stylistic refactoring
closes #29
2017-06-02 18:04:51 +03:00
Konstantinos Sideris
5c283a5cda
Don't mark messages from local user as unread
...
closes #37
2017-06-01 18:55:42 +03:00
Konstantinos Sideris
af80c251d7
Add context menu on RoomList items
2017-05-31 19:42:07 +03:00
Konstantinos Sideris
c184362044
Add menu to toggle notifications
2017-05-31 17:06:03 +03:00
Konstantinos Sideris
5197f8a886
Add drop shadow to emoji panel
...
- Minor refactoring
2017-05-31 02:35:28 +03:00
Konstantinos Sideris
0f72808858
Create a named device on login
2017-05-30 14:28:04 +03:00
Konstantinos Sideris
384fe7067e
Set up translations
2017-05-29 19:09:12 +03:00
Konstantinos Sideris
f490040811
Fetch avatar thumbnail instead of the original image
...
closes #31
2017-05-27 01:29:45 +03:00
Konstantinos Sideris
0cd9e3b1e5
Resolve name and avatar on 1-on-1 rooms
2017-05-26 21:34:16 +03:00
Konstantinos Sideris
251f569a5c
Add custom scrollbar on the timeline
2017-05-24 22:45:13 +03:00
Konstantinos Sideris
0237fec90c
Don't show the landing page when there is an active user
2017-05-22 18:03:37 +03:00
Konstantinos Sideris
9772f52876
Increase tray icon's bubble size
2017-05-22 17:35:17 +03:00
Konstantinos Sideris
0e04e4d00e
pixelSize -> pointSize
2017-05-22 00:08:33 +03:00
Konstantinos Sideris
23431362d9
Properly quit app on tray icon's action
...
closes #30
2017-05-21 23:21:02 +03:00
Konstantinos Sideris
0fddb7ebff
Be explicit about room's name color
2017-05-21 22:52:38 +03:00
Konstantinos Sideris
a45582585d
Minimize to tray
2017-05-21 16:36:06 +03:00
Konstantinos Sideris
c480f8f4bc
Snappy sidebar
2017-05-19 19:55:38 +03:00
Konstantinos Sideris
30fce32161
Remove RoomList UI form
2017-05-19 17:23:36 +03:00
Konstantinos Sideris
f2ff4772a7
Reverse colors on selection for the unread message bubble
2017-05-19 16:49:25 +03:00
Konstantinos Sideris
48618b438f
Add hover color on RoomList items
2017-05-19 03:45:46 +03:00
Konstantinos Sideris
f4522f9bbf
Simplify room list item
2017-05-19 03:28:15 +03:00
Konstantinos Sideris
c470e49aa9
Add geometry animation on emoji picker
2017-05-16 21:21:31 +03:00
Konstantinos Sideris
992af5611b
Show user info even if the display name or avatar are missing
2017-05-16 15:43:29 +03:00
Konstantinos Sideris
49831a2390
Clear room state on logout
2017-05-16 15:23:31 +03:00
Konstantinos Sideris
a568d60cef
Remove MainWindow ui form
2017-05-14 21:10:03 +03:00
Konstantinos Sideris
e5ef84617c
Add missing parents
2017-05-14 17:32:12 +03:00
Konstantinos Sideris
b3bb0531de
Make InputValidator class members static
2017-05-14 16:36:30 +03:00
Konstantinos Sideris
7502f167ae
Use QSharedPointer to manage TimelineViews and RoomInfoListItems
2017-05-14 16:31:59 +03:00
Konstantinos Sideris
ccad3f6bd6
Fix ripple size on RoomListItem
2017-05-14 01:27:30 +03:00
Konstantinos Sideris
c060a136a9
Update prev_batch only while paginating
2017-05-13 19:58:48 +03:00
Konstantinos Sideris
0368d854cf
Initial support for backwards pagination
2017-05-12 15:43:35 +03:00
Konstantinos Sideris
ff611c1b39
Highlight URLs in TimelineView
2017-05-11 01:28:06 +03:00
Konstantinos Sideris
f2ce910b16
Prefer non UserId as display names
2017-05-10 18:04:57 +03:00
Konstantinos Sideris
6f065530ae
Restrict inline image size to its minimum
2017-05-10 13:12:50 +03:00
Konstantinos Sideris
d277d5c68b
Check for nullptr before delete
2017-05-10 12:45:53 +03:00
Konstantinos Sideris
e78e43c86a
Save the user defined domain instead of the one provided by login response
2017-05-09 16:57:41 +03:00
Konstantinos Sideris
1f10403ace
Add settings panel for homeserver's domain
2017-05-09 13:25:43 +03:00
Konstantinos Sideris
0834b246ad
Initial support for display names
2017-05-08 19:44:01 +03:00
Konstantinos Sideris
63db04793b
Add sync timeout
2017-05-08 18:34:18 +03:00
Konstantinos Sideris
e44cc374e1
Use strongly typed enums
2017-05-08 00:51:03 +03:00
Konstantinos Sideris
1f90c58076
Use timeline to retrieve state events
...
- Rooms without any history will be shown.
- Room's state will be kept in sync and any updates will be visible.
2017-05-07 17:15:38 +03:00
Konstantinos Sideris
8825e072f2
Add matrix::events namespace
2017-05-04 17:11:04 +03:00
Konstantinos Sideris
4ea76503fb
Add base Event class
2017-05-04 17:11:04 +03:00
Konstantinos Sideris
b064df8b45
Add event contents
2017-05-04 17:11:04 +03:00
Matthew Hodgson
9cc9b623eb
macOS fixes ( #15 )
...
- Improve build instructions.
- Fix fullscreen image sizing.
- Remove horizontal overscroll of RoomInfoListItem.
2017-05-04 13:11:04 +03:00
Konstantinos Sideris
fb76118309
Set application attributes before QApplication
2017-05-03 23:32:51 +03:00
Konstantinos Sideris
9de94061ec
Set text color for QLineEdit
2017-05-03 21:42:51 +03:00
Konstantinos Sideris
3d77438878
Don't set the font size with a stylesheet
2017-05-02 14:15:13 +03:00
Konstantinos Sideris
e3acb533ad
Enable high dpi
2017-05-01 16:03:42 +03:00
Konstantinos Sideris
4a7b005c64
Add lint rule
2017-04-30 15:10:59 +03:00
Konstantinos Sideris
e6fd80f87f
Fix MainWindow being out of focus when the fullscreen overlay is closed
...
That was probably a Linux specific issue or my mouse is buggy.
2017-04-30 13:00:11 +03:00
Konstantinos Sideris
41f6dbe053
Close fullscreen overlay with out of contents click
2017-04-30 03:47:12 +03:00
Konstantinos Sideris
57332553c4
Add full screen overlay for image display
2017-04-30 01:55:10 +03:00
Konstantinos Sideris
ec14e5e556
Show image text overlay on hover
2017-04-30 01:10:01 +03:00
Konstantinos Sideris
c9d03b793b
Add initial support for inline images
2017-04-28 14:56:45 +03:00
Konstantinos Sideris
4b4035eebc
Rename History to Timeline
...
In order to be compatible with the Matrix terminology
2017-04-27 03:14:12 +03:00
Konstantinos Sideris
1a82150aa8
Exclude m.room.member events from initial sync
2017-04-27 00:32:33 +03:00
Konstantinos Sideris
415ef7e9c7
Add spinner to hide uninitialized layout after login
2017-04-26 02:24:10 +03:00
Konstantinos Sideris
da39975047
Bundle fonts into the app
...
- Create QApplication instance before font initialization, otherwise
QFontDatabase crashes.
- Fix broken QRC font paths
2017-04-25 17:36:52 +03:00
Konstantinos Sideris
46af37490f
Set allowed TLD size to 63 chars
2017-04-24 20:33:42 +03:00
Konstantinos Sideris
9d9b5e4f68
Don't set initial room with an empty room list
2017-04-24 20:05:24 +03:00
Konstantinos Sideris
6d9acc8621
Add common style for the scroll bars
2017-04-24 17:06:34 +03:00
Konstantinos Sideris
42bb9bb63a
Add full emoji support
2017-04-23 21:31:08 +03:00
Konstantinos Sideris
fa83ae1cf8
Add logo icons
2017-04-21 17:16:29 +03:00
Konstantinos Sideris
f046dc8ac6
Add initial read-only emoji support
2017-04-19 19:38:39 +03:00
Konstantinos Sideris
e680865593
Update unread messages for the current room when the app is inactive
2017-04-16 22:34:57 +03:00
Konstantinos Sideris
e1d48367f8
Show the unread message count on the window title
2017-04-15 19:04:02 +03:00
Konstantinos Sideris
e02dd2b8c5
Move the main window to the center
2017-04-15 17:23:35 +03:00
Konstantinos Sideris
3b0ff1a4cd
Add initial support for unread message count
...
- Add border width on Badge
2017-04-15 02:56:04 +03:00
Konstantinos Sideris
a5ebff5949
Use color generator for nick names
2017-04-14 17:10:18 +03:00
Konstantinos Sideris
8358720d8e
Use light theme
2017-04-14 15:13:09 +03:00
Konstantinos Sideris
bb03a402d7
Add proper struct initialization
2017-04-13 04:32:18 +03:00
Konstantinos Sideris
27f7142cd8
Initial implementation for local echo
...
Each HistoryView maintains a list of pending events. Each pending
message is validated from the homeserver with either the returned
EventId or the body of the message.
Currently there is no support to remove invalid messages.
Also some small refactoring:
- ChatPage doesn't know about the message being sent. The message
delivery is solely handled by HistoryViewManager.
- Nick coloring function moved to HistoryViewManager.
2017-04-13 04:11:22 +03:00
Konstantinos Sideris
718562737c
Don't use icons as room avatars
2017-04-12 17:14:53 +03:00
Konstantinos Sideris
9092ae3db8
Use less contrast on the sidebar
2017-04-12 02:44:01 +03:00
Konstantinos Sideris
e8aae26aea
Small stylistic changes
2017-04-12 01:29:25 +03:00
Konstantinos Sideris
532b1ab38f
Add style for m.notice
...
Tone down the main text color
2017-04-12 00:52:56 +03:00
Konstantinos Sideris
c431eee401
Use a single nick to color map
2017-04-11 22:48:02 +03:00
Konstantinos Sideris
68d0696ca4
Decrease button's animation duration
2017-04-11 18:54:24 +03:00
Konstantinos Sideris
193490bd9e
Remove halo animation
2017-04-11 18:45:01 +03:00
Konstantinos Sideris
40722b7af7
Remove capitalization
2017-04-11 18:25:39 +03:00
Konstantinos Sideris
6468faa39e
Use only a MatrixClient as a shared pointer
2017-04-11 17:45:47 +03:00
Konstantinos Sideris
0770f6e6b5
Make the timer single shot
2017-04-11 02:35:09 +03:00
Konstantinos Sideris
792011c1c9
Allow message text selection
2017-04-10 19:08:27 +03:00
Konstantinos Sideris
1c9e92b8bd
Handle room avatars in top bar without an icon
2017-04-10 19:01:09 +03:00
Konstantinos Sideris
a859145983
Hide horizontal scroll bar on history view
2017-04-10 18:49:24 +03:00
Konstantinos Sideris
ee72d8b7b7
Use QString::simplified instead of regex
2017-04-10 18:17:41 +03:00
Konstantinos Sideris
0f3cffcfd9
Use Matrix ID for login
2017-04-10 01:47:15 +03:00
Konstantinos Sideris
87ecb28558
Sanitize room info for display
2017-04-10 01:34:53 +03:00
Konstantinos Sideris
b301a2828e
Remove exception specifications
2017-04-09 18:09:09 +03:00
Konstantinos Sideris
3d3f2ec33e
Add travis CI
2017-04-09 03:54:39 +03:00
Konstantinos Sideris
407afcd2f2
Clear text fields after login
2017-04-09 02:32:48 +03:00
Konstantinos Sideris
239780557f
Add logout button
...
Logout from the current session and invalidate the current token
2017-04-09 02:17:04 +03:00
Konstantinos Sideris
f50fb34fb6
Implement initial registration stage
2017-04-08 02:53:23 +03:00
Konstantinos Sideris
c7c3ee19ee
Use QLabel to display registration errors
2017-04-07 19:25:06 +03:00
Konstantinos Sideris
73e73f46ea
Use const refs for the deserialized data
2017-04-06 19:56:33 +03:00
Konstantinos Sideris
5bcaaa3aa3
Initialize sync timer
2017-04-06 15:17:58 +03:00
Konstantinos Sideris
4f45575c79
Initial commit
2017-04-06 02:06:42 +03:00