Commit graph

257 commits

Author SHA1 Message Date
Sebastian Wolf
5d3805759a Small UI fixes, error handling for joining chats 2020-11-09 23:22:24 +01:00
John Gibbon
bb90fe0c85 Merge remote-tracking branch 'upstream/master' into feature/qml-runtime-optimizations 2020-11-08 21:17:42 +01:00
Sebastian Wolf
89e0576adc Support open-with from external sources (e.g. web links) 2020-11-08 21:13:04 +01:00
John Gibbon
ac9d761742 add sourceSize to ProfileThumbnail 2020-11-08 20:37:52 +01:00
John Gibbon
68e2dab715 set some properties readonly 2020-11-08 20:37:17 +01:00
John Gibbon
c3ccaa069d qml runtime optimizations 2020-11-08 17:30:04 +01:00
Slava Monich
9e8038b1b6 Added TDLibFile and optimized ProfileThumbnail
Profile images seem to be loading significantly faster after
moving file fetching logic to the native code and removing the
artificial delay.

TDLibFile is a generic object which can hopefully be used
elsewhere as an efficient replacement for JavaScript.
2020-11-08 06:08:32 +02:00
Sebastian Wolf
9bb24b4862 Joining/leaving chats seems to work... 2020-11-07 20:29:44 +01:00
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
7d28f72e98 add some message type descriptions 2020-11-05 14:06:41 +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
84bfb003b0 Prepare to join/see chats by link 2020-11-03 23:39:09 +01:00
Sebastian Wolf
8e46661d78 Start chat from avatar or user name 2020-11-03 22:32:36 +01:00
Sebastian Wolf
d709473ae4 Merge branch 'master' of https://github.com/Wunderfitz/harbour-fernschreiber 2020-11-03 22:21:21 +01:00
Sebastian Wolf
bbd8e3eabf Start chat from @-mention 2020-11-03 22:21:01 +01:00
Sebastian Wolf
56c5fe2d36
Merge pull request #128 from jgibbon/bugfix/entity-sort
entity sort offset+length
2020-11-03 20:46:38 +01:00
Sebastian Wolf
fd74da2408 Restore web page preview 2020-11-03 08:18:46 +01:00
John Gibbon
7240bbbf44 entity sort offset+length 2020-11-03 00:03:00 +01:00
Sebastian Wolf
1b345a6654 Add a tap-to-change date format for messages, fixes #47 2020-11-02 23:42:23 +01:00
Sebastian Wolf
179ef885b5 Chat Information Page: More tweaks 2020-11-02 23:19:50 +01:00
Sebastian Wolf
5ee71dda29 Chat Information Page: Improvements for channels 2020-11-02 22:51:12 +01:00
John Gibbon
5903fbc4da Set initial scroll position for ChatPage
Fixes #1
2020-11-02 20:54:18 +01:00
Sebastian Wolf
f91079ca43 Try to fix HTML entity replacements for QML elements with styled text 2020-11-01 22:55:43 +01:00
Sebastian Wolf
6eed093e7b
Merge pull request #121 from monich/dbus-open
Don't animate ChatPage transition when notification is tapped
2020-11-01 19:52:36 +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
Slava Monich
96dcbdde22 Don't animate ChatPage transition when notification is tapped
And simplified unrolling of the page stack.
2020-11-01 20:36:59 +02:00
Sebastian Wolf
11a1018ad9
Merge pull request #118 from jgibbon/feature/copy-chat-invite-link
Remove clipboard workaround
2020-11-01 19:28:03 +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
70dc3c8571 Remove clipboard workaround
Turns out, I somehow forgot about the Clipboard type while implementing the info page. Thanks @chstem
2020-10-31 20:40:54 +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
John Gibbon
c185ba1b42 add poll preview type output
as discussed in d45eb28daa
2020-10-30 19:07:06 +01:00
Sebastian Wolf
d45eb28daa Minor changes to poll display & translation adjustments 2020-10-29 22:39:43 +01:00
John Gibbon
894e9af0c0 Fix two issues in PollPreview
- The new emoji basePath workaround also works for TextSwitch content.
 - Checking which context menu entries get added for the poll preview didn't quite work nicely "OnCompleted".
2020-10-28 08:11:14 +01:00
John Gibbon
8c69e04e83 Fix emoji paths for chat information Items 2020-10-27 21:42:39 +01:00
Sebastian Wolf
3402fddaa6
Merge branch 'master' into feature/use-svgs 2020-10-26 22:17:13 +01:00
Sebastian Wolf
2a4325f4ed
Merge pull request #105 from monich/image-page
Tweaked ImagePage behavior
2020-10-26 21:55:32 +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
Slava Monich
79e06bd4c4 Tweaked ImagePage behavior
This should made reaction to a single tap more reliable and
flicking back easier.
2020-10-25 03:14:07 +03:00
John Gibbon
c4d67de8a5 streamline behaviours/animations 2020-10-24 19:32:21 +02: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
John Gibbon
214a6c780c Fix crash with no groups in common 2020-10-19 21:06:28 +02:00
Sebastian J. Wolf
98e2bea69f Prepare translation files for #87 2020-10-19 19:51:33 +02:00
Sebastian J. Wolf
91ae3651ef Change license header to reflect number of contributions 2020-10-19 19:34:47 +02:00
Sebastian Wolf
d20008bb4c
Merge branch 'master' into feature/chatInfoPage 2020-10-19 18:29:07 +02:00
carlosgonz
2f80cf0a5d
Update InitializationPage.qml 2020-10-19 10:02:34 -04:00
John Gibbon
74a732a5b6 implement chat info page
includes some basic group administration features
2020-10-19 12:48:55 +02:00
carlosgonz
3d04e7365b
Update InitializationPage.qml 2020-10-18 20:00:17 -04: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
Slava Monich
f86e60b4a2 Let context menu to appear when sticker is long-pressed
And don't load placeholder image too quickly.
2020-10-18 21:10:26 +03:00
Sebastian J. Wolf
a78f60f974 Search for emojis with :<keyword> 2020-10-18 18:57:01 +02:00
Sebastian J. Wolf
3410903afb Adjust text for notification settings & German translation 2020-10-18 17:46:08 +02:00
Slava Monich
f75e5a3f4b Added "Notification feedback" combo box 2020-10-18 18:02:44 +03:00
Sebastian J. Wolf
e578c6bef3 Use GridView for sticker picker 2020-10-18 16:29:34 +02:00
Sebastian Wolf
a9f7a10033
Merge pull request #79 from monich/about-icon
Adjusted app icon size on the about page (again)
2020-10-18 15:16:58 +02:00
Slava Monich
93e54b8ab4 Adjusted app icon size on the about page
It was still too large on a 4:3 tablet screen in landscape.
2020-10-18 01:56:11 +03:00
Slava Monich
9a4246e275 Tweaked InitializationPage UI
1. Only load app icon once
2. Removed come unused ids and attributes
3. EnterKey magic
4. Use FadeAnimation
2020-10-18 01:45:39 +03: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
d30a72e372 Merge branch 'master' of https://github.com/Wunderfitz/harbour-fernschreiber 2020-10-14 23:26:16 +02:00
Sebastian J. Wolf
537725566b Supporting stickers is quite some work... :/ 2020-10-14 23:25:56 +02:00
Slava Monich
8e54b898d7 Fixed the app icon size on the About page in landscape
It was ridiculously large.
2020-10-14 04:03:35 +03: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
Sebastian Wolf
3c073b4840
Merge pull request #61 from monich/image-only
Toggle "Image only" mode on tap
2020-10-11 18:34:12 +02:00
Slava Monich
f4c84daebf Show stickers as stickers when showStickersAsImages is off 2020-10-11 00:39:22 +03:00
Slava Monich
4e65375234 Added "Show stickers as images" checkbox 2020-10-11 00:39:22 +03:00
Slava Monich
2be36d10a1 Toggle "Image only" mode on tap 2020-10-10 23:13:44 +03:00
Sebastian J. Wolf
0dbc0e5887 Don't double-escape ampersand 2020-10-07 23:14:02 +02:00
Sebastian J. Wolf
d758648dc2 Document message caption is now shown, fixes #59 2020-10-07 22:59:00 +02: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
92a869f7db Re-introduce chatChanged as chat list update is no longer properly working after #40 2020-10-04 16:06:20 +02:00
Sebastian J. Wolf
12119c38bc Add sticker icon 2020-10-04 15:09:06 +02:00
Sebastian J. Wolf
3973cdf976 Include @monich's suggestions in #42 2020-10-04 13:36:30 +02:00
Sebastian Wolf
d79ecb8d4f
Merge branch 'master' into feature/userRegistration 2020-10-04 12:27:25 +02:00
Sebastian J. Wolf
79c77c426b Don't display 'unknown' for channels in chat list 2020-10-03 21:06:50 +02:00
Sebastian Wolf
b62078e380
Merge pull request #40 from monich/chatlist-roles
Expose more roles from ChatListModel
2020-10-03 20:50:00 +02:00
Sebastian J. Wolf
873c9b2669 Handle ampersands in messages correctly, fixes #43 2020-10-03 20:04:32 +02:00
Slava Monich
39ecc7a058 Expose more roles from ChatListModel
Roles can now be directly bound to individual UI elements.

Replaced per-delegate timestamp refresh timers with a single
one refreshing all timestamps with a single dataChanged signal.

Removed chatChanged signal from since it's no longer necessary.
2020-10-03 21:02:33 +03:00
John Gibbon
3149cb38cb handle empty chat list after registration
also translate some strings from b0d85840 to german
2020-10-01 13:20:43 +02:00
John Gibbon
6c1fc77f0c handle user registration 2020-10-01 12:51:43 +02:00
Sebastian J. Wolf
9eb396c9ca Fixes here and there... 2020-09-30 21:41:49 +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