Commit graph

1439 commits

Author SHA1 Message Date
CH Chethan Reddy
1633650303 Some more changes
- remove unnecessary field sender in userprofile.qml
    - cover user facing string with qsTr to get picked by translations
    - add spacing and fix theming issue
    - increase and add color to username
    - change back to QVector from QLinkedList cause I have mistaken
    better time complexity to give better benchmark

red
2020-07-30 22:10:27 +05:30
CH Chethan Reddy
d49ab15656 Some Improvements
- DeviceVerificationList change to LinkedList to improve time
    complexity while deleting
    - Downgrade the flow to not use key.verification.done and
    key.verification.ready
2020-07-30 22:10:27 +05:30
CH Chethan Reddy
ce013e67a6 Add some more slots and mac 2020-07-30 22:10:27 +05:30
CH Chethan Reddy
67367d0004 Shared secret with decimal and emoji works! 2020-07-30 22:10:27 +05:30
CH Chethan Reddy
41b6ef0c32 Add DeviceVerificationList to keep track of all flows and Popup on
recieving start or request
2020-07-30 22:10:27 +05:30
Chethan2k1
1eb162cb6f Handle Device Verification related to_device messages 2020-07-30 22:10:27 +05:30
Chethan2k1
cd5dd0e39b Add SAS Method choice and Add send_to_device API call 2020-07-30 22:10:27 +05:30
Chethan2k1
b628f485ff Tweak UI for device verification and Add more slots 2020-07-30 22:10:27 +05:30
CH Chethan Reddy
f9c0f4dd54 Add C++ Model for DeviceList 2020-07-30 22:10:27 +05:30
Chethan2k1
a54a973ad6 Adding DeviceList for userprofile 2020-07-30 22:10:27 +05:30
CH Chethan Reddy
64f204d984 Rewrite UserProfile in qml 2020-07-30 22:10:27 +05:30
Nicolas Werner
707248fea3 Add DeviceVerificationFlow dummy and verification test button 2020-07-30 22:10:27 +05:30
Nicolas Werner
b1362ca69f Use label in device verification dialogs (for proper theming) 2020-07-30 22:10:27 +05:30
Nicolas Werner
fed0463e57 Make emojis a bit smaller 2020-07-30 22:10:27 +05:30
Nicolas Werner
480c4bc8f5 Set proper emoji font for device verification 2020-07-30 22:10:27 +05:30
Nicolas Werner
2088053d26 Add DeviceVerificationFlow dummy and verification test button 2020-07-30 22:10:27 +05:30
Nicolas Werner
488cc5e73b First design iteration of device verification dialogs 2020-07-30 22:10:27 +05:30
Nicolas Werner
8bf26917ad Make long press menu actually work 2020-07-26 02:06:38 +02:00
Nicolas Werner
6f557c19a1 Optimize scrolling a little bit 2020-07-25 23:10:02 +02:00
Nicolas Werner
cbb4356b19 Fix more non integer heights 2020-07-25 22:10:30 +02:00
Nicolas Werner
fdcf91f5eb Fix binding loop and non integer text height 2020-07-25 22:08:02 +02:00
trilene
aec24efbe2 Specify call type on timeline 2020-07-24 13:30:12 -04: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
Lorem
e86c1cc79f Make dateBubble's text vertically aligned to vertical center 2020-07-19 12:22:47 +05:30
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
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
fe12e63c7c Fix parent undefined warning 2020-07-08 02:02:48 +02:00
Nicolas Werner
cded494cb5 Try to make text rendering in qml sharper 2020-06-19 19:34:03 +02:00
Nicolas Werner
dde28c627b Lower qt version used for emoji picker and scroll helper 2020-06-17 21:34:02 +02:00
Nicolas Werner
5c8ee99e9a Remove online indicator for offline users 2020-06-17 20:50:39 +02:00
Joseph Donofry
7afb164244
Merge remote-tracking branch 'origin/master' into presence 2020-06-11 22:27:30 -04:00
Joseph Donofry
5e355c36fd
Fix build issue on some versions of clang 2020-06-10 22:34:14 -04:00
Joseph Donofry
39b240e25a
Remove unused QML file 2020-06-09 21:31:19 -04:00
Joseph Donofry
0078c72a37
Remove signals in favor of direct function calls 2020-06-09 21:28:15 -04:00
Joseph Donofry
75cdc1eee2
Remove duplicate search icons 2020-06-09 21:21:30 -04:00
Joseph Donofry
07ffd9e7e9
Fix UserSettings in QML 2020-06-09 21:05:27 -04:00
Joseph Donofry
6bb73f84a3
Merge master and fix conflicts 2020-06-09 20:51:36 -04:00
Joseph Donofry
fa34749279
Minor adjustments to emoji picker 2020-06-09 20:47:21 -04:00
Nicolas Werner
96f4169be9 Show presence and set custom status messages 2020-06-08 01:59:05 +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
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
a75d7f00bc Fix reactions binding loop 2020-05-16 22:19:37 +02:00
Joseph Donofry
f4ea0b215d
Attach emoji picker picked to reaction sender 2020-05-16 15:52:51 -04:00
Joseph Donofry
a5778bdf40
Merge remote-tracking branch 'origin/master' into reactions 2020-05-16 15:10:49 -04:00
lkito
2c21f6e3fa Implemented optional message body highlighting feature. 2020-05-16 17:15:43 +04: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
Joseph Donofry
ff7468e6d5
Update emoji picker and translations 2020-05-13 20:19:15 -04:00
Nicolas Werner
2c3d09edbb Try to smooth scrolling a bit by increasing cacheBuffer 2020-05-13 23:55:02 +02:00
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