Commit graph

295 commits

Author SHA1 Message Date
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
Slava Monich
f17048d071 Enable verbose output in TDLibReceiver if DEBUG is defined
This should have no effect on release build.
2020-10-03 21:09:04 +03: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
John Gibbon
b58e33b2a4 Handle display of messageLocation
resolves #36
2020-09-28 22:59:47 +02:00
Sebastian J. Wolf
5fa2a1200f Adjust new sorting logic to TDLib 1.6.0, add contributors' info 2020-09-28 20:47:03 +02:00
Sebastian Wolf
c333a968d6
Merge pull request #37 from monich/order
Fix chat ordering and optimize chat data storage
2020-09-28 20:21:26 +02:00
Sebastian J. Wolf
30f208d9fb Initial steps to upload videos and documents 2020-09-27 23:24:22 +02:00
Slava Monich
f10d8a4045 Fix chat ordering and optimize chat data storage 2020-09-27 19:15:13 +03:00
Slava Monich
3c0d046b3f Handle updateChatPosition
And a bit of optimization:

1. Lookup handlers from hashtable
2. Pre-initialize commonly used strings
3. Avoid unnecessary QVariantMap lookups
4. Shortened logging statements
2020-09-27 19:10:30 +03:00
Sebastian J. Wolf
ad1cec1dfb Enable image attachments :) 2020-09-27 13:49:06 +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
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
815bb5d592 Prepare two-step authentication 2020-09-16 22:36:43 +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
1a5aa9de3f Start work on un/muting chats 2020-09-16 00:15:43 +02:00
Sebastian J. Wolf
db831f5a0a Detect channel properly for notifications 2020-09-15 21:37:24 +02:00
Sebastian J. Wolf
d39b1c4a10 Open chat directly from notification 2020-09-15 21:17:44 +02:00
Sebastian J. Wolf
266a72036b Open Fernschreiber from notification 2020-09-14 23:43:21 +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
fdf89fd8a8 Add NGF daemon and LED control for notifications 2020-09-13 21:54:36 +02:00
Sebastian J. Wolf
c52a544e51 Better notification texts 2020-09-12 23:22:33 +02:00
Sebastian J. Wolf
7dd8e07a39 Consolidate messages belonging to the same chat 2020-09-09 23:44:02 +02:00
Sebastian J. Wolf
239af6e6e7 Sending simple text notifications, yeah! 2020-09-08 23:44:57 +02:00
Sebastian J. Wolf
8809372b67 Backend can really send notifications 2020-09-03 23:20:46 +02:00
Sebastian J. Wolf
9f708080c8 We need chat information in notification manager 2020-09-02 23:05:09 +02:00
Sebastian J. Wolf
aa3a841fee Prepare notification manager 2020-09-02 22:49:15 +02:00
Sebastian J. Wolf
436bce0966 Enable Telegram Notification API 2020-09-01 23:14:59 +02:00
Sebastian J. Wolf
1a3768b79b Workaround for chat listview crashes (no last item, why?) 2020-08-31 23:51:32 +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
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
391dd597e2 Initial performance improvements 2020-08-29 16:32:43 +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
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
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
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
8dc8dd3651 Handle user status updates 2020-08-22 14:06:26 +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
543ba5d46b Force list item update after changed chats 2020-08-21 09:29:19 +02:00
Sebastian J. Wolf
588fbd11a8 Support some message types in chat list 2020-08-20 23:56:21 +02:00
Sebastian J. Wolf
13ce878b05 Display unread message count on chat list 2020-08-20 20:06:59 +02:00
Sebastian J. Wolf
d87b5b84fb Surrendering - trying delta updates only after successful initialization 2020-08-20 18:45:56 +02:00
Sebastian J. Wolf
d29b3bd79b Completed automated sorting, proper UI updates still missing 2020-08-20 17:06:47 +02:00
Sebastian J. Wolf
3948920a93 Sorting and updating is complicated 2020-08-20 14:58:32 +02:00
Sebastian J. Wolf
0a04169f4f Sorting seems to work, we'll see... 2020-08-20 10:50:47 +02:00
Sebastian J. Wolf
8555716113 Display last message in chat list, start ordering them 2020-08-20 00:24:24 +02:00
Sebastian J. Wolf
c44d85732c First steps to get a chat list on screen :) 2020-08-19 09:55:13 +02:00
Sebastian J. Wolf
d55aa19a72 The onboarding UX doesn't like me... 2020-08-17 23:44:37 +02:00
Sebastian J. Wolf
666acdf1db Every app needs a nice cover page :) 2020-08-16 23:31:20 +02:00
Sebastian J. Wolf
ee31736f83 Cache discovered chats 2020-08-16 17:38:51 +02:00
Sebastian J. Wolf
41ac3c4829 Bring own profile picture to the about page 2020-08-14 10:33:42 +02:00
Sebastian J. Wolf
fdffb99029 Add user information & add Emojis 2020-08-13 22:33:08 +02:00
Sebastian J. Wolf
446338363f Store user information & introduce connection status 2020-08-13 17:08:14 +02:00
Sebastian J. Wolf
6b68d8a276 First successful authentication, yeah! :) 2020-08-13 15:35:43 +02:00
Sebastian J. Wolf
bd59896896 Asking Telegram for an authentication code 2020-08-13 10:15:26 +02:00
Sebastian J. Wolf
6c4cb405b1 Process connection status updates 2020-08-13 00:20:28 +02:00
Sebastian J. Wolf
154113afc4 Initial ping-pong with TDLib :) 2020-08-12 23:51:09 +02:00
Sebastian J. Wolf
26a885400d Bring TDLib version to the UI 2020-08-12 10:50:01 +02:00
Sebastian J. Wolf
0e7dc04fa6 Initial parsing of received information 2020-08-10 23:37:25 +02:00
Sebastian J. Wolf
ef9b234698 Add TDLib message receiver 2020-08-10 20:17:13 +02:00
Sebastian J. Wolf
6d864b3623 Initialize Fernschreiber repository 2020-08-10 14:17:29 +02:00