Commit Graph

1134 Commits

Author SHA1 Message Date
Nicolas Werner d6981355d3 Align scrolling to pixels manually 2020-05-13 23:33:00 +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
Nicolas Werner 004d10bfee Clip replies by default
In the future we should probably add a gradient when clipped...
2020-05-13 01:09:45 +02:00
Joseph Donofry 991fa4ac98
Change redaction color that accidentally got committed 2020-05-07 22:22:41 -04:00
Joseph Donofry 5b9611dcd3
Merge branch 'master' into reactions 2020-05-07 22:21:06 -04:00
Joseph Donofry cc92161339
Fix redaction color change that accidentally got committed 2020-05-07 22:20:25 -04:00
Joseph Donofry a1661f7006
merge master into reactions 2020-05-07 20:53:24 -04:00
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