Commit Graph

234 Commits

Author SHA1 Message Date
John Preston 93f6d4b6e7 Support many config endpoints for one dc+params. 2018-05-05 21:55:37 +03:00
John Preston 027db285bc Add Info::Channels section + feed channels search. 2018-02-22 20:38:00 +03:00
John Preston 99c686e3e1 Display feed channels list in feed info. 2018-02-08 12:20:55 +03:00
John Preston 11671e85da Add scroll-to-down button to Feed. 2018-02-08 12:20:54 +03:00
John Preston 63c1212ef1 Allow multiple items selection in HistoryView. 2018-02-08 12:20:52 +03:00
John Preston fe1a90bd39 Move message context menu to a separate module. 2018-02-08 12:20:52 +03:00
John Preston a47981054f Feed info profile placeholder. 2018-02-08 12:20:51 +03:00
John Preston 861ab85ca1 Fix voice/video messages in chats/feed. 2018-02-08 12:20:50 +03:00
John Preston 8a56ede187 Move all (item/view/media) maps to Data::Session. 2018-02-08 12:20:49 +03:00
John Preston 7425e80f05 Use HistoryMedia as view, add Data::Media. 2018-02-08 12:20:48 +03:00
John Preston 97a9089ebf Move draw / getState code to HistoryView::Message.
Item dimensions broken for now.
Also remove history.h from pch.
2018-02-08 12:20:48 +03:00
John Preston bee474f6e9 Remove history_item and layout from pch.
Also move some code to separate modules.
Also create history item views by Window::Controller.
2018-02-08 12:20:47 +03:00
John Preston 8060cb7426 Start HistoryView::Message class for item view. 2018-02-08 12:20:47 +03:00
John Preston 794e31505b First version of feed section view. 2018-02-08 12:20:46 +03:00
John Preston 782e70b171 Support basic feed display in chats list. 2018-02-08 12:20:46 +03:00
John Preston 9d2239291d Add support for pinned feeds management. 2018-02-08 12:20:46 +03:00
John Preston 6a9556d42c Move non-settings session data to Data::Session.
Rename AuthSessionData to AuthSessionSettings, move data away.
2018-02-08 12:20:46 +03:00
John Preston 724fe65d72 Start feeds support. 2018-02-08 12:20:45 +03:00
John Preston 6796ac688a Apply web page media updates. 2017-12-31 12:55:08 +03:00
John Preston af552fb4c0 Replace base/task_queue with crl. 2017-12-31 00:28:38 +03:00
John Preston 2df4d19474 Move changelogs from ApiWrap to a separate module. 2017-12-29 21:17:07 +03:00
John Preston 5b4694a4eb Move text options constant to a separate module.
Also start MediaView group thumbs code.
2017-12-28 16:06:06 +03:00
John Preston 44014e62ba Move EditCaptionBox to a separate module. 2017-12-26 19:20:06 +03:00
John Preston 3b3a705a67 First working code for sending albums. 2017-12-26 19:20:06 +03:00
John Preston 92333e982c Move message components to history_item_components.
Also fix channel signatures rendering.
2017-12-18 19:52:36 +04:00
John Preston b8204a317d Testing crl (concurrency runtime library). 2017-12-17 23:05:00 +04:00
John Preston 656e4869e6 Move UnreadBadge to ui/unread_badge. 2017-12-17 15:04:47 +04:00
John Preston 4c9931ab02 Support grouped media rendering. 2017-12-16 20:50:42 +04:00
John Preston 97c15865a5 Move some code around.
Move logs:SignalHandlers to core/crash_reports:CrashReports.
Move all pre-launch windows to core/crash_report_window module.
Move some global code to core/launcher:Launcher.
It should replace settings / platform_specific module in some way.
2017-12-12 16:47:32 +04:00
John Preston 9bbcbd4bb3 Remove all legacy media overview code. 2017-12-08 22:34:26 +04:00
John Preston 5bc47e5203 Move shareContact and readServerHistory to ApiWrap.
Also allow non-confirming contact info sharing to Saved Messages.
2017-12-07 17:43:05 +04:00
John Preston 5eeb8143b6 Move EmptyUserpic from data_peer to empty_userpic. 2017-12-05 12:44:27 +04:00
John Preston 62568daffe Refactor NotifySettings in PeerData. 2017-12-04 21:48:45 +04:00
John Preston 301aa9572f Apply channel admin edition changes. 2017-12-02 15:07:27 +04:00
John Preston 2432845df2 Optimize and rename base::weak_unique_ptr.
Rename base::enable_weak_from_this -> base::has_weak_ptr.
Rename base::weak_unique_ptr -> base::weak_ptr.
Rename base::make_weak_unique -> base::make_weak.
Rename base/weak_unique_ptr.h -> base/weak_ptr.h
2017-11-30 21:33:27 +04:00
John Preston d014b47958 Move Info::TopBarOverride to Info::TopBar.
This allows to improve animations in shared media items selection.
2017-11-27 15:43:57 +04:00
John Preston 837dac50fa Fix build for the original range-v3. 2017-11-26 18:20:22 +04:00
John Preston 0ced28f991 Nice animations when selecting shared media items. 2017-11-24 19:47:09 +04:00
John Preston b337d54623 Use custom base::overload() helper. 2017-11-21 18:27:48 +04:00
John Preston d93c1ccbaa Improve compile time. 2017-11-21 14:20:52 +04:00
John Preston 6ca105a290 Minimal layer 72 support. 2017-11-20 23:54:05 +04:00
John Preston bef87c6dff Allow showing chat members in a special section. 2017-11-17 17:23:36 +04:00
John Preston 8dfccf55d1 Add shared media empty placeholders. 2017-11-16 07:59:12 +04:00
John Preston 3deea14559 Remove old shared media overview section.
Also move window/top_bar_widget to history/history_top_bar_widget.
2017-11-16 07:59:11 +04:00
John Preston bca9b3ca3f Extract a reusable Ui::ResizeArea class. 2017-11-16 07:59:11 +04:00
John Preston 8ff0120642 Add EditPeerInfoBox without saving. 2017-11-16 07:59:10 +04:00
John Preston 3998fad7ef Add manage supergroup / channel box. 2017-11-16 07:59:10 +04:00
John Preston fcf2b9d1a7 Add some more actions to info profile. 2017-11-16 07:59:10 +04:00
John Preston 8191ebfc49 Improve peer context menu for info. 2017-11-16 07:59:09 +04:00
John Preston 47a52b0587 Moved several modules from history/ to data/. 2017-11-16 07:59:09 +04:00
John Preston a6361d6221 Move common_groups info module. 2017-11-16 07:59:08 +04:00
John Preston 86ad15612a Use Info::Controller for the whole info section. 2017-11-16 07:59:08 +04:00
John Preston c9152b0b3a Cache media search results until empty query. 2017-11-16 07:59:08 +04:00
John Preston eb2719fad1 Added search to files and links shared media. 2017-11-16 07:59:08 +04:00
John Preston a27edcad1c Extract SparseIdsList module from SharedMedia.
This way it can be reused in search results management.
2017-11-16 07:59:08 +04:00
John Preston 101d4f6444 Use std::function for base::lambda implementation.
base::lambda becomes just std::function and base::lambda_once becomes
base::unique_function - a move-only wrapper around std::function.

This is required because Visual C++ 2017 15.4.1 has a compiler bug
with static member variables of class templates, they may collide.

The std::function uses inheritance and virtual functions instead of
custom vtables done by static members of class templates used in
custom base::lambda implementation, so they work fine.
2017-11-16 07:59:08 +04:00
John Preston b51f865c54 Save info members list state to memento. 2017-11-16 07:59:08 +04:00
John Preston be5f4c9a71 Allow delete / forward selected in shared media.
Also use PeerListBox with a chats list with global search controller
instead of HistoryHider for forward / share contact.
2017-11-16 07:59:07 +04:00
John Preston 7905694b31 Add tabs and other types links to Info::Media. 2017-11-16 07:59:06 +04:00
John Preston 0c4bda71fd Remove some unused / rare phrases. 2017-11-16 07:59:05 +04:00
John Preston d1687ab963 Improve info wrapping in section / layer.
Also move layerwidget to window/layer_widget.
Also replace ui/effects/widget_fade_wrap with ui/wrap/fade_wrap.
2017-11-16 07:59:05 +04:00
John Preston 292e57ffc7 Use PeerListBox content in info profile. 2017-11-16 07:59:04 +04:00
John Preston 1a0e524b49 Optimize third column (create it only once).
Before historyPeer and historyPeerCanWrite were independent, so we
created a new Info section for both of them changing.

Now we use Data::CanWriteValue(peer) and rpl::flatten_latest().
2017-11-16 07:59:04 +04:00
John Preston ffc20e4492 Divide structs into several data/ modules. 2017-11-16 07:59:04 +04:00
John Preston f2a5862714 Add members list to info profile. 2017-11-16 07:59:04 +04:00
John Preston faeb1483f2 Divide info_profile_lines in different modules. 2017-11-16 07:59:04 +04:00
John Preston a4c2138e74 Finalize move of info-profile modules. 2017-11-16 07:59:04 +04:00
John Preston 088d23d557 Start new Info section (profile + shared media). 2017-11-16 07:59:02 +04:00
John Preston c302219f9e Use rpl in some widgets and effects. 2017-11-16 07:59:02 +04:00
John Preston 487ddb5694 Add some rpl operators. 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 449986456e Add SharedMediaSliceMerged for migrated histories. 2017-11-16 07:59:02 +04:00
John Preston 2363a6bd44 Add SharedMediaSlice to observe shared media.
Start testing / using it in MediaView.
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 b873fee1cf Use rvalue references in rpl next / error. 2017-11-16 07:59:01 +04:00
John Preston 101fdb1fba Add event_stream for events with many consumers. 2017-11-16 07:59:01 +04:00
John Preston ebe4bbbf0f Add core rpl::producer/consumer implementation. 2017-11-16 07:59:01 +04:00
John Preston d46a5f693f Remove unused lang phrases and some code. 2017-09-28 19:18:27 +03:00
John Preston c76389e126 Allow to use base::lambda independently. 2017-09-03 15:45:49 +03:00
John Preston df64c972d8 Replace QFlags with base::flags. 2017-09-03 15:45:47 +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 a72453fb1b Remove ContactsBox and contacts_box module. 2017-08-30 19:15:30 +03:00
John Preston f7359093b4 Replace ContactsBox with PeerListBox in two cases.
- View contacts list in PeerListBox.
- Add participants when creating group / channel in PeerListBox.
2017-08-30 19:15:27 +03:00
John Preston bca444b92e Add base::optional as a wrapper of base::variant. 2017-08-30 19:15:21 +03:00
John Preston ae1dacb7d7 Add base/algorithm for range-based algorithms. 2017-08-30 19:15:21 +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
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 6f746c238a Search for messages from a specific user in group. 2017-08-01 21:38:01 +03: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 9bf40c927e Improve emoji suggestions and replace on send.
Bring recent emoji up in suggestions.
Apply saved skin color to emoji suggestions.
Write to recents when choosing emoji suggestion.
2017-07-26 15:55:04 +03:00
John Preston df2aeb0c58 Provide emoji suggestions as a service. 2017-07-26 15:55:03 +03:00
John Preston 8f8100af3a Add emoji autocomplete data and algorithm. 2017-07-26 15:55:01 +03:00
John Preston 9e73e22e13 Add channel members in ParticipantsBoxController.
Also remove MembersBox, it was replaced completely.
2017-07-14 09:46:57 +03:00
John Preston 0ae661edf0 Add channel / supergroup admin event log filter. 2017-07-04 16:31:18 +03:00
John Preston 4993ff1921 Finalize rename / move. 2017-06-30 09:21:45 +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 fee8690ca6 Channel action log items display and layout. 2017-06-30 09:21:41 +03:00
John Preston 25a718c54b Start recent channel actions log section. 2017-06-30 09:21:41 +03:00
John Preston 9e8e49b8d9 Add other search to admin/ban/restrict in channel.
Search in chats / contacts / global in AddParticipantBoxController.
Also move all channel participants box controllers to another module.
2017-06-29 11:40:21 +03:00
John Preston 513a9f8d45 Add rich supergroup/channel admin support. 2017-06-29 11:40:10 +03:00
John Preston 8ae159dd66 Add special dc options config request. 2017-06-29 11:40:07 +03:00
John Preston f5353080e7 Use Qt UI language if system was not determined.
Also rename platform/mac/specific_mac.cpp to .mm
2017-06-29 11:39:47 +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 b7550f63c9 Add a floating player for round video messages. 2017-05-24 16:25:15 +03:00
John Preston 6f89d01452 Add new Media::Audio::Instance for audio tracks.
Move some audio-related code from Media::Player to Media::Audio.
2017-05-09 23:46:29 +03:00
John Preston 11525a1e50 Add RateCallBox for calls feedback collection. 2017-05-09 23:46:28 +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 60ac7572af Display name, status and emoji in Call Panel. 2017-05-09 23:46:17 +03:00
John Preston 4925af69e2 Add Calls::Panel and handle incoming calls. 2017-05-09 23:46:15 +03:00
John Preston 0a716036c2 Extract Calls::Call. Add a call button to TopBar. 2017-05-09 23:46:14 +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 647ea44881 Extract TabbedSelector from TabbedPanel.
Now we can use TabbedSelector separately, not only inside the panel.
2017-04-10 12:08:55 +03:00
John Preston 26b05cf844 Finalize rename / move.
Also removed non-existent emoji_section module from GYP.
2017-04-08 17:05:19 +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 34ab04cbe6 Add lambda-based checked timers.
Also ApiWrap is now not a QObject.
2017-04-07 18:13:21 +03:00
John Preston 5444b8166c Finalize rename / move of files. 2017-04-07 18:13:18 +03:00
John Preston 6003ac2132 Add base::weak_unique_ptr<T> template class.
Sometimes you don't need shared ownership (shared_ptr), but you
still need to be able to have weak pointers to an object.

Now you can derive the object from base::enable_weak_from_this
and use base::weak_unique_ptr<T> after that.
2017-04-03 14:08:36 +03:00
John Preston 6d27172b20 Move [Emoji|Sticker]PanInner to separate modules.
Now we have three separate [Emoji|Stickers|Gifs]ListWidget.
2017-03-31 15:48:03 +03:00
John Preston bed3aa1a7f Finalize rename / move of files.
Also rename EmojiPan to EmojiPanel.
2017-03-31 15:48:02 +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 e9ec09b91a Add MTP::Sender to replace RPCSender some day.
Also use c++1z language standard in Xcode build.
Also treat warnings as errors.
2017-03-23 14:37:38 +03:00
John Preston bd121752f1 Change your account phone number in Settings. 2017-03-21 20:13:34 +03:00
John Preston facc729234 Edit account self destruct time in Settings.
Also accept lambda_once in rpcDone() and rpcFail() lambda wrappers.
2017-03-20 23:05:38 +03:00
John Preston 85fd117675 Add EditPrivacyBox. Edit last seen privacy.
Selecting exception users is not supported yet.
2017-03-18 12:49:45 +03:00
John Preston 6ad2cd38ed Generate scheme module by GYP action.
Add a new codegen action to generate MTP scheme from scheme.tl file.
2017-03-16 12:37:56 +03:00
John Preston b1ee91b06b Add blocked users box to Settings.
Start a general PeerListBox, it should replace both ContactsBox
and MembersBox in the future. Show blocked users list in it.
2017-03-14 13:58:36 +03:00
John Preston 929c55a2a1 Include only required moc_*.cpp in the build.
Use a python script to generate the list of sources to build.
Now we don't include moc_*.cpp files in build by default, instead
we list only non-empty ones.

If you change a header so that the corresponding moc_*.cpp changes
its emptyness you may need to gyp/refresh to apply this change.

This should speed up the build significantly on GCC.
2017-03-13 13:17:26 +03:00