Commit graph

1177 commits

Author SHA1 Message Date
Nicolas Werner
e48dfd15fe Add shortcuts to select/deselect reply targets 2020-05-06 13:33:13 +02:00
Nicolas Werner
a1951056da Reaction and Button layout fixes 2020-05-06 03:40:24 +02:00
Nicolas Werner
e55a09906f Misc color fixes 2020-05-05 23:43:43 +02:00
Nicolas Werner
ca5490074a Fix scroll to replied to message (somewhat) 2020-05-05 23:43:28 +02:00
Nicolas Werner
846ff33ed8 Position reaction emoji and text on the same baseline 2020-05-04 13:41:18 +02:00
Nicolas Werner
54013e4a00 Basic, broken reaction display 2020-05-04 13:14:54 +02:00
Nicolas Werner
a9aed09d35 Add placeholder for reactions 2020-05-04 00:59:05 +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
Nicolas Werner
2997155f56 Fix spacing of typing notifications 2020-04-30 22:02:41 +02:00
Lasath Fernando
21b33363ce Make pagination spinner inline 2020-04-29 13:52:39 -07: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
DeepBlueV7.X
19ec8d261d
Merge pull request #183 from shocklateboy92/features/smooth-scroll
Improve scrolling in timeline view
2020-04-29 22:15:53 +02:00
Nicolas Werner
3226d1787c Fix some smaller coloring issues 2020-04-29 21:41:46 +02:00
Lasath Fernando
c5d373e8f1 Address CR comments 2020-04-29 02:14:43 -07:00
Lasath Fernando
5c57de070e Remove commented out code; fix padding for Pill 2020-04-28 01:10:54 -07:00
Lasath Fernando
84c5ff0bcb Fix binding loops for height 2020-04-28 00:38:13 -07:00
Lasath Fernando
1555dc2296 Shamelessly steal ScrollHelper.qml from spectral
I mean, we're both GPL so... :P
2020-04-28 00:29:51 -07: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
6a39b29acc Disable opening images, when they are not loaded 2020-04-21 20:55:28 +02:00
Nicolas Werner
dcddea6fb8 Fix reply not closing
fixes #124
2020-04-13 16:22:30 +02:00
Nicolas Werner
537cc966cc Use Item for transparent rectangles 2020-04-10 08:48:30 +02:00
Nicolas Werner
d68b24188f Size reply background by contents 2020-04-10 08:48:30 +02:00
Nicolas Werner
d2e495532d Make Filemessage background size by content 2020-04-10 08:48:30 +02:00
Nicolas Werner
6794b6472d Add a few missing palette colors 2020-04-08 23:10:00 +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
Nicolas Werner
0f1a352dd7 Make buttons hideable via setting, button contents can still be accessed via context menu 2020-03-10 00:30:45 +01:00
Nicolas Werner
a071f55c7b Fix images without size 2020-03-08 14:39:22 +01:00
DeepBlueV7.X
fc2f08a186
Merge pull request #137 from Nheko-Reborn/blurhash
Experimental Blurhash support
2020-03-05 21:07:18 +00:00
Nicolas Werner
b894ce4dcd Make blurhash provider async 2020-03-04 01:56:58 +01: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
11bffd5d90 Revert change from TextEdit to TextArea
It made some messages unreadabe. We loose proper highlight colors, but
we will have to do for now, until I can figure out, why the TextArea
doesn't work.
2020-02-27 16:48:23 +01:00
Nicolas Werner
b1eff0a37f Improve link theming 2020-02-27 00:34:58 +01:00
Nicolas Werner
4d79f8078e Don't let click on reply steal focus from the replied to elements 2020-02-26 23:43:54 +01:00
Nicolas Werner
505a8b5742 Only show reply button and option button on hover 2020-02-26 23:43:15 +01:00
Nicolas Werner
653ad0be97 Fix placeholder text being visible behind transparent avatars 2020-02-23 15:47:19 +01:00
Nicolas Werner
6bdc75d073 Reset user colors on theme change (in qml timeline) 2020-02-20 20:51:07 +01:00
Nicolas Werner
284fc8eaa8 Improve styling of emote messages 2020-02-09 01:24:24 +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
d330020fdd Improve styling a bit 2020-02-03 19:21:03 +01:00
Nicolas Werner
2053f67626 Close popup when clicking outside 2020-02-02 00:33:55 +01:00
Nicolas Werner
5f4efa9442 Speed up timeline by using global ToolTip and Menu 2020-02-02 00:27:51 +01:00
Nicolas Werner
735086371d Make page scrolling half height 2020-01-31 00:02:15 +01:00
Nicolas Werner
9b7c1cb7f9 Add scroll page shortcut 2020-01-30 23:57:39 +01:00
Nicolas Werner
c2d436942e Add explicit size to reply close button 2020-01-30 04:01:44 +01:00
Joseph Donofry
d205952fc8
Change tooltip palette settings for QML 2020-01-28 19:20:39 -05:00
Nicolas Werner
4951241d23 Simplify reply popup logic 2020-01-28 19:08:16 +01:00
Nicolas Werner
c2e0aee193 Improve styling of reply popup 2020-01-28 17:16:49 +01:00
Nicolas Werner
3319e0ec20 Fix resize loop of images in reply popup 2020-01-28 17:08:49 +01:00
Joseph Donofry
2b8b04a04b
Add initial QML Reply Popup 2020-01-27 23:28:11 -05: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
84ac122c48 PixelAlign timeline view 2020-01-21 22:22:25 +01:00
Nicolas Werner
fcc7c0ce5b Account for spacing when checking for bottom message for read status 2020-01-21 20:46:12 +01:00
Nicolas Werner
c95f4d8276 Fix colors in typing display, when username contains emoji 2020-01-21 20:41:09 +01:00
Nicolas Werner
fe912240bc Move typing display to qml 2020-01-17 01:25:14 +01:00
Nicolas Werner
69ce94d1bd Reduce memory usage and make room switching quicker
May make scrolling more laggy or jumpy.
2020-01-14 22:37:23 +01:00
Nicolas Werner
4eb0e11740 Try to match old theme better 2020-01-14 20:44:11 +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
01bd9f659d Adapt play buttons to theme and remove accidental message bg 2020-01-06 18:29:08 +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
a73ed771fa Make images always fit the timeline 2019-12-13 02:16:12 +01:00
Nicolas Werner
e98a61fea6 Show topic and name changes in timeline 2019-12-10 14:46:52 +01:00
Nicolas Werner
dee49508de Simplify scroll logic 2019-12-08 01:26:00 +01:00
Nicolas Werner
8c44c5e2d0 Change scroll behaviour of timeline
This requires Qt 5.9 (to calculate overshoot).
The default scroll behaviour of list views has far too much inertia.
This should make scrolling feel more like scrolling the other scroll
areas of nheko.
2019-12-08 00:54:28 +01:00
Nicolas Werner
05aa7f948a Try to fix binding loop warning 2019-12-07 15:00:06 +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
85aae9408b Wrap text in pre tags 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
a3fc944967 Fix links opening user dialog and in browser 2019-11-23 20:06:16 +01:00
Nicolas Werner
0cec167339 Fix infinite item instantiating loop by using height instead of contentHeight 2019-11-23 20:06:16 +01:00
Nicolas Werner
2bfb885b47 optionally use QQuickWidget and replace ColorOverlay -> colorImageProvider 2019-11-23 20:06:15 +01:00
Nicolas Werner
1268e9f11c Make replies format nicer
Also lays a bit of groundwork for better reply rendering
2019-11-23 20:06:15 +01:00
Nicolas Werner
88dc72df4f Enable link handling 2019-11-23 20:06:15 +01:00
Nicolas Werner
993926e189 Make user clickable and improve button cursor look 2019-11-23 20:06:15 +01:00
Nicolas Werner
4f7a45a0a6 Improve avatar look and layouting
Thanks to red_sky for the feedback!
2019-11-23 20:06:15 +01:00
Nicolas Werner
2279484697 Remove unused import 2019-11-23 20:06:15 +01:00
Nicolas Werner
3c9ddc2afb break height binding loop 2019-11-23 20:06:15 +01:00
Nicolas Werner
2055c75f8b Organize qml files a bit 2019-11-23 20:06:15 +01:00
Nicolas Werner
3d6f502bcc Incubate delegates asynchronously 2019-11-23 20:06:15 +01:00
Nicolas Werner
c8f97216fa Small fixes to delegate chooser implementation 2019-11-23 20:06:15 +01:00
Nicolas Werner
c37495fae2 Use a basic implementation of a DelegateChooser for compat with older Qt
The interface is taken from Qt/KDE, but the implementation is different,
because the Qt implementation depends on some Qt internals.
2019-11-23 20:06:15 +01:00
Nicolas Werner
cff46d97a8 Add native themeing to QML (where possible) 2019-11-23 20:06:15 +01:00
Nicolas Werner
a83ae7e95f Fix section layout issues and pagination issues
Pagination could get stuck, if the messages request failed.
Section height seemes to have been calculated to late, which would make
some section overlap the next message in some cases. Fix that by doing
the height calculation manually.
2019-11-23 20:06:15 +01:00
Nicolas Werner
0fd2199112 Load content if no scrollbar is needed 2019-11-23 20:06:15 +01:00
Nicolas Werner
8ebef4eed2 Size images/videos by timeline width 2019-11-23 20:06:15 +01:00
Nicolas Werner
d90038cf20 Misc layout fixes 2019-11-23 20:06:15 +01:00
Nicolas Werner
b9076c5c4d Try out DelegateChooser
requires Qt5.12+
2019-11-23 20:06:15 +01:00
Nicolas Werner
e828d9ed7b Disable autoplayback again 2019-11-23 20:06:15 +01:00
Nicolas Werner
489165d579 Lower requirement on QtQuick.Layouts version 2019-11-23 20:06:15 +01:00
Nicolas Werner
e196450428 Use QtQuick.Controls compatible with Qt 5.8 2019-11-23 20:06:15 +01:00
Nicolas Werner
425d534e22 Enable Sticker and Emote messages 2019-11-23 20:06:15 +01:00
Nicolas Werner
67d255a2de Add basic video messages
Size is fixed for now, otherwise the Video output ends up somewhere...
2019-11-23 20:06:15 +01:00
Nicolas Werner
8a511a7862 Add progress bar to audio messages 2019-11-23 20:06:15 +01:00
Nicolas Werner
ea98d7b2ae Add simple audio message widget 2019-11-23 20:06:15 +01:00
Nicolas Werner
a8166462ad File messages (qml) 2019-11-23 20:06:15 +01:00
Nicolas Werner
aee29c6ed5 Reenable redactions 2019-11-23 20:06:15 +01:00
Nicolas Werner
e2d733a01a Restore saving of media 2019-11-23 20:06:14 +01:00
Nicolas Werner
9b18440b4f Reenable ImageOverlay 2019-11-23 20:06:14 +01:00
Nicolas Werner
82091999c4 Add lock to encrypted messages 2019-11-23 20:06:14 +01:00
Nicolas Werner
c8315d792b Make avatar in timeline smaller 2019-11-23 20:06:14 +01:00
Nicolas Werner
6c7e6b0e86 Fix read indicator 2019-11-23 20:06:14 +01:00
Nicolas Werner
d34067a257 Enable read receipts action and sync read receipts from cache 2019-11-23 20:06:14 +01:00
Nicolas Werner
240b3a566b Add send/received indicator 2019-11-23 20:06:14 +01:00
Nicolas Werner
5200db17e9 Implement basic placeholder and disable unimplemented event types 2019-11-23 20:06:14 +01:00
Nicolas Werner
d1fffd6617 Implement simple scroll state handling 2019-11-23 20:06:14 +01:00
Nicolas Werner
62d0cd74da Implement replies in qml timeline 2019-11-23 20:06:14 +01:00
Nicolas Werner
a1c97fc8d6 Show redactions in qml timeline 2019-11-23 20:06:14 +01:00
Nicolas Werner
7aca8a9430 Reenable view raw message 2019-11-23 20:06:14 +01:00
Nicolas Werner
86f4119a05 Implement basic ImageMessages in qml timeline
I suck at sizing so the images in the message are currently hardcoded to
300 pixels in width...
2019-11-23 20:06:14 +01:00
Nicolas Werner
ebeb1eb772 Implement avatars in qml timeline 2019-11-23 20:06:14 +01:00
Nicolas Werner
7947ba57cc Make reply and options buttons smaller 2019-11-23 20:06:14 +01:00
Nicolas Werner
8727831de7 Fix QML emojis 2019-11-23 20:06:14 +01:00
Nicolas Werner
bbbd5df75f Use system colors for now 2019-11-23 20:06:14 +01:00
Nicolas Werner
34f5400e99 Implement TextMessage delegate
Text selection over multiple items doesn't work yet
2019-11-23 20:06:14 +01:00
Nicolas Werner
56e27ced25 Format date (close to) the old way in qml timeline 2019-11-23 20:06:14 +01:00
Nicolas Werner
ccedbde38b Add avatar placeholder and scrollbar to qml timeline 2019-11-23 20:06:14 +01:00
Nicolas Werner
2dd636456c Add basic sections and button placeholders to qml timeline 2019-11-23 20:06:14 +01:00
Nicolas Werner
699fd7b38e Implement loading of history, when timeline is displayed 2019-11-23 20:06:14 +01:00
Nicolas Werner
47fbfd3f44 Add items to timline 2019-11-23 20:06:14 +01:00
Nicolas Werner
8b5c7b2f2f Add placeholder timeline model 2019-11-23 20:06:14 +01:00
Nicolas Werner
8e611abe87 Replace timeline with empty qml view 2019-11-23 20:06:14 +01:00