Commit graph

335 commits

Author SHA1 Message Date
Sebastian Wolf
d38f56b9fe
Recording Vorbis files works & connected to UI 2021-01-02 00:15:25 +01:00
John Gibbon
42398eee96 Implement TextArea focus after message send option
fixes #149
2021-01-01 01:34:11 +01: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
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
283466ae95
Merging should be done right... :/ 2020-12-29 09:12:57 +01:00
Sebastian Wolf
78a71cfbab
Merge remote-tracking branch 'origin/master' into searching 2020-12-28 22:16:59 +01:00
Sebastian Wolf
e6fd5885aa
Force read all mentions in a chat when nothing is unread 2020-12-28 21:57:34 +01:00
Sebastian Wolf
72fd008dfc
Disable some stuff that is not needed in search mode 2020-12-28 17:12:21 +01:00
Sebastian Wolf
225eb76899
Fix crash on incoming message deletions & minor other fixes 2020-12-28 14:35:27 +01:00
Sebastian Wolf
2e970f2003
Search for public chats... 2020-12-27 23:30:25 +01:00
Sebastian Wolf
0f28db0115
Merge remote-tracking branch 'origin/master' into searching 2020-12-27 12:06:54 +01:00
Sebastian Wolf
19a17ed3f3
Now you can search in a chat... 2020-12-27 00:16:25 +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
Sebastian Wolf
461b724d15
Merge latest upstream changes 2020-12-26 16:28:03 +01:00
Sebastian Wolf
13a91fa0e7
Remove pinned message workaround, add more build information 2020-12-26 15:43:10 +01:00
Sebastian Wolf
c83fcda617
Merge remote-tracking branch 'origin/master' into searching 2020-12-25 22:40:37 +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
a0a2e6bdca
Merge remote-tracking branch 'origin/master' into searching 2020-12-21 23:33:51 +01:00
Sebastian Wolf
00287ea89c
Merge pull request #237 from Wunderfitz/tdlib17
Migration to TDLib 1.7
2020-12-21 23:22:52 +01:00
Sebastian Wolf
87255e123a
Merge remote-tracking branch 'origin/tdlib17' into searching 2020-12-16 23:55:58 +01:00
Sebastian Wolf
4fbdeb6366
TDLib 1.7: Set timeout back to 5s, repair user profile photos 2020-12-16 23:54:17 +01:00
Sebastian Wolf
45bcc4f33d
Introduce filter capabilities for chat list 2020-12-16 23:32:42 +01:00
Slava Monich
25efbb8bc2 Added "Show all chats" switch to the Debug page 2020-12-16 16:04:15 +02:00
Sebastian Wolf
8b49b0363c TDLib 1.7: Reduce log verbosity level again to normal 2020-12-14 22:12:52 +01:00
Sebastian Wolf
a1f0e1c1c5 TDLib 1.7: Some 'fun' with the message database 2020-12-08 21:57:23 +01:00
Sebastian Wolf
bf9c4e1e5e TDLib 1.7: Message database seems to lead to terrible performance -> disable it 2020-12-07 23:33:09 +01:00
Sebastian Wolf
63db26afc8 TDLib 1.7: Sticker IDs, message sender IDs 2020-12-07 21:43:09 +01:00
Sebastian Wolf
f6d72d8ef1 Next version will be 0.6 2020-12-06 21:50:38 +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
Sebastian Wolf
56f5a675ac Fix reload after single message, changelog for 0.5.1 2020-12-04 22:53:52 +01:00
Sebastian Wolf
00bb7289ad Fix chat list short messages in channels 2020-12-04 20:28:42 +01:00
Sebastian Wolf
2869a99cbc Get also the one and only message in a chat (hopefully no side-effects...) 2020-12-03 22:33:36 +01:00
Slava Monich
38165c4f67 Add verification badge to verified chats 2020-12-03 02:13:35 +02:00
Sebastian Wolf
a8fd0e0463 Chore: Change release version 2020-12-01 23:18:26 +01:00
Sebastian Wolf
98d07c86c4 Show some love to the editing functionality 2020-12-01 21:17:13 +01:00
Sebastian Wolf
4aedc56ca7 Merge incoming changes from secret chat/contacts 2020-11-29 12:44:50 +01:00
Sebastian Wolf
9aa1392b1e Postprocess at-mentions without username 2020-11-29 00:33:27 +01:00
Sebastian Wolf
f7296daf4e Start with @-mentioning in own messages 2020-11-28 23:00:10 +01:00
Sebastian Wolf
48b5e14335 Improvements after feedback round 2020-11-28 19:11:51 +01:00
Sebastian Wolf
de945c7846 Merge remote-tracking branch 'origin/master' into new-chat-from-contacts-7 2020-11-27 21:14:59 +01:00
Sebastian Wolf
cc08ee3997 Switch to file picker for documents, fix short text for audios 2020-11-27 21:13:55 +01:00
Sebastian Wolf
4bcd4faca9 Merge remote-tracking branch 'origin/master' into new-chat-from-contacts-7 2020-11-27 19:51:56 +01:00
Sebastian Wolf
4cf35641c5 Secret chat identifer switches to qlonglong 2020-11-27 19:42:39 +01:00
John Gibbon
0ba4d9a408 Fix initial auth handling
This (hopefully, it at least LGTM) fixes two problems:
 - OverviewPage.onCompleted: It got the wrong AuthorizationState if qml was loaded too fast because it wasn't initialized. (c++)
- The QML could have tried to open the InitializationPage "onCompleted". But the initial pageStack operation is a parent in it's call stack,  so it is neither ready nor wants to accept "completeAnimation()". A zero interval Timer was added for this case.
2020-11-27 10:25:23 +01:00
Sebastian Wolf
deacb7f0ea Synchronize contacts with Telegram 2020-11-26 22:18:51 +01:00
Sebastian Wolf
7ab58d3730 Add option to close a secret chat 2020-11-26 16:11:12 +01:00
Sebastian Wolf
6f889437ed Merge latest upstream changes... 2020-11-26 15:38:15 +01:00
Sebastian Wolf
90f7535fda Secret chats begin to work properly... 2020-11-26 00:25:15 +01:00
Sebastian Wolf
3b8d284b2b Handle secret chat state for chat list 2020-11-25 22:09:47 +01:00
Sebastian Wolf
a6d8328b10 I can see secret chats... ;) 2020-11-25 00:23:38 +01:00
Sebastian Wolf
4713fbfba6 Apply a dumb filter on contacts 2020-11-24 17:28:41 +01:00
Sebastian Wolf
86599b2859 Move contacts to an own model 2020-11-24 16:13:16 +01:00
Slava Monich
b649b71868 Added storage optimizer option 2020-11-24 00:17:27 +02:00
Sebastian Wolf
20b773ac59 Check contacts requested via extra-attribute 2020-11-23 20:53:43 +01:00
Sebastian Wolf
51cad07231 Yet another merge from master, need to be faster... ;) 2020-11-23 12:08:25 +01:00
Slava Monich
3d48125371 Add MceInterface object 2020-11-23 01:38:06 +02:00
John Gibbon
8fd82caf96 Address reviewed issues 2020-11-23 00:08:04 +01:00
John Gibbon
7b6dd14fd1 Use logging rule for front end 2020-11-23 00:08:04 +01:00
John Gibbon
7017818acb Add switchable Debug output (JS) 2020-11-23 00:08:04 +01:00
Slava Monich
162e1ca996 Take logging categories into use
Logging can be enabled in release build like this:

QT_LOGGING_RULES="fernschreiber.*=true" harbour-fernschreiber

See https://doc.qt.io/qt-5/qloggingcategory.html for more details.
2020-11-22 16:40:55 +02:00
Sebastian Wolf
c6fa5cf97f Options for creating new chats... 2020-11-21 22:13:37 +01:00
Sebastian Wolf
4d1bd029bc Merge remote-tracking branch 'origin/master' into new-chat-from-contacts-7 2020-11-21 10:21:53 +01:00
Slava Monich
e68340d406 Added notificationTurnsDisplayOn option
It defaults to false
2020-11-21 01:43:08 +02:00
Slava Monich
00483a676f Fixed release build 2020-11-21 00:33:17 +02:00
Sebastian Wolf
9d75cbbedf Showing sorted contacts, wow! 2020-11-20 23:00:50 +01:00
Sebastian Wolf
fe8199a1eb Merge remote-tracking branch 'origin/master' into new-chat-from-contacts-7 2020-11-20 21:48:37 +01:00
Slava Monich
d1ccf9f796 Show notification popups except for the current chat
And drop dependency on Ngf. Also, pre-initialize the chat photo when
pushing the chat page.
2020-11-20 21:42:23 +02:00
Sebastian Wolf
fb2e0786c9 Merge with master branch (notification hotfix) 2020-11-20 19:22:43 +01:00
Sebastian Wolf
dd6239c119 Hotfix: Use up-to-date chat information for open-by-notification 2020-11-20 19:08:05 +01:00
Sebastian Wolf
3dbf38a1fa Start implementing 'New Chat' functionality 2020-11-20 18:30:33 +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
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
2830f50a35 React properly on pinned message changes, nice message overlay ;) 2020-11-18 14:59:35 +01:00
Sebastian Wolf
f6b42eb3cb
Merge pull request #169 from jgibbon/bugfix/message-permissions
Bugfix/message permissions
2020-11-18 12:44:21 +01:00
John Gibbon
1486e49f1c add FernschreiberUtils to qml context (unused for now) 2020-11-17 16:45:54 +01:00
Slava Monich
8db731636c Removed mutex from ChatModel
AFAICT there's nothing to synchronize here
2020-11-16 21:33:47 +02:00
Sebastian Wolf
9141b8e68b Fix crash when forwarding to some chats, introduce iterative init 2020-11-16 16:52:48 +01:00
Sebastian Wolf
9507024f51 Loading messages or not loading them...? Next step towards #136 2020-11-16 14:22:32 +01:00
Sebastian Wolf
18e88a8412 If last message was an own one, it was of course read... 2020-11-16 00:08:55 +01:00
Sebastian Wolf
c8c0044815 Display all error messages (let's see how it works...) 2020-11-15 23:29:04 +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
Sebastian Wolf
1c82072c15
Merge pull request #160 from monich/updateChatPhoto
Update chat photo
2020-11-15 17:19:57 +01:00
Slava Monich
2323c574b3 Handle updateChatPhoto message 2020-11-15 06:12:17 +02:00
Slava Monich
90b32be076 Shortened log statements in ChatModel 2020-11-15 06:12:17 +02:00
Slava Monich
f25e3de029 Preallocate more QStrings in TDLibReceiver
For better performance.
2020-11-15 06:12:17 +02:00
Slava Monich
78720d48fc Silence 'Unhandled object type "ok"' message 2020-11-15 06:12:17 +02:00
John Gibbon
a8ca33fa3d multiple message selection 2020-11-14 23:50:12 +01:00
Sebastian Wolf
07aa92ffcc Merge branch 'master' of https://github.com/Wunderfitz/harbour-fernschreiber 2020-11-14 14:10:28 +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
Slava Monich
66551e9590 Initialize TDLibWrapper::joinChatRequested 2020-11-14 06:33:39 +02:00
Sebastian Wolf
7d78a2f126 Message sent successfully: Send dataChanged event first 2020-11-13 23:39:27 +01:00
Sebastian Wolf
301f52603a Integrate latest translation updates 2020-11-12 21:37:17 +01:00
iamnomeutente
92afae9f6c Typo corrected 2020-11-11 16:02:56 +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
5d3805759a Small UI fixes, error handling for joining chats 2020-11-09 23:22:24 +01:00
Sebastian Wolf
89e0576adc Support open-with from external sources (e.g. web links) 2020-11-08 21:13: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
7d28f72e98 add some message type descriptions 2020-11-05 14:06:41 +01:00
Sebastian Wolf
6d3b3464bf Experiment a bit with opening new chats 2020-11-05 00:02:27 +01:00
Sebastian Wolf
84bfb003b0 Prepare to join/see chats by link 2020-11-03 23:39:09 +01:00
Sebastian Wolf
bbd8e3eabf Start chat from @-mention 2020-11-03 22:21:01 +01:00
Sebastian Wolf
86ac99004d Notifications: disable previewBody/Summary for now, update README 2020-11-01 21:58:22 +01:00
Slava Monich
45180b64b4 Don't post unwanted feedback for removed notifications
Also, don't turn off PatternCommunicationIM pattern when some (but
not all) notifications are removed, don't keep empty notification
groups in notificationGroups map, reuse already posted notification
after restarting the client, handle chat title change and more...
2020-11-01 21:07:15 +02:00
Slava Monich
9504b24d5c Pre-allocate commonly used QStrings in NotificationManager
To avoid overhead (e.g. ASCII => UTF16 convertion) on each use.
2020-11-01 21:07:15 +02:00
Slava Monich
484f66f01c Don't pass primitive types by const references to NotificationManager
It makes no sense whatsoever.
2020-11-01 21:07:15 +02:00
Sebastian Wolf
4de0cb213e
Merge pull request #120 from monich/chatmodel-crash
Fix crash in ChatModel
2020-11-01 19:41:44 +01:00
Slava Monich
4049d4aa7c Fixed crash in ChatModel
QList::first() panics if the list is empty.
2020-11-01 05:09:47 +02:00
Slava Monich
4c2f9dba19 Moved chatTypeFromString from ChatListModel to TDLibWrapper
So that it can be used elsewhere
2020-10-31 21:19:34 +02:00
Sebastian Wolf
3175e641dc
Merge branch 'master' into const-refs 2020-10-26 21:28:39 +01:00
John Gibbon
d3324bfab2 slot/primitive considerations from #103 2020-10-24 19:28:20 +02:00
Slava Monich
080244ecb1 Removed useless slots from TDLibWrapper
Signals can be connected directly to signals.
2020-10-24 03:24:56 +03:00
Slava Monich
460eaa878f Don't pass primitive data as a const reference
It just doesn't make any sense.

Reference (essentially a pointer) can't be smaller than a primitive
type, except for 64-bit numbers on a 32-bit platform. In terms of
performance, an additional indirection can't be better than picking
the value directly from the stack, let alone a register.
2020-10-24 03:13:08 +03: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
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
John Gibbon
74a732a5b6 implement chat info page
includes some basic group administration features
2020-10-19 12:48:55 +02:00
Sebastian J. Wolf
a95dcc4efc Ignore already existing file when download is requested, fixes #67 2020-10-18 22:14:48 +02:00
Sebastian J. Wolf
a78f60f974 Search for emojis with :<keyword> 2020-10-18 18:57:01 +02:00
Slava Monich
f75e5a3f4b Added "Notification feedback" combo box 2020-10-18 18:02:44 +03:00
Slava Monich
6e1e100a87 Don't initialize MCE QDBusInterface on every D-Bus call
It's enough to initialize it once at startup.

Also avoided a few per-call ASCII => QString conversions and dropped
unnecessary mutex.
2020-10-18 18:02:44 +03:00
Slava Monich
65738a4ddf Shortened log statements in NotificationManager
Copy/paste is evil
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 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
256244a08e Some additional preparations to send stickers 2020-10-12 22:44:21 +02:00
Slava Monich
c60f2e59ce Added showStickersAsImages option 2020-10-11 00:39:05 +03:00
Sebastian J. Wolf
c0269b5502 Display information for forwarded messages 2020-10-07 22:17:44 +02:00
Slava Monich
caecdb0f56 Moved app settings to a separate object 2020-10-06 04:40:39 +03:00
Sebastian J. Wolf
c1ea773fae Prepare getting some stickers :D 2020-10-05 23:08:47 +02: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
b0e995c069 Remove TYPE_MAP from ChatListModel after #45 2020-10-04 14:21:28 +02:00
Sebastian Wolf
d4846d5f26
Merge pull request #45 from monich/hide-irrelevant-chats
Hide irrelevant chats
2020-10-04 14:09:45 +02:00
Sebastian Wolf
5509a555a0
Merge pull request #44 from monich/verbose
Enable verbose output in TDLibReceiver if DEBUG is defined
2020-10-04 13:37:55 +02:00
Sebastian Wolf
d79ecb8d4f
Merge branch 'master' into feature/userRegistration 2020-10-04 12:27:25 +02:00
Slava Monich
56bc1135a7 Don't show irrelevant groups by default
chatListModel.showAllChats property can be used to switch visibility
of irrelevant groups on and off.
2020-10-04 04:33:42 +03:00
Slava Monich
1b261c224f Shortened log statements in TDLibWrapper
Macro is a good replacement for copy/paste.

And I'm not sure if this "[TDLibWrapper]" prefix is really necessary
since Qt adds the class and method to the debug messages which makes
another such prefix redundant. The LOG macro makes it easy to get rid
of it.
2020-10-04 04:28:46 +03:00
Sebastian J. Wolf
ec9e4b2f0b Handle message short texts properly in backend 2020-10-03 22:58:45 +02:00
Sebastian J. Wolf
79c77c426b Don't display 'unknown' for channels in chat list 2020-10-03 21:06:50 +02:00