Commit Graph

526 Commits

Author SHA1 Message Date
John Preston 1f070da202 Recount grouping after leader caption edit. 2017-12-16 20:50:43 +04:00
John Preston 963e969d2a Fix selected messages copy with grouping. 2017-12-16 20:50:43 +04:00
John Preston 4734700ac5 Improve opening history with one loaded message.
When we add just one last item, like we do while loading dialogs,
we want to remove a single added grouped media, otherwise it will
jump once we open the message history (first we show only that
media, then we load the rest of the group and show the group).

That way when we open the message history we show nothing until a
whole history part is loaded, it certainly will contain the group.
2017-12-16 20:50:43 +04:00
John Preston d9da2edd7c Improve grouped media display. 2017-12-16 20:50:43 +04:00
John Preston 6d48ca850e Correct reply/forward/delete for grouped items. 2017-12-16 20:50:43 +04:00
John Preston 3e7ac7eb26 Use first media caption for group caption. 2017-12-16 20:50:43 +04:00
John Preston 520a644150 Fix drag by date of grouped media. 2017-12-16 20:50:43 +04:00
John Preston 3a56b7cabd Forward grouped items. Fast share grouped items. 2017-12-16 20:50:43 +04:00
John Preston efa72578cd Fix grouped media display in MediaView. 2017-12-16 20:50:43 +04:00
John Preston b6087ce7ce Select/forward/delete group of messages. 2017-12-16 20:50:42 +04:00
John Preston 537400d8b2 Enable distinct selecting of grouped media. 2017-12-16 20:50:42 +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 8b69e6ab99 Rename some methods in DocumentData.
Also fix voice message mark as read when autoplaying after previous.
Also show play icon and don't show playlist for audio files that do
not have shared music files attributes but have audio file mime type.
2017-12-10 14:28:04 +04:00
John Preston 4ef3de5287 Always specify seek position in TimeMs.
This way it won't rely on the sample rate of the audio file.

Fixes #4139.
2017-12-10 12:52:38 +04:00
John Preston 9fff2bf4c7 Fix one more crash in HistoryWidget. 2017-12-10 00:32:35 +04:00
John Preston 6d62673e9e Fix crash in HistoryWidget. 2017-12-09 22:21:38 +04:00
John Preston 5a7d8bcffb Add audio playlist using Info::Media::ListWidget. 2017-12-09 19:13:06 +04:00
John Preston 63e89ddc9a Fix replies by stickers and inline bot results. 2017-12-09 16:39:41 +04:00
John Preston 4e2c8bbc26 Use SharedMediaMergedViewer() for audio player.
That way audio files and voice/video messages will play in context
(one after another with ability to go to next or previous in player)
almost always, no matter at what part of message history we are.
2017-12-09 14:02:51 +04:00
John Preston 9bbcbd4bb3 Remove all legacy media overview code. 2017-12-08 22:34:26 +04:00
John Preston 951db83ab6 Index bad audio files to Shared Files Overview.
Fixes #4120.
2017-12-08 19:53:04 +04:00
John Preston 90f5f7dded Fix possible crash in timer timeout values. 2017-12-08 18:15:00 +04:00
John Preston aef88559e8 Fix possible crash in HistoryWidget.
Stack in crash reports leads to something like that:
- HistoryWidget::showHistory
- _scroll->setOwnedWidget
- Ui::ScrollArea::onScrolled
- sendSynteticMouseEvent
- Info::Media::ListWidget::enterEventHook
- Info::Media::ListWidget::mouseAction?Update
- Overview::Layout::ItemBase::clickHandlerActiveChanged
- AuthSessionData::requestItemRepaint
- HistoryWidget::repaintHistoryItem

Workaround:
- Don't accept repaint item requests while _list is not set yet.
2017-12-08 17:54:55 +04:00
John Preston f8963d7e4b Read silent flag from PeerData, not SilentToggle. 2017-12-08 15:52:12 +04:00
John Preston 79398fe6cf Add call button to Info::Profile top bar. 2017-12-07 19:17:53 +04:00
John Preston 355747d7bf Remove send actions in Saved Messages.
Fixes #4122.
2017-12-07 18:27:59 +04:00
John Preston 54984efa0a Fix small files layout in Saved Messages.
Minimal message and media width are less because of the goto-button.
2017-12-07 17:43:05 +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 f0a03223e8 Share contact instantly to Saved Messages. 2017-12-07 12:56:10 +04:00
John Preston c6d3fd883a Display right action button not too high. 2017-12-06 18:15:41 +04:00
John Preston 1473c14668 Forward messages to Saved Messages instantly. 2017-12-06 17:56:40 +04:00
John Preston 6764a3cc86 Replace SelectedItemSet with MessageIdsList.
Use vector<FullMsgId> everywhere instead QMap<..,HistoryItem*>.
The old way the app crashed in case some messages were deleted.
If the items are needed use HistoryItemsList=vector<HistoryItem*>.
2017-12-06 14:13:38 +04:00
John Preston 8b3d203861 Display saved messages senders correctly. 2017-12-05 20:38:13 +04:00
John Preston 85d8273009 Implement correct saved messages history layout.
Forwarded info is displayed as a message author info (name/photo).
Outgoing messages without forwarded info are displayed as out().
Messages with save_from_ info have a button for GoToOriginal().
2017-12-05 20:14:28 +04:00
John Preston f8e094392f Fix ripple animation glitch in history top bar. 2017-12-05 20:14:15 +04:00
John Preston 46bafc2dcc Support Saved messages in chats list and forwards. 2017-12-05 18:07:01 +04:00
John Preston 1d85c8a6b6 API scheme updated to layer 73. 2017-12-05 12:44:27 +04:00
John Preston 5eeb8143b6 Move EmptyUserpic from data_peer to empty_userpic. 2017-12-05 12:44:27 +04:00
John Preston 68009b6fba Refactor userpic storage and access in PeerData. 2017-12-05 11:58:18 +04:00
John Preston 62568daffe Refactor NotifySettings in PeerData. 2017-12-04 21:48:45 +04:00
John Preston e1c68892d4 Show third column only when explicitly requested.
This allows you to show info in layer from mention links.
2017-12-04 13:42:05 +04:00
John Preston f3c8da4819 Request all admins when first opening a supergroup. 2017-12-03 20:43:42 +04:00
John Preston da77c10f60 Hide three-dot peer menu when peer changes. 2017-12-02 15:11:01 +04:00
John Preston 301aa9572f Apply channel admin edition changes. 2017-12-02 15:07:27 +04:00
John Preston 675499df4d Fix render bug in single column layout. 2017-12-02 14:22:48 +04:00
John Preston 85b3d3f64d Display admin badges in supergroups.
Also prefer std containers to Qt and OrderedSet in data_peer.
2017-12-01 22:38:44 +04:00
John Preston 3bdce06e19 Use peer colors uniformly with mobile apps. 2017-12-01 14:21:40 +04:00
John Preston afd1548533 Attempt to fix a crash in touch event handlers. 2017-11-30 22:18:39 +04:00
John Preston 595af2c6d9 Rename weak(QObject*) to make_weak(QObject*). 2017-11-30 22:04:13 +04:00
John Preston 2bbf17b672 Fix t.me/share links.
Regression was introduced in ffc20e4492.

Fixes #4099.
2017-11-30 21:47:58 +04:00
John Preston a0c8d522ef Save window extension on layer->section migration.
If the third section is shown inside the existing window remember
it as a zero window extension or third section show. That way it
will hide correctly when it is closed by X button.

Partially fixes #4091.
2017-11-30 17:08:51 +04:00
John Preston 2e972fb678 Hide "Delete for {user}" in chats with bots.
Fixes #3818.
2017-11-30 15:06:30 +04:00
John Preston ad6ddcb507 Fix crash in selecting unsent messages.
Also add some more checks in file downloads and serialization.
2017-11-30 11:14:31 +04:00
John Preston 196ff7f4c1 Don't apply count from getParticipants(Recent). 2017-11-28 22:30:01 +04:00
John Preston a63abe5154 Add some more crash debug information. 2017-11-28 14:05:11 +04:00
John Preston ddd57517df Fix text overflow in history top bar. 2017-11-27 19:09:26 +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 20c9280ada Add some more debug info for crashes. 2017-11-24 21:41:31 +04:00
John Preston 0ced28f991 Nice animations when selecting shared media items. 2017-11-24 19:47:09 +04:00
John Preston efdba3a482 Handle errors in getMessages(). 2017-11-23 19:41:13 +04:00
John Preston f477aea2a5 Add some more debug info for crashes. 2017-11-22 15:10:11 +04:00
John Preston 2387b66e86 Allow supergroup members to clear history. 2017-11-22 12:04:24 +04:00
John Preston 75d8d01b17 Allow pinned messages in channels. 2017-11-21 18:27:48 +04:00
John Preston b337d54623 Use custom base::overload() helper. 2017-11-21 18:27:48 +04:00
John Preston 6ca105a290 Minimal layer 72 support. 2017-11-20 23:54:05 +04:00
John Preston 04a1cff24a Fix wrong unread counter in history top bar. 2017-11-19 15:52:15 +04:00
John Preston de15da8a93 Improve info layer presentation. 2017-11-19 15:37:15 +04:00
John Preston 59938791ef Closed beta 1.1.23.6: Log crash info. 2017-11-18 00:04:22 +04:00
John Preston 88d7f172ca Improve unread counter for HistoryTopBarWidget. 2017-11-17 18:54:01 +04:00
John Preston cf977cb41a Improve history -> profile top bar navigation. 2017-11-16 19:24:01 +04:00
John Preston 830c6a4894 Replace PeerAvatarButton with UserpicButton. 2017-11-16 07:59:11 +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 fe9630bb20 Allow to resize third column. 2017-11-16 07:59:11 +04:00
John Preston 0255d0c59e Support any size in the tabbed selector. 2017-11-16 07:59:10 +04:00
John Preston dbb011fc56 Add members link in info for channel admins. 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 5f0ba48309 Add top bar menu and notifications toggle. 2017-11-16 07:59:10 +04:00
John Preston 9743dc1ffb Add some more actions to three dot menu. 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 a05c7a815a Fix animation lag in info layer wrap. 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 9c01bbca95 Fix invoice amount display. 2017-11-16 07:59:09 +04:00
John Preston 554eb3a342 Move stickers state variables to AuthSessionData.
Also allow to click on the selected set when choosing megagroup
sticker set and allow to paste a t.me link to the set there.
2017-11-16 07:59:09 +04:00
John Preston aec496d520 Remove RTL Override symbols from filenames. 2017-11-16 07:59:09 +04:00
John Preston 39c5898fa4 Save media search state to memento. 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 b51f865c54 Save info members list state to memento. 2017-11-16 07:59:08 +04:00
John Preston fb46c33d7f Add context menu support to info members list. 2017-11-16 07:59:07 +04:00
John Preston 54cc3e6315 Shared media multiple items selection. 2017-11-16 07:59:07 +04:00
John Preston f107866b42 Add basic click handler support to info shared media. 2017-11-16 07:59:06 +04:00
John Preston 7f3c97fb01 Add info media preloading to both sides. 2017-11-16 07:59:06 +04:00
John Preston 65cc4d3fbc Support item repaint in Info media overview. 2017-11-16 07:59:06 +04:00
John Preston ecbc0ae57e Show info media overview using Overview::Layout. 2017-11-16 07:59:06 +04:00
John Preston 7905694b31 Add tabs and other types links to Info::Media. 2017-11-16 07:59:06 +04:00
John Preston 76b8078bd9 Save section expand state in Info memento. 2017-11-16 07:59:06 +04:00
John Preston 93c15e5ee6 Use internal section stack in Info::WrapWidget. 2017-11-16 07:59:06 +04:00
John Preston 83850d9b86 Change *[Fast|Animated] to anim::type in FadeWrap. 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 6861059d18 Fix build for old OS X with Qt 5.3.2 2017-11-16 07:59:05 +04:00
John Preston fddcdf359b Use not type-erased producers in code. 2017-11-16 07:59:05 +04:00
John Preston 086e46c162 Add and use only rpl::start_with_*() methods. 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 b9fb9af74f Info shared media and common groups counters. 2017-11-16 07:59:04 +04:00
John Preston e1ba9f8ff8 Hide send message in Info for current chat. 2017-11-16 07:59:04 +04:00
John Preston 6d0dbebda9 Fix tabbed selector section / panel exchange. 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 48cbdd9d40 Don't toggle tabbed section from OneColumn. 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 088d23d557 Start new Info section (profile + shared media). 2017-11-16 07:59:02 +04:00
John Preston fbcd5e2f1e Try to use const-ref better in rpl. 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 873ccf8096 Implement SharedMediaWithLastViewer using rpl. 2017-11-16 07:59:02 +04:00
John Preston 696478843e Implement UserPhotosViewer using rpl. 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 68a0e32a3d Add SharedMediaSliceWithLast for chat photos. 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 d46a5f693f Remove unused lang phrases and some code. 2017-09-28 19:18:27 +03:00
visuve 08e3a54a58 Mark missing ctors deleted
- Satisfy the rule of five

Signed-off-by: Veli-Matti Visuri <veli-matti.visuri@cerescon.fi> (github: visuve)
2017-09-28 18:23:42 +03:00
John Preston 7ae1ef0a1a Migrate to VS2017. 2017-09-06 17:11:06 +03:00
John Preston c09fbcfeb3 Display author photo / name in search results. 2017-09-05 20:21:56 +03:00
John Preston 2e374e68c5 Fix working with layers.
Regression was introduced in df64c97.

New base::flags work correctly only if all mutually exclusive flag
values use mutually exclusive bits (a & b == 0 for exclusive (a, b)).

Closes #3856.
2017-09-03 22:49:33 +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 20efa47126 Fix layout for the log entries of caption edits. 2017-08-30 19:15:52 +03:00
John Preston 5a1d52f82e Fix unread mentions navigation issues.
When the unread bar was destroyed we first jumped to the bottom
of the history by updateHistoryGeometry() and only after that
animated scroll to the desired message started. The last messages
were always painted (and marked as read) in that case.
2017-08-30 19:15:51 +03:00
John Preston 4c604b34c1 Allow service messages to be unread mentions. 2017-08-30 19:15:50 +03:00
John Preston 5964261db5 Allow to view sticker set from admin event log. 2017-08-30 19:15: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 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 7df63db9b3 Hide "Ban Users" admin rights changes in channels. 2017-08-30 19:15:32 +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 012d59ab42 Use nullptr instead of std::unique_ptr<Type>(). 2017-08-30 19:15:25 +03:00
John Preston 71e0e6ac4d Mark history as read at the bottom in any case. 2017-08-30 19:15:22 +03:00
John Preston bca444b92e Add base::optional as a wrapper of base::variant. 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 dd9d604966 Fix incorrect scroll jumps.
If we invoke showHistory(h, msgId) several times we call
forgetScrollState() for this history being on the same scroll place.

To compute it again we need to call visibleAreaUpdated() even if
the real scroll position was not changed.
2017-08-25 14:39:29 +03:00