Commit graph

285 commits

Author SHA1 Message Date
Sebastian Wolf
32f884e547
Merge pull request #327 from jgibbon/feature/messageContent_fileinfo_items
Add TDLibImage/TDLibThumbnail; rework Audio/VoiceNote/Document
2021-01-18 19:21:23 +01:00
John Gibbon
703931a5a1 Add TDLibImage/TDLibThumbnail; rework Audio/VoiceNote/Document
also, again, a quick Location fix before its real turn
2021-01-17 22:38:20 +01:00
jgibbon
55fefdd96d
Merge pull request #323 from jgibbon/feature/messageContent_refactor
Message content refactor
2021-01-17 22:08:08 +01:00
Slava Monich
14f73dbb48 Fixed QML runtime warning in ChatInformationTabItemMembersGroups
ChatInformationTabItemMembersGroups.qml:75:28: Unable to assign QString to QVariantMap
2021-01-17 21:37:47 +02:00
John Gibbon
921f58e8c0 Fix Game Layout 2021-01-16 00:40:02 +01:00
John Gibbon
935bcaeb85 Fix Locations 2021-01-16 00:40:02 +01:00
John Gibbon
e6748dbc18 Adapt to changed path 2021-01-16 00:40:02 +01:00
John Gibbon
aa7a1f28ce Use dedicated Files for message content 2021-01-16 00:40:02 +01:00
John Gibbon
282ab1d2b9 Prepare dedicated QML files for all supported message content types 2021-01-16 00:40:02 +01:00
Sebastian Wolf
2459aa70e0
Merge branch 'master' into feature/channel_simple_message_username 2021-01-15 22:41:37 +01:00
Sebastian Wolf
74d584fdcc
Merge pull request #318 from monich/can_get_members
Show channel members on chat information page
2021-01-15 21:52:06 +01:00
John Gibbon
c9ab840b97 Make inline bot name check case insensitive 2021-01-15 21:37:55 +01:00
John Gibbon
954986edee Merge branch 'master' into feature/inline_queries 2021-01-15 08:18:12 +01:00
John Gibbon
919eacdec7 Clean up GamePreview thumbnail properties 2021-01-14 10:40:02 +01:00
John Gibbon
2f11b6c67c Display Chat title in SimpleMessageDelegate if sender is chat
On overviewPage I found it sufficient being empty, since the title is directly above it, anyway. But in the channel itself it looked wrong without a user name.

The name link doesn't have a href – this would only be useful for edge cases like someone sharing a "changed title" message to another chat. I did not consider that relevant enough.
2021-01-14 10:22:23 +01:00
Slava Monich
08a95d4f07 Show channel members on chat information page
if can_get_members in supergroupFullInfo is true.
2021-01-14 01:38:23 +02:00
Slava Monich
a4dbc26e70 Handle message data change in ImagePreview
And use TDLibFile to load image in ImagePage
2021-01-13 04:19:16 +02:00
John Gibbon
37ad9441f2 Inline query cleanup; Fix ChatPage scrolling issue 2021-01-12 19:39:15 +01:00
John Gibbon
c031e56284 Reduce invalid inline requests + error messages 2021-01-11 10:19:00 +01:00
John Gibbon
fe6ba8ac0d Prevent int overflow for chat id by using string :( 2021-01-11 09:50:36 +01:00
John Gibbon
3473fb995c Fix imports for photo inline result 2021-01-11 09:28:07 +01:00
John Gibbon
1ce981c147 Implement inline queries (among others) 2021-01-10 22:20:05 +01:00
Sebastian Wolf
be2f08553b
Add button to copy document to Downloads folder 2021-01-10 20:26:29 +01:00
Slava Monich
b70a4427e0 Apply press effect to profile thumbnail in chat list 2021-01-10 04:25:02 +02:00
Sebastian Wolf
1523d62362
Chat List: Muted icon now always visible, fixes #156 2021-01-09 22:25:58 +01:00
Slava Monich
92655b4417 Update webPage photo id when message gets updated 2021-01-08 05:36:34 +02:00
Sebastian Wolf
e3370bf73e
Add chat list menu option to pin/unpin chat 2021-01-07 22:47:42 +01:00
Sebastian Wolf
7453c60052
Add sourceSize to pin icon 2021-01-07 21:52:26 +01:00
Sebastian Wolf
de51bbffc0
Harmonize chat attribute bubble sizes 2021-01-06 16:07:23 +01:00
Sebastian Wolf
cc65c694c0
Use highlightBackgroundColor consistently for all chat attributes 2021-01-06 14:01:55 +01:00
Sebastian Wolf
5ca6dd1ca0
Use dedicated pin icon, thanks to @jgibbon 2021-01-06 13:24:37 +01:00
Sebastian Wolf
7e6c871261
Make VideoPage work again 2021-01-06 12:58:16 +01:00
Sebastian Wolf
9299205379
Show pinned chat icon in list 2021-01-06 10:42:12 +01:00
Sebastian Wolf
e0b94a0487
One dedicated file per voice note recording 2021-01-04 22:03:04 +01:00
Sebastian Wolf
7c615b5cff
Merge remote-tracking branch 'origin/master' into voicenotes 2021-01-02 20:33:03 +01:00
Sebastian Wolf
be404d0e55
Put attachment row in a Flickable 2021-01-02 18:08:33 +01:00
Sebastian Wolf
5213084fb1
Sending voice notes seems to work... 2021-01-02 17:22:09 +01:00
Sebastian Wolf
d38f56b9fe
Recording Vorbis files works & connected to UI 2021-01-02 00:15:25 +01:00
John Gibbon
d3eac32216 Remove warnings about Slider maximumValue not > minimumValue 2021-01-01 21:13:14 +01:00
Sebastian Wolf
fd0d188030
Merge remote-tracking branch 'origin/master' into voicenotes 2021-01-01 15:03:22 +01:00
Sebastian Wolf
9662df3c74
Start with voice notes 2020-12-31 19:12:50 +01:00
Slava Monich
f9a824ca2c Apply opacity to picture and badge as a group
It matters when page is being dimmed
2020-12-31 17:30:55 +02:00
John Gibbon
753f322053 implement message drafts 2020-12-31 01:18:14 +01:00
Sebastian Wolf
232049422a
Add 'mark chat as read/unread' feature, fixes #240 2020-12-31 00:19:36 +01:00
Slava Monich
0cb19d833c Message API usage cleanup
1. Pass chat_id where appropriate
2. Pass message_id and chat_id (which are numbers) as numbers
3. Use pre-initialized QStrings more often
4. Don't pass numbers by const reference, it doesn't make sense
5. Removed some redundant const modifiers
2020-12-30 18:20:50 +02:00
Slava Monich
cd0eace631 Fixed invalid component reference in StickerPreview 2020-12-30 17:46:28 +02:00
Sebastian Wolf
7dfe7ddc3e
Change message bubble colors for light ambiences, fixes #239 2020-12-30 13:49:57 +01:00
Sebastian Wolf
b4b1eb4bc0
Merge remote-tracking branch 'origin/master' into searching 2020-12-29 16:33:40 +01:00
Sebastian Wolf
775a31cecb
Implement delete/add chat members properly, fixes #131 2020-12-29 16:32:39 +01:00
Sebastian Wolf
78a71cfbab
Merge remote-tracking branch 'origin/master' into searching 2020-12-28 22:16:59 +01:00
Sebastian Wolf
ef1f824cd8
Add download option to audio preview 2020-12-28 21:20:10 +01:00
Sebastian Wolf
225eb76899
Fix crash on incoming message deletions & minor other fixes 2020-12-28 14:35:27 +01:00
John Gibbon
d0f33969eb support basic bot messages (reply markup)
only inlineKeyboardButtonTypeCallback and inlineKeyboardButtonTypeUrl are implemented.
2020-12-27 00:01:59 +01:00
John Gibbon
653a35500c speed up overview page loading
contributes to #198
2020-12-25 23:22:11 +01:00
Sebastian Wolf
fe0b390a87
TDLib 1.7: Bring back pinned messages (nobody noticed so far?) 2020-12-25 22:38:13 +01:00
Sebastian Wolf
4e680a9a3f
Don't display empty in-reply-to section if message wasn't found 2020-12-25 15:33:53 +01:00
Sebastian Wolf
ff399a524c
Display group information for anonymous messages 2020-12-25 13:50:13 +01:00
Sebastian Wolf
d0ebbc7170
Bring proper link coloring in web page descriptions back 2020-12-25 12:31:32 +01:00
Slava Monich
d2d6fac778 Fixed Emoji image positioning in multiline StyledText
Combination of maximumLineCount and TruncationMode.Elide (or Fade)
breaks Emoji image alignment, pushing the image down. Explicitly
truncating the text fixes the problem, at expense of certain runtime
overhead.

Also, toggle full and truncated Web page preview on tap.
2020-12-24 05:45:27 +02:00
Sebastian Wolf
c10819b12e
Merge pull request #246 from monich/placeholderImage
Fixed invalid reference
2020-12-21 23:33:04 +01:00
Slava Monich
88b79236e7 Fixed invalid reference 2020-12-21 04:42:40 +02:00
Sebastian Wolf
335b8ed0c9 Merge latest changes (edit/reply) 2020-12-15 20:39:48 +01:00
Slava Monich
aee027219a Don't show Reply menu item if the message can't be replied to
Also moved the handling of the Edit action to the chat page where
it's actually being handled.
2020-12-15 20:19:06 +02:00
Sebastian Wolf
0d21174220 TDLib 1.7: MPEG4 thumbnails are too much, autostart animations 2020-12-08 19:56:29 +01:00
Sebastian Wolf
8e03b16243 Enable links in in-reply-to rows 2020-12-07 23:30:46 +01:00
Sebastian Wolf
6508c20a0d TDLib 1.7: Enable proper links in web previews 2020-12-07 22:46:25 +01:00
Sebastian Wolf
2cd86a95d9 TDLib 1.7: Video thumbnail is a 'file' not a 'video' anymore 2020-12-07 22:24:07 +01:00
Sebastian Wolf
44510901ac TDLib 1.7: Forward info - original sender ID remains unchanged 2020-12-07 22:13:51 +01:00
Sebastian Wolf
6e54988978 TDLib 1.7: Web page descriptions can be formatted now 2020-12-07 22:02:58 +01:00
Sebastian Wolf
63db26afc8 TDLib 1.7: Sticker IDs, message sender IDs 2020-12-07 21:43:09 +01:00
Slava Monich
b6c97c7f93 Optimized chat model a bit
1. Store and handle message ids as numbers rather than variants/strings
2. Incrementally update message id map
3. Expose additional roles and properties to avoid unnecessary lookups
2020-12-06 21:10:50 +02:00
Slava Monich
bd695d1a91 Fix occasional crashes on long-tapping poll items
The crash was happening when Repeater was adding context menu items
instantiated by PollPreview to context menu owned by MessageListViewItem.

It's fixed by instantiating those extra menu items inside context menu
itself. Generic ListElement couldn't be used because it doesn't like
functions as property values, hence this NamedAction thing.
2020-12-06 01:52:19 +02:00
Slava Monich
6fc88fe0d5 Mark readonly properties as such 2020-12-05 20:00:11 +02:00
Slava Monich
782561273f Tweaked poll/quiz layout
Made it slightly more compact.
2020-12-05 19:41:47 +02:00
John Gibbon
d35419d656 press effect for more items
there are still a few areas where there's no press effect (message items themselves: Text, profile thumbnail, sent icon,…)
but for now I've just aligned the components to the image changes
2020-12-04 22:47:03 +01:00
Sebastian Wolf
8f9c46a05d
Merge pull request #226 from monich/press
Press effect for image preview items
2020-12-04 21:53:06 +01:00
Slava Monich
eed1b06f97 Press effect for image preview items 2020-12-04 21:30:25 +02:00
John Gibbon
1e877dec22 extend #224 to LocationPreview and VideoPreview 2020-12-04 20:22:21 +01:00
Slava Monich
3fdfd8d7d2 Fixed long tap on an image
MouseArea filling the image was eating mouse events which should be
handled by the list item. Handle them all at the list item level and
forward the "clicked" event to the extra content items which declare
the clicked() function.
2020-12-04 05:12:00 +02:00
Sebastian Wolf
5d0398b071
Merge pull request #221 from monich/verified
Add verification badge to verified chats
2020-12-03 22:01:48 +01:00
Slava Monich
2638c3837d Improve preview of wide images
Avoid clipping. Also, handling file updates on C++ side should be good
for performance.
2020-12-03 04:54:19 +02:00
Slava Monich
38165c4f67 Add verification badge to verified chats 2020-12-03 02:13:35 +02:00
Sebastian Wolf
98d07c86c4 Show some love to the editing functionality 2020-12-01 21:17:13 +01:00
Sebastian Wolf
782599f905 Simplify remorse popups, see #206 2020-11-29 13:33:14 +01:00
Sebastian Wolf
965f6db84e
Merge pull request #205 from Wunderfitz/new-chat-from-contacts-7
New chat from contacts, initial secret chat support
2020-11-29 12:41:25 +01:00
Slava Monich
dff9b1668e Animate opening and closing of attachment picker row
And slightly tweaked the process of closing the sticker picker.
2020-11-29 06:48:55 +02:00
Sebastian Wolf
48b5e14335 Improvements after feedback round 2020-11-28 19:11:51 +01:00
Sebastian Wolf
90f7535fda Secret chats begin to work properly... 2020-11-26 00:25:15 +01:00
Sebastian Wolf
a6d8328b10 I can see secret chats... ;) 2020-11-25 00:23:38 +01:00
John Gibbon
9e405918f7 fix functions scope; make appNotification global
I've left some instances of AppNotification items where they're supposed to be centered inside a component, not the whole page.
2020-11-23 20:15:28 +01:00
John Gibbon
aec4666721 Fix copy paste artifacts 2020-11-23 08:27:56 +01:00
John Gibbon
7017818acb Add switchable Debug output (JS) 2020-11-23 00:08:04 +01:00
John Gibbon
b4a520ed93 Remove elide 2020-11-22 21:10:36 +01:00
John Gibbon
352493f100 Use TruncationMode.Fade 2020-11-22 20:19:14 +01:00
John Gibbon
07b8d35fb3 Remove obsolete emoji basePath workaround 2020-11-22 20:19:14 +01:00
Sebastian Wolf
b26c6e81c2 Avoid strange layout if user name is veeeeeeeery long 2020-11-22 19:16:11 +01:00
Slava Monich
42ebec4503 Do not animate tab item width
It looks weird when they are moving around the screen after page
orientation changes.
2020-11-22 13:31:04 +02:00
Sebastian Wolf
82d0058746
Merge pull request #179 from jgibbon/bugfix/#20_translation_plurals
Bugfix/#20 translation plurals
2020-11-19 21:01:19 +01:00
Sebastian Wolf
e4dbb63a92 Properly encode HTML entities for chat's last message 2020-11-19 11:41:32 +01:00
John Gibbon
8181e17fa2 remove unnecessary .arg (+warnings) 2020-11-19 11:27:10 +01:00
John Gibbon
b48ca728d2 change/enable plural handling 2020-11-19 11:27:10 +01:00
John Gibbon
cf1c25f156 [%n1|%L1] → %Ln 2020-11-19 11:27:10 +01:00
Sebastian Wolf
af47ae2c72 Some improvements as suggested by @jgibbon, add unpin feature 2020-11-18 15:01:16 +01:00
Sebastian Wolf
b35d268b12 Now able to pin messages and show in-reply-to messages in overlay 2020-11-18 15:00:05 +01:00
Sebastian Wolf
541036d796 Display extra content in message overlay 2020-11-18 14:59:51 +01:00
Sebastian Wolf
2830f50a35 React properly on pinned message changes, nice message overlay ;) 2020-11-18 14:59:35 +01:00
Sebastian Wolf
15be3862f6 Display pinned message in chat 2020-11-18 14:59:15 +01:00
John Gibbon
77efd43bde fix channel handling 2020-11-18 10:34:46 +01:00
John Gibbon
13fbd8e7a6 fix pulley menu 2020-11-18 10:34:13 +01:00
John Gibbon
95b0ddef8e align page header image; use space for text when image is further down 2020-11-18 10:27:48 +01:00
John Gibbon
b2f46b54f4 fix online member count 2020-11-18 10:08:37 +01:00
John Gibbon
813c7912fe chat info: review optimizations 2020-11-17 10:09:11 +01:00
John Gibbon
78cc3fbac4 chat info: fix imports 2020-11-17 10:09:11 +01:00
John Gibbon
182a2d1344 ChatInfoPage as attached page
fixes #150: Now basically everything is inside a loader; ChatInformationPage is added to ChatPage with pageStack.pushAttached

fixes #166: Replaces the clunky VisualItemModel in tab view and doesn't initialize multiple times.
2020-11-17 10:09:11 +01:00
Sebastian Wolf
6e6396eac4 Fix erroneous display for some web page previews 2020-11-16 15:12:18 +01:00
Sebastian Wolf
85d1bebc3a Load last read messages, enable lazy-loading the future, might fix #136 2020-11-15 23:05:22 +01:00
John Gibbon
a8ca33fa3d multiple message selection 2020-11-14 23:50:12 +01:00
Sebastian Wolf
6666cf494a More progress bars & fix some web page previews 2020-11-14 22:53:51 +01:00
Sebastian Wolf
fa470f73ba Progress bar for video downloads 2020-11-14 21:01:52 +01:00
Sebastian Wolf
d994f8f102 Fix UI glitches in forward info, support video notes 2020-11-14 20:02:34 +01:00
Sebastian Wolf
fcf1bb2118 Display state of last message if it was sent by the user, fixes #152 2020-11-14 14:10:24 +01:00
Sebastian Wolf
63ce0f92d2 Fix 'mute chat' for chats that have never been muted, fixes #144 2020-11-13 22:43:50 +01:00
Sebastian Wolf
f93f62e88c Fix sticker width/height on smaller devices 2020-11-11 13:33:20 +01:00
Slava Monich
8ca5956722 Made sticker animation configurable 2020-11-11 13:22:43 +02:00
Slava Monich
449784883e Support for animated stickers
TGS are gzipped Lottie-Animations.
2020-11-11 13:22:31 +02:00
Sebastian Wolf
3607ca98a0 Fix flickering image during resize on chat information page 2020-11-10 21:11:25 +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
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
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
cccb48ced5
Merge pull request #119 from jgibbon/feature/qml-import-versions
clean up qml imports
2020-11-01 19:37:49 +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
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
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
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
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
91ae3651ef Change license header to reflect number of contributions 2020-10-19 19:34:47 +02:00