Commit Graph

649 Commits

Author SHA1 Message Date
John Preston
e1ba9f8ff8 Hide send message in Info for current chat. 2017-11-16 07:59:04 +04:00
John Preston
f4d9618487 Improve layer / section exchange for Info. 2017-11-16 07:59:04 +04:00
John Preston
1a4d326abb Show Info if writing is forbidden. 2017-11-16 07:59:03 +04:00
John Preston
c0e780a28f Allow small dialogs list with three columns. 2017-11-16 07:59:03 +04:00
John Preston
5586d231de Switch Info between columns and layer. 2017-11-16 07:59:03 +04:00
John Preston
766e7dadb1 Use improved rpl::start(). 2017-11-16 07:59:03 +04:00
John Preston
5e7aa4ff81 Move third column from HistoryWidget to MainWidget. 2017-11-16 07:59:03 +04:00
John Preston
f162462111 Move info between Layer and Narrow wrap. 2017-11-16 07:59:03 +04:00
John Preston
c302219f9e Use rpl in some widgets and effects. 2017-11-16 07:59:02 +04:00
John Preston
2690618da2 Add Storage::UserPhotos and UserPhotosSlice. 2017-11-16 07:59:02 +04:00
John Preston
41ed2d1b84 New storage for shared media messages index. 2017-11-16 07:59:02 +04:00
John Preston
76489a7885 Fix stack overflow in passcode lock check.
A regression was introduced in e209737b1a.

We call MainWindow::doWeReadMentions() in the history paintEvent,
that calls Auth().checkAutoLock() and may start passcode locking.

Passcode locking starts animation and grabs the window content,
calling history paintEvent() which leads to deadlock.

Now we call Auth().checkAutoLock() asyncronously.
2017-09-03 15:45:48 +03:00
John Preston
df64c972d8 Replace QFlags with base::flags. 2017-09-03 15:45:47 +03:00
John Preston
48e2a5472e Return not_null<History*> in App::history(). 2017-09-03 15:45:43 +03:00
John Preston
5a20014b1a Highlight all mentions when marking them read. 2017-08-30 19:15:53 +03:00
John Preston
25ffaaaa2d Replace t_assert() with Assert().
Also use this assertions for Expects(), Ensures() and Unexpected().
2017-08-30 19:15:42 +03:00
John Preston
b3da99c302 Replace gsl::not_null<T*> with just not_null<T*>. 2017-08-30 19:15:41 +03:00
John Preston
e13ed9b909 Remove main()->peerUpdated and some other signals. 2017-08-30 19:15:36 +03:00
John Preston
b816d33d48 Replace add bot to group box with PeerListBox. 2017-08-30 19:15:29 +03:00
John Preston
e209737b1a Display and follow unread mentions in history. 2017-08-30 19:15:13 +03:00
John Preston
c8810f87b9 Move a lot of code from scheme.h to scheme.cpp. 2017-08-25 14:39:32 +03:00
John Preston
b08732cf28 Move MediaView from MainWindow to Messenger. 2017-08-25 14:39:27 +03:00
John Preston
f04b25ea26 Allow setting group stickers set. 2017-08-25 14:39:19 +03:00
John Preston
ab35829358 Remove App::app(), App::uploader(), App::api().
Also use Auth() instead of AuthSession::Current*().
2017-08-25 14:39:18 +03:00
John Preston
667eb288d7 Add faved stickers set loading and saving.
Also move stickers loading methods to ApiWrap.
2017-08-25 12:58:13 +03:00
John Preston
b0cc61c621 API scheme updated to layer 71. 2017-08-25 12:58:12 +03:00
Nicholas Guriev
a2c93bc040 Fix updates of mute status in context menu of dialog list
Signed-off-by: Nicholas Guriev <guriev-ns@ya.ru>
2017-08-25 12:56:50 +03:00
Nicholas Guriev
24fc162e71 Mute settings box
Closes: #3153
Signed-off-by: Nicholas Guriev <guriev-ns@ya.ru> (github: mymedia2)
2017-08-04 18:16:54 +02:00
John Preston
8c60ac78aa Rename and split dialogswidget module.
Also remove some debug information for crash fix.
2017-08-01 21:15:03 +03:00
John Preston
91fda6b654 Add search from group member button to dialogs. 2017-08-01 21:15:02 +03:00
John Preston
96a2af842f Remove glitch with video messages floating player. 2017-08-01 21:14:44 +03:00
John Preston
34d2e78308 Allow to edit Bio in Settings. 2017-07-23 12:34:43 +03:00
John Preston
cf02a4cc31 API scheme updated to layer 70. 2017-07-23 12:34:40 +03:00
John Preston
949104d879 Improve queued by pts updates handling.
The updates are ordered by pts and applied in the correct order.
Also some pts-dependent updates handling was moved to ApiWrap.
2017-07-14 14:57:05 +03:00
John Preston
f32af6999b Add a fast share button in channels and bots. 2017-07-11 20:11:06 +03:00
John Preston
ac99784bf7 Change chat for forwarded items by click on them.
Closes #3637
2017-07-11 13:23:15 +03:00
John Preston
da0d78135d Some refactoring in working with text entities.
Also move this code to TextUtilities namespace.
2017-07-06 14:37:42 +03:00
John Preston
7d342b9c6d Add search to channel / supergroup recent actions. 2017-07-05 16:11:08 +03:00
John Preston
42febdb240 Fix alpha version changelog notification.
We should call window->serviceNotification() because it checks for
the service chat history being loaded before adding the message.

The method in MainWidget was renamed to prevent bugs in the future.
2017-06-30 14:30:11 +03:00
John Preston
4993ff1921 Finalize rename / move. 2017-06-30 09:21:45 +03:00
John Preston
836fe119d9 Improve display of admin event log entries.
Don't show the Forward, Delete and Go to message in MediaView.
Better handle round video floating player in admin event log.
2017-06-30 09:21:45 +03:00
John Preston
82912f4a0b Handle socks internal links. 2017-06-30 09:21:43 +03:00
John Preston
0a9db8533b Save admin log state to memento and restore it. 2017-06-30 09:21:43 +03:00
John Preston
cedf8a65e7 Better channel log entry layout inside messages.
Also move HistoryService class to a separate module.
2017-06-30 09:21:42 +03:00
John Preston
5c87b42135 Use plain HistoryItem in channel admin events log.
Instead of using a complex AdminLog::Item use just HistoryItem*.
2017-06-30 09:21:42 +03:00
John Preston
e39b95175b Handle channel event log mouse events. 2017-06-30 09:21:42 +03:00
John Preston
1791b251ad Fix tabbed section / panel render glitches. 2017-06-30 09:21:42 +03:00
John Preston
6ba57e713e Use forwarded messages only for one selected chat.
Different chats now can have different forwarded "drafts".
2017-06-29 11:40:26 +03:00
John Preston
5c0a1bafe2 Add supergroup restriction placeholders / labels. 2017-06-29 11:40:13 +03:00
John Preston
7d2d5c6100 Edit admin and restricted rights in channels. 2017-06-29 11:40:11 +03:00
John Preston
330b4a0b00 API scheme updated to layer 68. 2017-06-29 11:40:08 +03:00
John Preston
85e6f55536 Support new plural keys format.
All the old plural phrases were changed to work with the new format.
2017-06-29 11:39:56 +03:00
John Preston
3f0b57ec11 Retranslate Settings when language is changed.
Also suggest user to change language from 'en' to his for one time.
2017-06-29 11:39:45 +03:00
John Preston
f5dfeb0c50 Support cloud languages list and switching.
Add Lang::Current().updated() observable for retranslating the UI.
2017-06-29 11:39:43 +03:00
John Preston
139d4e72b5 Start cloud langpack support.
Change the way langpacks are stored.
Support custom langpacks in the new storage.
2017-06-29 11:39:42 +03:00
John Preston
2334ba1fe1 Use QString + Lang::Tag() instead of Lang::String. 2017-06-29 11:39:40 +03:00
John Preston
110e7c8074 Finalize rename / move. 2017-06-29 11:39:38 +03:00
John Preston
a813793007 API scheme updated to layer 67. 2017-06-29 11:39:35 +03:00
John Preston
9a18ecf93d Fix the chats list width saving with passcode.
Regression was introduced in 0339b1b54b.

If the passcode is enabled the main widget is created after the main
window was fully initialized, so the first main widget resize already
used the shrink algorithm while creating the third column.

No we shrink the left column only after the main widget was started.
2017-05-27 13:28:16 +03:00
John Preston
c91e29d15d Improve floating player show / hide animations.
Also replace Window::Corner with a generic RectPart enumeration.
2017-05-24 16:25:20 +03:00
John Preston
03aeaadd5b Update floating player position. 2017-05-24 16:25:19 +03:00
John Preston
75dcce0b3c Save floating player position in localstorage. 2017-05-24 16:25:17 +03:00
John Preston
ee6d80673a Snap floating player to column and corner. 2017-05-24 16:25:17 +03:00
John Preston
c58a48276f Hide floating player if video message is visible. 2017-05-24 16:25:15 +03:00
John Preston
b7550f63c9 Add a floating player for round video messages. 2017-05-24 16:25:15 +03:00
John Preston
7873cb4373 Using media player for voice / video messages.
Media::Player::Widget displays the current voice / video message
if it is played and the current song otherwise.

It is created when a voice / video message starts and is destroyed
when all the voice / video messages in the playlist are finished.
2017-05-24 16:25:12 +03:00
John Preston
611a3e2f8a Handle voice playlist in Media::Player::Instance.
This allows video and voice messages to autoplay one after another.
2017-05-24 16:25:09 +03:00
John Preston
b9119e5ef6 Play video messages as Type::Voice.
Use AudioMsgId instead of videoPlayId.
Any audio track now can be a child loader track of some video clip.
Use Type::Voice instead of Type::Video for round video messages.
Video messages play / pause / resume the same way as voice messages.
2017-05-24 16:25:09 +03:00
John Preston
efb59e8c3a Show GIF in Mediaview on click.
This way you can watch GIF on full screen and switch between them.
2017-05-24 16:25:05 +03:00
John Preston
2377873c45 Add items to overviews inside HistoryMedia.
This allows one history item to exist in several media overviews.
See voice message, which should be in VoiceFiles and RoundVoiceFiles.
2017-05-24 16:25:04 +03:00
John Preston
0339b1b54b Shrink dialogs column when enabling emoji sidebar.
Try to hold the ratio between the chat width and the dialogs list
width when the emoji sidebar is created by shrinking the left column.
2017-05-17 15:38:42 +03:00
John Preston
9f7c45e35c Fix enabling emoji sidebar from a small window.
Extend the window size after the tabbedSelectorSectionEnabled flag
is already set to true. Otherwise we extend the window and switch
to a normal from single column layout before showing the sidebar.
2017-05-17 14:50:00 +03:00
John Preston
8d02d81a9a Switch layout to Normal in a wide enough window.
A lot of people didn't know how to bring the dialogs column back
after it was gone in a wide single column MainWindow.

Now we switch to a two column layout if the window allows it,
preserving the emoji / stickers / GIFs section in case it is shown.
2017-05-13 15:02:07 +03:00
John Preston
565b56fb5f Pause all media if a call is created.
Pause video, voice messages, songs and stop video messages.
2017-05-12 20:44:18 +03:00
John Preston
30d000e139 Toggle calls controls using config and user flags.
Also use calls timeout values from config.
Also request config each time when the auth session changes.
2017-05-09 23:46:22 +03:00
John Preston
06b081f509 Add calls log box.
PeerListBox can have many rows with the same PeerData.
PeerListBox::Row can have arbitrary action on the right side.
2017-05-09 23:46:18 +03:00
John Preston
f6eb2c5205 Add call top bar above the media player. 2017-05-09 23:46:18 +03:00
John Preston
d18164bc51 Add Calls::Instance. Add libtgvoip as a dependency.
Also move all submodules to Telegram/ThirdParty.
2017-05-09 23:46:08 +03:00
John Preston
caf2e19d27 Better error message for banned in public groups.
Also improve the changelog.
2017-05-08 16:30:59 +03:00
John Preston
cd6a189990 Show some info for USER_BANNED_IN_CHANNEL error. 2017-04-30 16:43:18 +03:00
John Preston
33ffa0715d Alpha 1.0.34: Fix tabbed section widget render.
Also fix error message layout in EditCaptionBox.
2017-04-21 16:22:45 +03:00
John Preston
de7c886008 Move passcode management from MainWindow.
Check for auto lock in AuthSession. Don't autolock while video plays.
Closes #3219
2017-04-15 21:51:12 +03:00
John Preston
e3aacc8072 Don't change notification sound to empty on mute.
If notifications are muted no one from official apps play sound.
So there is no need to turn the sound off, otherwise if you enable
the notifications from a different app the sound stays off.

Enable the sound (change to "default") when turning notifications on.
2017-04-15 21:51:11 +03:00
John Preston
891d200e2d Add TabbedSection which uses the TabbedSelector. 2017-04-10 12:08:56 +03:00
John Preston
330fc35800 Move some classes to separate modules.
MessageField, BotKeyboard, HistoryInner from historywidget.
2017-04-08 16:31:58 +03:00
John Preston
570cd9bdfa Move GIF pausing methods to Window::Controller. 2017-04-08 16:31:57 +03:00
John Preston
0d0307e175 Move ApiWrap to AuthSession.
Also send all ApiWrap requests as an MTP::Sender.
Also create AuthSession only after starting MTProto.
2017-04-07 18:13:19 +03:00
John Preston
835b1801bc Remove Q_OBJECT dependency from ApiWrap.
Also remove it from SingleDelayedCall -> SingleQueuedInvocation.
2017-04-07 18:13:19 +03:00
John Preston
5444b8166c Finalize rename / move of files. 2017-04-07 18:13:18 +03:00
John Preston
ffc9585196 Add hierarchy of GIF pausing inside a window.
GIFs get paused if some other layer is displayed above.
Media preview > Box or layer > Saved GIFs panel > Inline bot results.
If any of those is displayed, GIFs inside message history pause too.
2017-04-03 19:46:12 +03:00
John Preston
3d846fcd49 Show inline bot results in a separate widget.
Add a InlineBots::Layout::Widget for inline bot results.
GIF search from EmojiPan is disabled for now.
2017-03-31 15:48:00 +03:00
John Preston
8d4be19952 Use separate TopBar for History and Overview.
Move TopBar widget to History and Overview from MainWidget.
2017-03-31 15:47:58 +03:00
John Preston
d41372dccd Allow MTP_flags(0) and MTP_flags(single_flag). 2017-03-25 18:42:01 +03:00
John Preston
fc77b0a51c Save privacy in ApiWrap. Handle privacy updates. 2017-03-18 12:49:47 +03:00
John Preston
d91a2403b0 Use refs in AuthSession part getters.
Also use only AuthSession data for Contacts/Dialogs loaded state.
2017-03-15 19:24:06 +03:00
John Preston
1027bd431a Add some helper methods to effect wrappers.
Add and use similar methods to WidgetSlideWrap and WidgetFadeWrap:
[show|hide|toggle]Fast() and [show|hide|toggle]Animated().
2017-03-15 18:10:18 +03:00
John Preston
805be84bff Add block user box. Search isn't working yet.
Add a box containing all chats and contacts for blocking users.
Contacts and dialogs loaded state can be accessed in AuthSession.
2017-03-14 17:16:03 +03:00
John Preston
f2465eba73 Make MTPstring and MTPvector value types.
Also move MTPstring implementation to QByteArray.
2017-03-10 23:27:26 +03:00
John Preston
02da80439b Remove read() constructors from MTP types.
This will allow us to handle errors in parsing not by exceptions.
2017-03-10 23:27:24 +03:00
John Preston
ed3b2cc017 Make date service messages clickable.
Open jump to date box when clicking on dates including floating date.
2017-03-07 22:30:00 +03:00