Commit graph

424 commits

Author SHA1 Message Date
Nicolas Werner
a00b11def7 Rename EventStore::event to get to remove ambiguity with QObject::event 2020-07-26 12:33:30 +02:00
Nicolas Werner
4e7bd20e0c Reset fetch in progress when fetch failed 2020-07-25 19:38:56 +02:00
Nicolas Werner
b294430fe5 Return to redacted messages instead of just storing the redaction 2020-07-25 19:38:27 +02:00
trilene
aec24efbe2 Specify call type on timeline 2020-07-24 13:30:12 -04:00
Nicolas Werner
147ae68c31 Don't send url, if we send an encrypted file
Fix issues when sending images to some clients.
2020-07-23 14:33:07 +02:00
Nicolas Werner
19f27236ea Fix reactions 2020-07-20 00:42:48 +02:00
Nicolas Werner
6f2bc908ba Fix reaction display 2020-07-19 12:22:54 +02:00
Nicolas Werner
8261446f83 Fix reply scrolling 2020-07-18 21:14:45 +02:00
Nicolas Werner
046b3f4da6 Mark own events as read again after sending 2020-07-18 20:39:31 +02:00
Nicolas Werner
36e4405f25 Fix flickering of encrypted messages when sending using new store 2020-07-18 19:15:50 +02:00
Nicolas Werner
a5dda86a6c Fix encryption indicator 2020-07-18 17:59:59 +02:00
Nicolas Werner
56ea89aa11 Reenable sending messages 2020-07-18 17:43:49 +02:00
trilene
16209ce073 Hide incoming CallCandidates in encrypted rooms 2020-07-14 07:34:40 -04:00
trilene
195ba5e5ee Remove comments 2020-07-13 20:47:34 -04:00
trilene
774d864096 Hide CallCandidates events from the timeline 2020-07-13 19:45:41 -04:00
Nicolas Werner
9ae7d0dce3 Readd pagination and fix redactions 2020-07-13 00:08:58 +02:00
trilene
c73cfe1810 Merge remote-tracking branch 'upstream/master' into voip 2020-07-10 19:39:44 -04:00
trilene
7a206441c8 Support voice calls 2020-07-10 19:19:48 -04:00
Nicolas Werner
3421728898 Fetch missing events 2020-07-10 01:37:55 +02:00
Nicolas Werner
530c531c4b WIP: Event Store split out 2020-07-09 23:15:22 +02:00
Nicolas Werner
8d3ab300b6 Open url using QDesktopServices from Qml
This fixes some weirdness on some platforms, where Qt.openUrlExternally
does weird stuff.
2020-07-09 00:45:37 +02:00
Nicolas Werner
21a1f249f9 Fix Qt 5.9 build 2020-06-27 03:15:36 +02:00
Nicolas Werner
f6fa494666 Make connections across threads queued in any case 2020-06-26 13:36:21 +02:00
Nicolas Werner
cded494cb5 Try to make text rendering in qml sharper 2020-06-19 19:34:03 +02:00
Joseph Donofry
7afb164244
Merge remote-tracking branch 'origin/master' into presence 2020-06-11 22:27:30 -04:00
Joseph Donofry
b9626f0c69
Additional code cleanup 2020-06-11 21:59:21 -04:00
Joseph Donofry
12c46e86b4
Fix linting 2020-06-11 00:37:54 -04:00
Joseph Donofry
5e355c36fd
Fix build issue on some versions of clang 2020-06-10 22:34:14 -04:00
Joseph Donofry
6bb73f84a3
Merge master and fix conflicts 2020-06-09 20:51:36 -04:00
Nicolas Werner
96f4169be9 Show presence and set custom status messages 2020-06-08 01:59:05 +02:00
Nicolas Werner
9eddcfc42f Remove some redundant functions 2020-05-30 16:38:11 +02:00
Nicolas Werner
6b60ff7713 Rename settings to be more consistent 2020-05-26 22:54:51 +02:00
Nicolas Werner
f452bdf2b0 Make settings update immediately in qml and allow limiting timeline width
Limiting improves readability on wide monitors.

The immediate update of the settings is done by just exposing settings
as properties and then setting the settings as a context property.
2020-05-26 22:54:51 +02:00
Nicolas Werner
937b35ca8a Fix some join messages showing as empty 2020-05-26 22:54:51 +02:00
Joseph Donofry
5228861b88
Add reaction/redaction for in-line Reactions 2020-05-21 21:21:35 -04:00
lkito
d8b89e2ef0 Added an optional feature to show bigger emoji-only messages with 3 or less emoji 2020-05-21 16:31:27 +04:00
Nicolas Werner
5abdad308d Fix crash when reacting to messages from /sync
Messages on /sync don't have a room_id
2020-05-17 02:36:04 +02:00
Nicolas Werner
f0757a6426 Fix local echo for reactions 2020-05-16 22:48:43 +02:00
Joseph Donofry
6d2789f4d5
Merge master into reactions 2020-05-14 20:53:01 -04:00
Joseph Donofry
18f934efad
Add un-encrypted warning icon for messages in encrypted rooms 2020-05-14 20:35:29 -04:00
Nicolas Werner
279bcd1bf2 Show inline images
(This is such a hack and will probably break, but it works for now for
most cases...)
2020-05-14 00:41:10 +02:00
Joseph Donofry
ee4dcef90f
Add new QML-based emoji picker (work in progress)
This is necessary to support having a picker within QML.
Eventually, this should replace the existing widget-based one.
2020-05-13 00:36:41 -04:00
Joseph Donofry
8984661187
Initial support for sending reactions 2020-05-09 22:39:25 -04:00
Nicolas Werner
000ab4853a Translation updates 2020-05-10 01:38:40 +02:00
Joseph Donofry
a1661f7006
merge master into reactions 2020-05-07 20:53:24 -04:00
DeepBlueV7.X
7beaf868ef
Merge pull request #192 from Nheko-Reborn/reactions
Reactions
2020-05-08 00:13:24 +02:00
Nicolas Werner
a942ae9b93 Fix messages being immediately read again 2020-05-06 19:21:31 +02:00
Nicolas Werner
0b1d3a40f4 Remove unused binding name 2020-05-06 13:45:38 +02:00
Nicolas Werner
e5a5a66716 Fix reaction redaction for real this time 2020-05-06 12:52:13 +02:00
Nicolas Werner
ff54ce9334 Fix rooms with a lot of reactions not paginating correctly 2020-05-06 11:37:40 +02:00
Nicolas Werner
e045e3eb1c Show displayname on reactions 2020-05-06 11:28:24 +02:00
Nicolas Werner
8348a6c35d Fix reaction count 2020-05-06 11:15:45 +02:00
Nicolas Werner
692c6119b4 Fix joined rooms dropping to the bottom at first 2020-05-05 19:08:59 +02:00
Nicolas Werner
54013e4a00 Basic, broken reaction display 2020-05-04 13:14:54 +02:00
DeepBlueV7.X
38417a374d
Merge pull request #184 from shocklateboy92/features/backlog-progress
Add visual indication that data is being fetched
2020-05-01 10:19:32 +02:00
Lasath Fernando
166ed0674d Run linter 2020-04-30 22:40:27 -07:00
Nicolas Werner
e6fcccc8bd Don't store pending receipts in cache
We don't get notified for every message. Sometimes we only get a read
receipt for the newest message, which means old read receipts accumulate
in the database. This least to some considerable CPU overhead, when
checking if the timeline should be notified for new read receipts.
Instead just always notify, since that has far less overhead in the
worst case and doesn't need complicated cache cleanup.

The old pending_receipts db is not removed for now. It should still have
minimal storage overhead and we don't have a good mechanism for cache
format upgrades atm.
2020-04-30 22:42:56 +02:00
Nicolas Werner
0716bbafff Strip reply fallback from plain text body 2020-04-30 00:04:30 +02:00
Lasath Fernando
1f9d3024b1 Add visual indication that data is being fetched
This turns `paginationInProgress` field of `TimelineModel` into a `Q_PROPERTY`, so the Ui can bind to it.
For the moment, I'm showing the same spinner as we do during initial sync. It's not ideal, on the count of being giant and in the middle but it's better than nothing. We can make it more subtle later.
2020-04-29 13:52:39 -07:00
Joseph Donofry
5893365439 Change decrypt setting again 2020-04-23 19:21:20 -04:00
Joseph Donofry
994edb836c Change how decrypt value is retrieved from settings 2020-04-23 19:05:44 -04:00
Nicolas Werner
b00e624fb0 Fix own messages not showing as encrypted 2020-04-23 15:28:46 +02:00
Joseph Donofry
b298f01d92
Add signal/slot for decryption changes in last patch 2020-04-22 19:52:30 -04:00
Joseph Donofry
a4c280a4f9
Add ability to toggle sidebar messages for encrypted rooms 2020-04-21 22:40:58 -04:00
Nicolas Werner
0e1bb5137b Add menu entry to show decrypted source
Also make hidden entries not consume space in Menus with some qml
styles.
2020-04-21 22:32:45 +02:00
Nicolas Werner
e8271acd99 Fix own encrypted images not showing up after sending 2020-04-21 09:03:36 +02:00
Nicolas Werner
eff8af6fac Try to fix messages getting stuck by sometimes sending them twice and never failing them 2020-04-19 15:07:23 +02:00
Nicolas Werner
a70044e67b Cache decrypted events 2020-04-14 20:15:11 +02:00
Nicolas Werner
c739a0422d Fix encrypted event indicator 2020-04-14 19:29:22 +02:00
Nicolas Werner
dcddea6fb8 Fix reply not closing
fixes #124
2020-04-13 16:22:30 +02:00
Nicolas Werner
d68b24188f Size reply background by contents 2020-04-10 08:48:30 +02:00
Nicolas Werner
8bf25f3d80 Set palette globally 2020-03-30 21:48:28 +02:00
Nicolas Werner
d35cc3dda4 Use palette for qml code for theming
Can't do it for QtWidgets code. We need to fully transition, before we
can fully switch over probably.
2020-03-29 22:11:33 +02:00
Emi Simpson
a9bbea881e
Removed double-sanitization of ... is typing names 2020-03-24 18:06:19 -04:00
Adasauce
d0a1e81f43
Better image overlay handling when downloading
- hides the overlay when prompting for download location
 - cancel re-shows the dialog
 - success closes the overlay
 - would be nice to have a return code from the download fn in
 mtxclient.

Closes #140
2020-03-20 10:10:53 -03:00
Pushpam Choudhary
71ba8cb284 Add periods to terminate non-user messages in the timeline 2020-03-13 00:48:41 +05:30
DeepBlueV7.X
fc2f08a186
Merge pull request #137 from Nheko-Reborn/blurhash
Experimental Blurhash support
2020-03-05 21:07:18 +00:00
Adasauce
ed4bb1a576
Add support for more room events in timeline 2020-03-03 15:06:52 -04:00
Nicolas Werner
0fc98b2692 Experimental blurhash implementation (MXC2448) 2020-03-03 02:34:26 +01:00
Nicolas Werner
b1eff0a37f Improve link theming 2020-02-27 00:34:58 +01:00
Nicolas Werner
6bdc75d073 Reset user colors on theme change (in qml timeline) 2020-02-20 20:51:07 +01:00
Nicolas Werner
2895162971 Clear user colors on theme change 2020-02-20 20:28:23 +01:00
Nicolas Werner
fcaec0d099 Fix html messages sent as just plain text 2020-02-20 18:27:29 +01:00
Adasauce
b24165371c Paginationg != Paginating in debug message 2020-02-17 17:13:28 +01:00
Nicolas Werner
65bd099372 Don't delete messages received out of order (fixup the flickering fix) 2020-02-16 18:58:38 +01:00
Nicolas Werner
ec9da9f42a Try to fix flickering, if sync return event before send completes 2020-02-16 00:20:41 +01:00
Adasauce
cb36050822
use QStandardPaths locations for all file dialogs. 2020-02-14 21:35:26 -04:00
Adasauce
17b5cc32dc
use the standard system download path for downloads
QFileDialog's dir arg (which was set to the incoming file name from the
Matrix download) can take a full path to suggest. By prepending
QStandardPaths::DownloadLocation, it opens to the system's download
folder and proposes the filename as the download name.

Using QStandardPaths should make this work on other platforms, and from
what I read, its possible for this to return an empty string on
platforms where it doesn't support it, so this should essentially
revert to the previous functionality if Qt can't determine the system's
download location.
2020-02-14 16:24:53 -04:00
Nicolas Werner
a2566b870e show image dialog fullscreen instead of resizing to the size of the first desktop 2020-02-13 15:11:43 +01:00
Nicolas Werner
c5af3543e6 fix c++11 range-loop might detach Qt container 2020-02-07 02:56:03 +01:00
Joseph Donofry
096db389d1
Make closing the reply popup actually clear the reply message 2020-02-04 18:17:14 -05:00
Nicolas Werner
9d90467e6a Select first room on startup 2020-02-04 21:16:04 +01:00
Nicolas Werner
7ccc120f63 modernize: use nullptr 2020-02-04 04:58:43 +01:00
Nicolas Werner
d330020fdd Improve styling a bit 2020-02-03 19:21:03 +01:00
Nicolas Werner
96e3a7735d Fix <displaynames> 2020-02-02 15:15:00 +01:00
Nicolas Werner
4cd260bfcf Optimize includes a bit 2020-01-31 15:11:21 +01:00
Joseph Donofry
d6d4076d36
Merge branch '0.7.0-dev' of ssh://github.com/Nheko-Reborn/nheko into 0.7.0-dev 2020-01-28 19:20:51 -05:00
Joseph Donofry
d205952fc8
Change tooltip palette settings for QML 2020-01-28 19:20:39 -05:00
Nicolas Werner
75c5c01189 Merge branch 'plain-text-messages' into 0.7.0-dev 2020-01-29 00:42:46 +01:00
DeepBlueV7.X
247af99399
Merge pull request #111 from Nheko-Reborn/better-build
Improve build system and dependency bundling.
2020-01-28 23:38:16 +00:00
Joseph Donofry
2b8b04a04b
Add initial QML Reply Popup 2020-01-27 23:28:11 -05:00
Nicolas Werner
760d4ddef9 Fix newlines in plain text messages again 2020-01-27 18:36:34 +01:00
Nicolas Werner
e81a4e8f9a Don't send useless formatted_bodies 2020-01-27 17:25:09 +01:00
Nicolas Werner
9c368fa7f4 Fix reply rendering without markdown in riot 2020-01-27 17:05:40 +01:00
Nicolas Werner
e2f547149a Allow sending messages as plain text 2020-01-27 15:59:25 +01:00
Nicolas Werner
f755550418 Add missing thread include 2020-01-26 16:38:31 +01:00
Nicolas Werner
cbd428c584 Switch around dark theme colors again (after looking at some screenshots) 2020-01-23 21:28:17 +01:00
Nicolas Werner
e9267ffc76 Show event type string in placeholder 2020-01-23 20:59:17 +01:00
Nicolas Werner
86960e67ec Implement display of membership events 2020-01-23 20:34:04 +01:00
Nicolas Werner
c95f4d8276 Fix colors in typing display, when username contains emoji 2020-01-21 20:41:09 +01:00
Nicolas Werner
dc44ac50a3 Linkify links before sending 2020-01-21 03:36:26 +01:00
Nicolas Werner
fe912240bc Move typing display to qml 2020-01-17 01:25:14 +01:00
Nicolas Werner
4eb0e11740 Try to match old theme better 2020-01-14 20:44:11 +01:00
Nicolas Werner
54a16ae2d7 Fix duplicate messages in timeline after sending 2020-01-14 20:43:35 +01:00
Nicolas Werner
3f02b0bf56 Escape blacklisted html tags 2020-01-14 17:47:30 +01:00
Nicolas Werner
62f17dffbd Fix replies in encrypted rooms
The relation needs to be unencrypted...
2020-01-13 12:37:02 +01:00
Nicolas Werner
4ca8da9a89 Allow replying with an image 2020-01-12 17:07:22 +01:00
Nicolas Werner
4727f1c2bb Fetch missing events for replies 2020-01-11 18:53:32 +01:00
Nicolas Werner
2b3dc3d8b9 Implement fancy reply rendering
This currently assumes the event, that is replied to, is already
fetched. If it isn't, it will render an empty reply. In the future we
should fetch replies before rendering them.
2020-01-11 14:07:51 +01:00
Nicolas Werner
51d7e64992 Simplify read message logic with inverted timeline 2020-01-06 18:29:08 +01:00
Nicolas Werner
5af6f6528b Use fetchMore for native lazy loading of item model data 2020-01-06 18:29:08 +01:00
Nicolas Werner
946ab4d0f2 invert timeline 2020-01-06 18:29:08 +01:00
Nicolas Werner
e084543cc0 Move visitors out of TimelineModel 2019-12-27 21:50:37 +01:00
Nicolas Werner
37fbcaf07b Reduce includes of MatrixClient.h, as it is the most expensive header 2019-12-15 03:19:33 +01:00
Nicolas Werner
5fc1f3bd67 Reduce overhead of Cache.h 2019-12-15 02:56:04 +01:00
Nicolas Werner
13df852479 Reduce some include of Cache.h since it needs 11s on average 2019-12-14 23:40:32 +01:00
Nicolas Werner
659e36b113 Update to c++17 2019-12-14 18:59:38 +01:00
Nicolas Werner
9c1912ed93 Fix preview of sent encrypted images 2019-12-13 01:31:14 +01:00
Nicolas Werner
e98a61fea6 Show topic and name changes in timeline 2019-12-10 14:46:52 +01:00
Nicolas Werner
362efbf5b9 Restore linkification of messages 2019-12-06 02:57:08 +01:00
Nicolas Werner
43d7fe0d35 Implement sending encrypted files 2019-12-05 15:31:53 +01:00
Nicolas Werner
5bfdaff778 Implement decryption of images
It is a bit of a hack, but it works...
2019-12-03 23:34:16 +01:00
Nicolas Werner
a689118d71 lint 2019-12-03 19:49:56 +01:00
Nicolas Werner
b8f6e4ce64 Add encrypted file download 2019-12-03 02:48:29 +01:00
Nicolas Werner
6c2ec3fe67 Rename qml namespace from com.github.nheko to im.nheko 2019-11-30 01:43:39 +01:00
Nicolas Werner
9fd279c020 Show encryption enabled and use a non zero size for zero size vide 2019-11-23 20:07:15 +01:00
Nicolas Werner
7bd875004f Only mark messages as read, when room is active 2019-11-23 20:07:15 +01:00
Nicolas Werner
5429b425e9 Lint 2019-11-23 20:07:15 +01:00
Nicolas Werner
cf88499ccb Fix replies to encrypted events 2019-11-23 20:07:15 +01:00
Nicolas Werner
001c94865c Fix windows build
No idea, why apply visitor doesn't work with temporaries?
2019-11-23 20:07:15 +01:00
Nicolas Werner
c424e397b0 Add loading spinner and restore message send queue 2019-11-23 20:07:15 +01:00
Nicolas Werner
562169965c Show only messages in room list 2019-11-23 20:07:15 +01:00
Nicolas Werner
91d1f19058 Remove old timeline 2019-11-23 20:07:15 +01:00
Nicolas Werner
2dd636456c Add basic sections and button placeholders to qml timeline 2019-11-23 20:06:14 +01:00
Nicolas Werner
52056a79fa Try to reduce memory usage by reusing avatar pixmaps 2019-08-26 08:51:56 +02:00
Nicolas Werner
0398c846f6 Add 'and' to typing display 2019-07-28 18:13:16 +02:00
Nicolas Werner
b28115eb37 Fix message_type not being initialized correctly
Fixes "sent an audio file" replies, that were actually replies to text
messages.
2019-07-28 16:50:10 +02:00
Nicolas Werner
50c3d4ed3a Add decryption error messages to translations 2019-07-28 13:16:13 +02:00
Nicolas Werner
1c9cc33902 Try to localise timestamps
I'm not sure, if that is the right way, but Qt doesn't really have a way
to format custom localised dates, so I tried to find the closest
approximations to what we currently have.

Relates to #69
2019-07-28 12:55:08 +02:00
Joseph Donofry
9fc079a4a9
Remove uneeded log message 2019-07-26 17:47:34 -04:00