Commit graph

211 commits

Author SHA1 Message Date
John Gibbon
fdb8cc5852 replace variant with var
https://doc.qt.io/archives/qt-5.6/qtquick-performance.html
In general, "property var" should be considered to be superior to "property variant" for every use-case from QtQuick 2.0 and newer (note that "property variant" is marked as obsolete), as it allows a true JavaScript reference to be stored (which can reduce the number of conversions required in certain expressions).
2020-11-05 23:23:37 +01:00
John Gibbon
37bede461b differentiate between simple/normal messages 2020-11-05 14:05:33 +01:00
Sebastian Wolf
6d3b3464bf Experiment a bit with opening new chats 2020-11-05 00:02:27 +01:00
John Gibbon
02a4b057d6 delay viewMessage calls; animate changes 2020-11-04 12:26:57 +01:00
Sebastian Wolf
8e46661d78 Start chat from avatar or user name 2020-11-03 22:32:36 +01:00
Sebastian Wolf
fd74da2408 Restore web page preview 2020-11-03 08:18:46 +01:00
Sebastian Wolf
1b345a6654 Add a tap-to-change date format for messages, fixes #47 2020-11-02 23:42:23 +01:00
John Gibbon
5903fbc4da Set initial scroll position for ChatPage
Fixes #1
2020-11-02 20:54:18 +01:00
Sebastian Wolf
cccb48ced5
Merge pull request #119 from jgibbon/feature/qml-import-versions
clean up qml imports
2020-11-01 19:37:49 +01:00
Sebastian Wolf
8e97d19a02 Update Copy-to-Clipboard functionality & README 2020-11-01 19:20:21 +01:00
Sebastian Wolf
e26cd3d9d3
Merge branch 'master' into clipboard 2020-11-01 19:12:52 +01:00
Sebastian Wolf
30decc8f84 Make document picker work again, fix image picker 2020-11-01 17:54:00 +01:00
John Gibbon
3f454711cf remove some unused imports 2020-10-31 21:09:59 +01:00
John Gibbon
f4d0a4800e QtMultimedia 5.6 2020-10-31 20:50:32 +01:00
John Gibbon
2cd4012b6a QtQuick 2.6 2020-10-31 20:49:03 +01:00
John Gibbon
fb5cf0d382 Remorse.itemAction; content Loader height preset 2020-10-31 20:02:18 +01:00
Christian Stemmle
a9fe6d51d2 Add context menu item: copy message to clipboard 2020-10-31 15:23:58 +01:00
John Gibbon
1fa7192728 Reduce ChatPage.qml jit compile time
First of all: Take all measurements I mention with a grain of salt – all of them are rough and not necessarily measured more than a few times. All times were measured on an Xperia X run via SDK.

Visiting a chat page can take a long time, especially before the qml is cached by the engine.
When opening it for the first time after application launch, it sometimes takes >1000ms from onClicked (OverviewPage) to Component.OnCompleted (Chatpage).
Subsequent activations take roughly 470-480ms.

With these changes, I was able to reduce these times to ~450ms for the first, ~100ms for subsequent activations of the ChatPage on my test device.

Things changed:
- The components for displaying extra content to a message are (mostly) gone and replaced by a single Loader. This Loader does not use sourceComponent to trade the initial compilation boost for a neglegible bit of runtime penalty.
- Connections were consolidated
- I was surprised how costly the inclusion of the RemorseItem was (compiling ~75ms, initializing up to ~20ms for every delegate). So I traded a bit for a compromise. deleteMessageRemorseItem is now defined on the appWindow level, where it gets a bit mitigated by the animations at application start. Also, only one deletion at a time is now possible. We can easily revert this change, but I thought it worthwhile despite its drawbacks.
- profileThumbnailComponent is now defined directly as sourceComponent, removing the need for its id. Probably didn't do anything.
- InReplyToRow had width: parent.width, so I removed horizontalCenter. Also probably didn't change compilation time at all.
- Another compromise I was willing to take – your opinion may differ: The PickerPages took ages (~200ms) to just parse/compile inside those Components, so I replaced them with the "string notation" of pageStack.push. Drawback: The first time a picker gets activated, you'll see how slow it is. Subsequent activations aren't that bad – also for the other pickers.
2020-10-30 20:37:25 +01:00
Sebastian Wolf
3402fddaa6
Merge branch 'master' into feature/use-svgs 2020-10-26 22:17:13 +01:00
John Gibbon
d38490fb09 use svg icons
Closes #102.

Doesn't use Shader/HighlightImage for background/placeholder, since that neither matched the previous look nor meet my visual expectations at all. I created both previously available color variations as svg accordingly.
Implementation of the background images has been outsourced to a dedicated qml file to reduce duplication and ensure the same layout. Padding is now "medium" everywhere (stickers had none, audio had "small").

For the Icons, some (Highlight-)Image+MouseArea combinations have been changed to IconButton.
Regarding videos, I'm not actually sure if the missing "highlight" on the fullscreen icon was intentional. An issue with videos possibly having the same color as the icon remains basically the same. Nonetheless, if this isn't desired, I'll revert to just using the white image.

The sticker icon actually does look a bit differently now – it's a bit smaller. I've redrawn it from scratch but mostly kept the dimensions of icon-m-other (which doesn't look good when zoomed in, btw). Perhaps I actually did made a mistake drawing the previous one. Either way, I think it fits well enough.

The notification icon remains png, but I managed to reduce its file size by ~60% without visibly impacting it much imho.

This may be the longest commit message I've ever written.
2020-10-26 15:15:53 +01:00
John Gibbon
c7843919a7 hide poll IconButton if not applicable 2020-10-26 10:24:50 +01:00
John Gibbon
924ff9deda implement polls 2020-10-23 10:29:56 +02:00
John Gibbon
6970dc3625 implement "mark all messages as read" MenuItem
contributes to #70 (doesn't mark anything as unread, though, and does not use toggleChatIsMarkedAsUnread at all)
2020-10-19 21:08:32 +02:00
Sebastian J. Wolf
91ae3651ef Change license header to reflect number of contributions 2020-10-19 19:34:47 +02:00
John Gibbon
74a732a5b6 implement chat info page
includes some basic group administration features
2020-10-19 12:48:55 +02:00
Sebastian J. Wolf
dba973b522 Introduce explicit clear button for in-reply-to and edit message, fixes #69 2020-10-18 21:54:15 +02:00
Sebastian J. Wolf
a78f60f974 Search for emojis with :<keyword> 2020-10-18 18:57:01 +02:00
Sebastian J. Wolf
7d84fcb3bf Change logo/icon - thanks to @iamnomeutente 2020-10-16 23:00:08 +02:00
Sebastian J. Wolf
cb9ae27bef Some post-sticker cleanup... 2020-10-16 00:02:58 +02:00
Sebastian J. Wolf
f9221fe95e Now the sticker picker looks much better... 2020-10-15 23:43:55 +02:00
Sebastian J. Wolf
537725566b Supporting stickers is quite some work... :/ 2020-10-14 23:25:56 +02:00
Sebastian J. Wolf
bfba8acc2d Web page preview changes height a little more dynamically 2020-10-13 21:37:06 +02:00
Sebastian J. Wolf
256244a08e Some additional preparations to send stickers 2020-10-12 22:44:21 +02:00
Sebastian J. Wolf
d3295bc49a Make some space for lazy-loaded elements, part 2 2020-10-11 23:11:37 +02:00
Sebastian J. Wolf
67669cf63f Make some space for lazy-loaded elements, part 1 2020-10-11 22:02:30 +02:00
Slava Monich
f4c84daebf Show stickers as stickers when showStickersAsImages is off 2020-10-11 00:39:22 +03:00
Sebastian Wolf
03208e47f8
Merge pull request #58 from monich/self-delete
Allow to delete messages from your own private chat
2020-10-07 22:19:05 +02:00
Sebastian J. Wolf
c0269b5502 Display information for forwarded messages 2020-10-07 22:17:44 +02:00
Slava Monich
f342b47e38 Allow to delete messages from your own private chat
They have "can_be_deleted_for_all_users": false and yet you can delete
those because you are the only one who has access to your own private
chat.
2020-10-07 02:27:54 +03:00
Slava Monich
caecdb0f56 Moved app settings to a separate object 2020-10-06 04:40:39 +03:00
Sebastian J. Wolf
12119c38bc Add sticker icon 2020-10-04 15:09:06 +02:00
Sebastian J. Wolf
bfe3084d2e Differentiate text between other people and user 2020-09-30 00:09:51 +02:00
Sebastian J. Wolf
97e72bac9b Introduce upload status bar 2020-09-29 23:37:56 +02:00
Sebastian J. Wolf
f19b3ae4cb Add support for venues 2020-09-29 21:58:14 +02:00
Sebastian Wolf
d92ea9fbae
Merge pull request #38 from jgibbon/feature/messageLocation
Handle display of messageLocation
2020-09-29 21:12:29 +02:00
Sebastian J. Wolf
f03da2127d Handle enter key in a more relaxed way 2020-09-29 21:00:23 +02:00
John Gibbon
75ef6e70a4 update live locations 2020-09-29 15:50:21 +02:00
Sebastian J. Wolf
35e9373f49 Uploading pictures, videos and documents work, status bar still missing 2020-09-28 23:08:22 +02:00
John Gibbon
b58e33b2a4 Handle display of messageLocation
resolves #36
2020-09-28 22:59:47 +02:00
Sebastian J. Wolf
30f208d9fb Initial steps to upload videos and documents 2020-09-27 23:24:22 +02:00
Sebastian J. Wolf
ad1cec1dfb Enable image attachments :) 2020-09-27 13:49:06 +02:00
Sebastian J. Wolf
d2f5031485 Bring back replies, accidentially deleted before... 2020-09-24 22:27:17 +02:00
John Gibbon
a48148cf99 CoverPage change for large numbers of messages 2020-09-24 09:55:05 +02:00
Sebastian J. Wolf
e222ab115d Prepare message attachments 2020-09-23 23:41:17 +02:00
Sebastian J. Wolf
b0d35aac6c Limit height of message input field 2020-09-23 21:38:20 +02:00
Sebastian J. Wolf
0e1169e7f4 Some delay for lazy loading... 2020-09-22 22:46:48 +02:00
Sebastian J. Wolf
2704e29d41 Avoid fast and immediate re-reload of older messages 2020-09-22 21:05:24 +02:00
Sebastian J. Wolf
fcc46fbc94 Auto-scroll to message if user sent it 2020-09-22 20:32:35 +02:00
Sebastian J. Wolf
ea123b08ea Put an action behind new message count circle, fixes #13 2020-09-22 19:26:49 +02:00
Sebastian J. Wolf
266dd12570 Lazy-load profile thumbnail 2020-09-21 23:07:30 +02:00
Sebastian J. Wolf
c5dade71b0 Introduce some lazy loading 2020-09-21 22:10:03 +02:00
Sebastian J. Wolf
32fce5b965 Try to tweak updates and list positioning 2020-09-20 14:26:09 +02:00
Sebastian J. Wolf
64b6c8607e Deleting messages seems to work... 2020-09-20 00:13:42 +02:00
Sebastian J. Wolf
b78a0f8731 Edit message seems to work 2020-09-19 20:33:51 +02:00
Sebastian J. Wolf
c2492efa0f Real estate adjustments for chat page, fix unread indicator bug 2020-09-19 18:49:11 +02:00
Sebastian J. Wolf
b625ce84ef Prepare edit message 2020-09-18 23:43:23 +02:00
Sebastian J. Wolf
3acdf46439 React properly on show/hide keyboard 2020-09-18 22:55:59 +02:00
Sebastian J. Wolf
4d573f1f43 Option to send message by pressing enter 2020-09-16 22:04:02 +02:00
Sebastian J. Wolf
b5f39f78c0 Mark all messages as read in small chats 2020-09-16 21:12:39 +02:00
Sebastian J. Wolf
9070caa2a3 Mute/unmute chats both from list and in chat 2020-09-16 20:43:36 +02:00
Sebastian J. Wolf
fbb1fbcf90 Highlight unread messages in chat 2020-09-15 22:47:39 +02:00
Sebastian J. Wolf
f9c027981d Position message vertically centered 2020-09-15 21:27:16 +02:00
Sebastian J. Wolf
8f3f7cfa9b New chat positioning method: Faster, but less exact 2020-09-13 23:25:48 +02:00
Sebastian J. Wolf
386c4c871f More space for message input field 2020-09-13 22:21:27 +02:00
Sebastian J. Wolf
d35d15a7e0 Display read/unread checkmark correctly after incremental update 2020-09-01 22:37:48 +02:00
Sebastian J. Wolf
a04332d4b6 Fix chat positioning and sent/read indicator 2020-08-31 21:51:52 +02:00
Sebastian J. Wolf
cff06cc32d Try to get pending message state into the chat 2020-08-30 23:52:22 +02:00
Sebastian J. Wolf
a131aa739b Add read/unread info to own messages 2020-08-30 19:04:16 +02:00
Sebastian J. Wolf
0849fadadd Translations adjustments, trigger history reload earlier 2020-08-30 15:04:15 +02:00
Sebastian J. Wolf
a6768bc9dd Hide new message bar in channels 2020-08-30 11:12:13 +02:00
Sebastian J. Wolf
138db9e78e Add German translation, some small fixes 2020-08-29 23:59:29 +02:00
Sebastian J. Wolf
5fcca3c405 Try it again with loading more messages automatically 2020-08-29 23:06:14 +02:00
Sebastian J. Wolf
5c16a13b25 Add display of unread message count to chat 2020-08-29 21:39:57 +02:00
Sebastian J. Wolf
cca241ed9a Fix infinite loading for small amount of messages 2020-08-29 18:28:57 +02:00
Sebastian J. Wolf
63833b3c5c A little bit of lazy loading for the chat view... 2020-08-29 18:04:23 +02:00
Sebastian J. Wolf
a527009f86 Don't do stuff which is not needed ;) 2020-08-29 16:58:48 +02:00
Sebastian J. Wolf
6c269780b2 Add web page preview 2020-08-29 15:51:48 +02:00
Sebastian J. Wolf
b447d2bd24 Make reply-to-message work again 2020-08-29 13:38:28 +02:00
Sebastian J. Wolf
a24bf81355 Some work on reply management, still some work to do... 2020-08-29 11:22:18 +02:00
Sebastian J. Wolf
402c0ed671 Add possibility to send replies 2020-08-28 17:40:25 +02:00
Sebastian J. Wolf
ecf4c859e8 Add support for documents 2020-08-28 16:18:33 +02:00
Sebastian J. Wolf
0b77f1527d Add support for voice notes 2020-08-28 14:14:05 +02:00
Sebastian J. Wolf
b55be4289c Add support for animated GIFs 2020-08-28 13:02:54 +02:00
Sebastian J. Wolf
50a67bb037 Add fullscreen video page 2020-08-28 11:43:51 +02:00
Sebastian J. Wolf
c741a157b7 Introduce video preview 2020-08-28 10:41:18 +02:00
Sebastian J. Wolf
8a3b07e537 Load older chat messages if needed 2020-08-26 22:52:06 +02:00
Sebastian J. Wolf
abdf9072e7 Display stickers (use thumbnails for animated ones) 2020-08-26 10:46:43 +02:00
Sebastian J. Wolf
a889c95899 Display original message excerpt in replies 2020-08-25 16:42:46 +02:00
Sebastian J. Wolf
b899d03660 Display images in messages and introduce image page 2020-08-24 23:02:08 +02:00
Sebastian J. Wolf
a4318376e5 Support almost all text formatting options 2020-08-24 16:30:19 +02:00
Sebastian J. Wolf
2ee8eceb18 Initial message formatting (bold only so far ;)) 2020-08-24 15:27:44 +02:00
Sebastian J. Wolf
1b18a78efc Display profile pictures and names in groups 2020-08-23 19:17:30 +02:00
Sebastian J. Wolf
63966f052a React properly if no messages are there... 2020-08-23 17:24:05 +02:00
Sebastian J. Wolf
cc266aa58b Sending text messages works... :D 2020-08-23 00:17:34 +02:00
Sebastian J. Wolf
c472e70775 React to new messages in chat 2020-08-22 23:49:02 +02:00
Sebastian J. Wolf
59a7c8381d Mark display messages as read 2020-08-22 23:05:45 +02:00
Sebastian J. Wolf
ca7abb2a2f First chat message list :) 2020-08-22 21:43:20 +02:00
Sebastian J. Wolf
2750764de9 Skeleton for chat model 2020-08-22 17:30:02 +02:00
Sebastian J. Wolf
2f5d725f7b Display chat status (members/online) 2020-08-21 18:03:51 +02:00
Sebastian J. Wolf
b42a8e4181 Opening and closing chat officially on entering/leaving page 2020-08-21 14:47:08 +02:00
Sebastian J. Wolf
a7b8dc54bd Initial skeleton for chat page 2020-08-21 14:26:56 +02:00