diff --git a/Telegram/CMakeLists.txt b/Telegram/CMakeLists.txt index 24b7ed6722..2e669d6324 100644 --- a/Telegram/CMakeLists.txt +++ b/Telegram/CMakeLists.txt @@ -682,14 +682,14 @@ PRIVATE dialogs/dialogs_main_list.h dialogs/dialogs_pinned_list.cpp dialogs/dialogs_pinned_list.h + dialogs/dialogs_quick_action.cpp + dialogs/dialogs_quick_action.h dialogs/dialogs_row.cpp dialogs/dialogs_row.h dialogs/dialogs_search_from_controllers.cpp dialogs/dialogs_search_from_controllers.h dialogs/dialogs_search_tags.cpp dialogs/dialogs_search_tags.h - dialogs/dialogs_swipe_action.cpp - dialogs/dialogs_swipe_action.h dialogs/dialogs_widget.cpp dialogs/dialogs_widget.h editor/color_picker.cpp diff --git a/Telegram/SourceFiles/core/core_settings.cpp b/Telegram/SourceFiles/core/core_settings.cpp index 08e04273d8..26a88cef8c 100644 --- a/Telegram/SourceFiles/core/core_settings.cpp +++ b/Telegram/SourceFiles/core/core_settings.cpp @@ -402,7 +402,7 @@ QByteArray Settings::serialize() const { << SerializeVideoQuality(_videoQuality) << qint32(_ivZoom.current()) << qint32(_systemDarkModeEnabled.current() ? 1 : 0) - << qint32(_swipeDialogAction); + << qint32(_quickDialogAction); } Ensures(result.size() == size); @@ -531,7 +531,7 @@ void Settings::addFromSerialized(const QByteArray &serialized) { qint32 recordVideoMessages = _recordVideoMessages ? 1 : 0; quint32 videoQuality = SerializeVideoQuality(_videoQuality); quint32 chatFiltersHorizontal = _chatFiltersHorizontal.current() ? 1 : 0; - quint32 swipeDialogAction = quint32(_swipeDialogAction); + quint32 quickDialogAction = quint32(_quickDialogAction); stream >> themesAccentColors; if (!stream.atEnd()) { @@ -861,7 +861,7 @@ void Settings::addFromSerialized(const QByteArray &serialized) { stream >> systemDarkModeEnabled; } if (!stream.atEnd()) { - stream >> swipeDialogAction; + stream >> quickDialogAction; } if (stream.status() != QDataStream::Ok) { LOG(("App Error: " @@ -1084,7 +1084,7 @@ void Settings::addFromSerialized(const QByteArray &serialized) { _recordVideoMessages = (recordVideoMessages == 1); _videoQuality = DeserializeVideoQuality(videoQuality); _chatFiltersHorizontal = (chatFiltersHorizontal == 1); - _swipeDialogAction = Dialogs::Ui::SwipeDialogAction(swipeDialogAction); + _quickDialogAction = Dialogs::Ui::QuickDialogAction(quickDialogAction); } QString Settings::getSoundPath(const QString &key) const { @@ -1476,7 +1476,7 @@ void Settings::resetOnLastLogout() { _recordVideoMessages = false; _videoQuality = {}; _chatFiltersHorizontal = false; - _swipeDialogAction = Dialogs::Ui::SwipeDialogAction::Disabled; + _quickDialogAction = Dialogs::Ui::QuickDialogAction::Disabled; _recentEmojiPreload.clear(); _recentEmoji.clear(); @@ -1664,12 +1664,12 @@ void Settings::setChatFiltersHorizontal(bool value) { _chatFiltersHorizontal = value; } -Dialogs::Ui::SwipeDialogAction Settings::swipeDialogAction() const { - return _swipeDialogAction; +Dialogs::Ui::QuickDialogAction Settings::quickDialogAction() const { + return _quickDialogAction; } -void Settings::setSwipeDialogAction(Dialogs::Ui::SwipeDialogAction action) { - _swipeDialogAction = action; +void Settings::setQuickDialogAction(Dialogs::Ui::QuickDialogAction action) { + _quickDialogAction = action; } } // namespace Core diff --git a/Telegram/SourceFiles/core/core_settings.h b/Telegram/SourceFiles/core/core_settings.h index 9492037fa2..bcfa4d05b9 100644 --- a/Telegram/SourceFiles/core/core_settings.h +++ b/Telegram/SourceFiles/core/core_settings.h @@ -9,7 +9,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "core/core_settings_proxy.h" #include "media/media_common.h" -#include "dialogs/ui/dialogs_swipe_context.h" +#include "dialogs/ui/dialogs_quick_action_context.h" #include "window/themes/window_themes_embedded.h" #include "ui/chat/attach/attach_send_files_way.h" #include "base/flags.h" @@ -947,8 +947,8 @@ public: [[nodiscard]] static PlaybackSpeed DeserializePlaybackSpeed( qint32 speed); - [[nodiscard]] Dialogs::Ui::SwipeDialogAction swipeDialogAction() const; - void setSwipeDialogAction(Dialogs::Ui::SwipeDialogAction); + [[nodiscard]] Dialogs::Ui::QuickDialogAction quickDialogAction() const; + void setQuickDialogAction(Dialogs::Ui::QuickDialogAction); void resetOnLastLogout(); @@ -1090,8 +1090,8 @@ private: bool _recordVideoMessages = false; - Dialogs::Ui::SwipeDialogAction _swipeDialogAction - = Dialogs::Ui::SwipeDialogAction::Disabled; + Dialogs::Ui::QuickDialogAction _quickDialogAction + = Dialogs::Ui::QuickDialogAction::Disabled; QByteArray _photoEditorBrush; diff --git a/Telegram/SourceFiles/dialogs/dialogs.style b/Telegram/SourceFiles/dialogs/dialogs.style index 2d4d01fda5..d537bfeada 100644 --- a/Telegram/SourceFiles/dialogs/dialogs.style +++ b/Telegram/SourceFiles/dialogs/dialogs.style @@ -790,4 +790,4 @@ dialogsPopularAppsAbout: FlatLabel(boxDividerLabel) { minWidth: 128px; } -dialogsSwipeActionSize: 20px; +dialogsQuickActionSize: 20px; diff --git a/Telegram/SourceFiles/dialogs/dialogs_inner_widget.cpp b/Telegram/SourceFiles/dialogs/dialogs_inner_widget.cpp index 3cd6952ce9..47791b964b 100644 --- a/Telegram/SourceFiles/dialogs/dialogs_inner_widget.cpp +++ b/Telegram/SourceFiles/dialogs/dialogs_inner_widget.cpp @@ -16,7 +16,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "dialogs/dialogs_widget.h" #include "dialogs/dialogs_search_from_controllers.h" #include "dialogs/dialogs_search_tags.h" -#include "dialogs/dialogs_swipe_action.h" +#include "dialogs/dialogs_quick_action.h" #include "history/view/history_view_context_menu.h" #include "history/history.h" #include "history/history_item.h" @@ -810,7 +810,7 @@ void InnerWidget::paintEvent(QPaintEvent *e) { const auto ms = crl::now(); const auto childListShown = _childListShown.current(); auto context = Ui::PaintContext{ - .swipeContext = _swipeContext, + .quickActionContext = _quickActionContext, .st = _st, .topicJumpCache = _topicJumpCache.get(), .folder = _openedFolder, @@ -4996,22 +4996,23 @@ rpl::producer InnerWidget::openBotMainAppRequests() const { } void InnerWidget::setSwipeContextData(Ui::Controls::SwipeContextData data) { - _swipeContext.data = std::move(data); - if (_swipeContext.data.msgBareId) { + _quickActionContext.data = std::move(data); + if (_quickActionContext.data.msgBareId) { constexpr auto kStartAnimateThreshold = 0.32; constexpr auto kResetAnimateThreshold = 0.24; - if (_swipeContext.data.ratio > kStartAnimateThreshold) { - if (_swipeContext.icon - && !_swipeContext.icon->frameIndex() - && !_swipeContext.icon->animating()) { - _swipeContext.icon->animate( + if (_quickActionContext.data.ratio > kStartAnimateThreshold) { + if (_quickActionContext.icon + && !_quickActionContext.icon->frameIndex() + && !_quickActionContext.icon->animating()) { + _quickActionContext.icon->animate( [=] { update(); }, 0, - _swipeContext.icon->framesCount()); + _quickActionContext.icon->framesCount()); } - } else if (_swipeContext.data.ratio < kResetAnimateThreshold) { - if (_swipeContext.icon && _swipeContext.icon->frameIndex()) { - _swipeContext.icon->jumpTo(0, [=] { update(); }); + } else if (_quickActionContext.data.ratio < kResetAnimateThreshold) { + if (_quickActionContext.icon + && _quickActionContext.icon->frameIndex()) { + _quickActionContext.icon->jumpTo(0, [=] { update(); }); } } update(); @@ -5034,24 +5035,24 @@ int64 InnerWidget::calcSwipeKey(int top) { return 0; } -void InnerWidget::prepareSwipeAction( +void InnerWidget::prepareQuickAction( int64 key, - Dialogs::Ui::SwipeDialogAction action) { + Dialogs::Ui::QuickDialogAction action) { if (key) { const auto peer = session().data().peer(PeerId(key)); - auto name = ResolveSwipeDialogLottieIconName(peer, action, _filterId); - _swipeLottieIcon = Lottie::MakeIcon({ + auto name = ResolveQuickDialogLottieIconName(peer, action, _filterId); + _quickActionLottieIcon = Lottie::MakeIcon({ .name = std::move(name), - .sizeOverride = Size(st::dialogsSwipeActionSize), + .sizeOverride = Size(st::dialogsQuickActionSize), }); - _swipeContext.icon = _swipeLottieIcon.get(); - _swipeContext.action = action; + _quickActionContext.icon = _quickActionLottieIcon.get(); + _quickActionContext.action = action; } else { - if (_swipeContext.icon) { - _swipeContext = {}; + if (_quickActionContext.icon) { + _quickActionContext = {}; } - if (_swipeLottieIcon) { - _swipeLottieIcon.reset(); + if (_quickActionLottieIcon) { + _quickActionLottieIcon.reset(); } } } diff --git a/Telegram/SourceFiles/dialogs/dialogs_inner_widget.h b/Telegram/SourceFiles/dialogs/dialogs_inner_widget.h index 846feac821..8b239d4440 100644 --- a/Telegram/SourceFiles/dialogs/dialogs_inner_widget.h +++ b/Telegram/SourceFiles/dialogs/dialogs_inner_widget.h @@ -11,7 +11,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "base/object_ptr.h" #include "base/timer.h" #include "dialogs/dialogs_key.h" -#include "dialogs/ui/dialogs_swipe_context.h" +#include "dialogs/ui/dialogs_quick_action_context.h" #include "data/data_messages.h" #include "ui/dragging_scroll_manager.h" #include "ui/effects/animations.h" @@ -40,7 +40,7 @@ class PopupMenu; class FlatLabel; struct ScrollToRequest; namespace Controls { -enum class SwipeDialogAction; +enum class QuickDialogAction; } // namespace Controls } // namespace Ui @@ -218,7 +218,7 @@ public: void setSwipeContextData(Ui::Controls::SwipeContextData data); [[nodiscard]] int64 calcSwipeKey(int top); - void prepareSwipeAction(int64 key, Dialogs::Ui::SwipeDialogAction); + void prepareQuickAction(int64 key, Dialogs::Ui::QuickDialogAction); protected: void visibleTopBottomUpdated( @@ -623,8 +623,8 @@ private: rpl::event_stream<> _refreshHashtagsRequests; rpl::event_stream _openBotMainAppRequests; - Dialogs::Ui::SwipeContext _swipeContext; - std::unique_ptr _swipeLottieIcon = nullptr; + Dialogs::Ui::QuickActionContext _quickActionContext; + std::unique_ptr _quickActionLottieIcon = nullptr; RowDescriptor _chatPreviewRow; bool _chatPreviewScheduled = false; diff --git a/Telegram/SourceFiles/dialogs/dialogs_swipe_action.cpp b/Telegram/SourceFiles/dialogs/dialogs_quick_action.cpp similarity index 55% rename from Telegram/SourceFiles/dialogs/dialogs_swipe_action.cpp rename to Telegram/SourceFiles/dialogs/dialogs_quick_action.cpp index 4a780ad956..8bafb68690 100644 --- a/Telegram/SourceFiles/dialogs/dialogs_swipe_action.cpp +++ b/Telegram/SourceFiles/dialogs/dialogs_quick_action.cpp @@ -5,9 +5,9 @@ the official desktop application for the Telegram messaging service. For license and copyright information please follow this link: https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL */ -#include "dialogs/dialogs_swipe_action.h" +#include "dialogs/dialogs_quick_action.h" -#include "dialogs/ui/dialogs_swipe_context.h" +#include "dialogs/ui/dialogs_quick_action_context.h" #include "apiwrap.h" #include "data/data_histories.h" #include "data/data_peer.h" @@ -22,144 +22,144 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL namespace Dialogs { -void PerformSwipeDialogAction( +void PerformQuickDialogAction( not_null controller, not_null peer, - Ui::SwipeDialogAction action, + Ui::QuickDialogAction action, FilterId filterId) { const auto history = peer->owner().history(peer); - if (action == Dialogs::Ui::SwipeDialogAction::Mute) { + if (action == Dialogs::Ui::QuickDialogAction::Mute) { const auto isMuted = rpl::variable( MuteMenu::ThreadDescriptor(history).isMutedValue()).current(); MuteMenu::ThreadDescriptor(history).updateMutePeriod(isMuted ? 0 : std::numeric_limits::max()); - } else if (action == Dialogs::Ui::SwipeDialogAction::Pin) { + } else if (action == Dialogs::Ui::QuickDialogAction::Pin) { const auto entry = (Dialogs::Entry*)(history); Window::TogglePinnedThread(controller, entry, filterId); - } else if (action == Dialogs::Ui::SwipeDialogAction::Read) { + } else if (action == Dialogs::Ui::QuickDialogAction::Read) { if (Window::IsUnreadThread(history)) { Window::MarkAsReadThread(history); } else if (history) { peer->owner().histories().changeDialogUnreadMark(history, true); } - } else if (action == Dialogs::Ui::SwipeDialogAction::Archive) { + } else if (action == Dialogs::Ui::QuickDialogAction::Archive) { history->session().api().toggleHistoryArchived( history, !Window::IsArchived(history), [] {}); - } else if (action == Dialogs::Ui::SwipeDialogAction::Delete) { + } else if (action == Dialogs::Ui::QuickDialogAction::Delete) { Window::DeleteAndLeaveHandler(controller, peer)(); } } -QString ResolveSwipeDialogLottieIconName( +QString ResolveQuickDialogLottieIconName( not_null peer, - Ui::SwipeDialogAction action, + Ui::QuickDialogAction action, FilterId filterId) { - if (action == Dialogs::Ui::SwipeDialogAction::Mute) { + if (action == Dialogs::Ui::QuickDialogAction::Mute) { const auto history = peer->owner().history(peer); const auto isMuted = rpl::variable( MuteMenu::ThreadDescriptor(history).isMutedValue()).current(); return isMuted ? u"swipe_unmute"_q : u"swipe_mute"_q; - } else if (action == Dialogs::Ui::SwipeDialogAction::Pin) { + } else if (action == Dialogs::Ui::QuickDialogAction::Pin) { const auto history = peer->owner().history(peer); const auto entry = (Dialogs::Entry*)(history); return entry->isPinnedDialog(filterId) ? u"swipe_unpin"_q : u"swipe_pin"_q; - } else if (action == Dialogs::Ui::SwipeDialogAction::Read) { + } else if (action == Dialogs::Ui::QuickDialogAction::Read) { const auto history = peer->owner().history(peer); return Window::IsUnreadThread(history) ? u"swipe_read"_q : u"swipe_unread"_q; - } else if (action == Dialogs::Ui::SwipeDialogAction::Archive) { + } else if (action == Dialogs::Ui::QuickDialogAction::Archive) { const auto history = peer->owner().history(peer); return Window::IsArchived(history) ? u"swipe_unarchive"_q : u"swipe_archive"_q; - } else if (action == Dialogs::Ui::SwipeDialogAction::Delete) { + } else if (action == Dialogs::Ui::QuickDialogAction::Delete) { return u"swipe_delete"_q; } return u"swipe_disabled"_q; } -Ui::SwipeDialogActionLabel ResolveSwipeDialogLabel( +Ui::QuickDialogActionLabel ResolveQuickDialogLabel( not_null history, - Ui::SwipeDialogAction action, + Ui::QuickDialogAction action, FilterId filterId) { - if (action == Dialogs::Ui::SwipeDialogAction::Mute) { + if (action == Dialogs::Ui::QuickDialogAction::Mute) { const auto isMuted = rpl::variable( MuteMenu::ThreadDescriptor(history).isMutedValue()).current(); return isMuted - ? Ui::SwipeDialogActionLabel::Unmute - : Ui::SwipeDialogActionLabel::Mute; - } else if (action == Dialogs::Ui::SwipeDialogAction::Pin) { + ? Ui::QuickDialogActionLabel::Unmute + : Ui::QuickDialogActionLabel::Mute; + } else if (action == Dialogs::Ui::QuickDialogAction::Pin) { const auto entry = (Dialogs::Entry*)(history); return entry->isPinnedDialog(filterId) - ? Ui::SwipeDialogActionLabel::Unpin - : Ui::SwipeDialogActionLabel::Pin; - } else if (action == Dialogs::Ui::SwipeDialogAction::Read) { + ? Ui::QuickDialogActionLabel::Unpin + : Ui::QuickDialogActionLabel::Pin; + } else if (action == Dialogs::Ui::QuickDialogAction::Read) { return Window::IsUnreadThread(history) - ? Ui::SwipeDialogActionLabel::Read - : Ui::SwipeDialogActionLabel::Unread; - } else if (action == Dialogs::Ui::SwipeDialogAction::Archive) { + ? Ui::QuickDialogActionLabel::Read + : Ui::QuickDialogActionLabel::Unread; + } else if (action == Dialogs::Ui::QuickDialogAction::Archive) { return Window::IsArchived(history) - ? Ui::SwipeDialogActionLabel::Unarchive - : Ui::SwipeDialogActionLabel::Archive; - } else if (action == Dialogs::Ui::SwipeDialogAction::Delete) { - return Ui::SwipeDialogActionLabel::Delete; + ? Ui::QuickDialogActionLabel::Unarchive + : Ui::QuickDialogActionLabel::Archive; + } else if (action == Dialogs::Ui::QuickDialogAction::Delete) { + return Ui::QuickDialogActionLabel::Delete; } - return Ui::SwipeDialogActionLabel::Disabled; + return Ui::QuickDialogActionLabel::Disabled; } -QString ResolveSwipeDialogLabel(Ui::SwipeDialogActionLabel action) { +QString ResolveQuickDialogLabel(Ui::QuickDialogActionLabel action) { switch (action) { - case Ui::SwipeDialogActionLabel::Mute: + case Ui::QuickDialogActionLabel::Mute: return tr::lng_settings_swipe_mute(tr::now); - case Ui::SwipeDialogActionLabel::Unmute: + case Ui::QuickDialogActionLabel::Unmute: return tr::lng_settings_swipe_unmute(tr::now); - case Ui::SwipeDialogActionLabel::Pin: + case Ui::QuickDialogActionLabel::Pin: return tr::lng_settings_swipe_pin(tr::now); - case Ui::SwipeDialogActionLabel::Unpin: + case Ui::QuickDialogActionLabel::Unpin: return tr::lng_settings_swipe_unpin(tr::now); - case Ui::SwipeDialogActionLabel::Read: + case Ui::QuickDialogActionLabel::Read: return tr::lng_settings_swipe_read(tr::now); - case Ui::SwipeDialogActionLabel::Unread: + case Ui::QuickDialogActionLabel::Unread: return tr::lng_settings_swipe_unread(tr::now); - case Ui::SwipeDialogActionLabel::Archive: + case Ui::QuickDialogActionLabel::Archive: return tr::lng_settings_swipe_archive(tr::now); - case Ui::SwipeDialogActionLabel::Unarchive: + case Ui::QuickDialogActionLabel::Unarchive: return tr::lng_settings_swipe_unarchive(tr::now); - case Ui::SwipeDialogActionLabel::Delete: + case Ui::QuickDialogActionLabel::Delete: return tr::lng_settings_swipe_delete(tr::now); default: return tr::lng_settings_swipe_disabled(tr::now); }; } -const style::color &ResolveSwipeActionBg( - Ui::SwipeDialogActionLabel action) { +const style::color &ResolveQuickActionBg( + Ui::QuickDialogActionLabel action) { switch (action) { - case Ui::SwipeDialogActionLabel::Delete: + case Ui::QuickDialogActionLabel::Delete: return st::attentionButtonFg; - case Ui::SwipeDialogActionLabel::Disabled: + case Ui::QuickDialogActionLabel::Disabled: return st::windowSubTextFgOver; - case Ui::SwipeDialogActionLabel::Mute: - case Ui::SwipeDialogActionLabel::Unmute: - case Ui::SwipeDialogActionLabel::Pin: - case Ui::SwipeDialogActionLabel::Unpin: - case Ui::SwipeDialogActionLabel::Read: - case Ui::SwipeDialogActionLabel::Unread: - case Ui::SwipeDialogActionLabel::Archive: - case Ui::SwipeDialogActionLabel::Unarchive: + case Ui::QuickDialogActionLabel::Mute: + case Ui::QuickDialogActionLabel::Unmute: + case Ui::QuickDialogActionLabel::Pin: + case Ui::QuickDialogActionLabel::Unpin: + case Ui::QuickDialogActionLabel::Read: + case Ui::QuickDialogActionLabel::Unread: + case Ui::QuickDialogActionLabel::Archive: + case Ui::QuickDialogActionLabel::Unarchive: default: return st::windowBgActive; }; } -const style::color &ResolveSwipeActionBgActive( - Ui::SwipeDialogActionLabel action) { +const style::color &ResolveQuickActionBgActive( + Ui::QuickDialogActionLabel action) { return st::windowSubTextFgOver; } diff --git a/Telegram/SourceFiles/dialogs/dialogs_swipe_action.h b/Telegram/SourceFiles/dialogs/dialogs_quick_action.h similarity index 54% rename from Telegram/SourceFiles/dialogs/dialogs_swipe_action.h rename to Telegram/SourceFiles/dialogs/dialogs_quick_action.h index db49ce31d5..e425cd08dc 100644 --- a/Telegram/SourceFiles/dialogs/dialogs_swipe_action.h +++ b/Telegram/SourceFiles/dialogs/dialogs_quick_action.h @@ -11,8 +11,8 @@ class History; class PeerData; namespace Dialogs::Ui { -enum class SwipeDialogAction; -enum class SwipeDialogActionLabel; +enum class QuickDialogAction; +enum class QuickDialogActionLabel; } // namespace Dialogs::Ui namespace Window { @@ -21,27 +21,27 @@ class SessionController; namespace Dialogs { -void PerformSwipeDialogAction( +void PerformQuickDialogAction( not_null controller, not_null peer, - Ui::SwipeDialogAction action, + Ui::QuickDialogAction action, FilterId filterId); -[[nodiscard]] QString ResolveSwipeDialogLottieIconName( +[[nodiscard]] QString ResolveQuickDialogLottieIconName( not_null peer, - Ui::SwipeDialogAction action, + Ui::QuickDialogAction action, FilterId filterId); -[[nodiscard]] Ui::SwipeDialogActionLabel ResolveSwipeDialogLabel( +[[nodiscard]] Ui::QuickDialogActionLabel ResolveQuickDialogLabel( not_null history, - Ui::SwipeDialogAction action, + Ui::QuickDialogAction action, FilterId filterId); -[[nodiscard]] QString ResolveSwipeDialogLabel(Ui::SwipeDialogActionLabel); +[[nodiscard]] QString ResolveQuickDialogLabel(Ui::QuickDialogActionLabel); -[[nodiscard]] const style::color &ResolveSwipeActionBg( - Ui::SwipeDialogActionLabel); -[[nodiscard]] const style::color &ResolveSwipeActionBgActive( - Ui::SwipeDialogActionLabel); +[[nodiscard]] const style::color &ResolveQuickActionBg( + Ui::QuickDialogActionLabel); +[[nodiscard]] const style::color &ResolveQuickActionBgActive( + Ui::QuickDialogActionLabel); } // namespace Dialogs diff --git a/Telegram/SourceFiles/dialogs/dialogs_widget.cpp b/Telegram/SourceFiles/dialogs/dialogs_widget.cpp index 793a10b92f..ab58ceed76 100644 --- a/Telegram/SourceFiles/dialogs/dialogs_widget.cpp +++ b/Telegram/SourceFiles/dialogs/dialogs_widget.cpp @@ -16,7 +16,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "dialogs/ui/dialogs_suggestions.h" #include "dialogs/dialogs_inner_widget.h" #include "dialogs/dialogs_search_from_controllers.h" -#include "dialogs/dialogs_swipe_action.h" +#include "dialogs/dialogs_quick_action.h" #include "dialogs/dialogs_key.h" #include "history/history.h" #include "history/history_item.h" @@ -692,8 +692,8 @@ void Widget::setupSwipeBack() { if (data.translation != 0) { if (data.translation < 0 && _inner - && (Core::App().settings().swipeDialogAction() - != Ui::SwipeDialogAction::Disabled)) { + && (Core::App().settings().quickDialogAction() + != Ui::QuickDialogAction::Disabled)) { _inner->setSwipeContextData(std::move(data)); } else { if (!_swipeBackData.callback) { @@ -727,17 +727,17 @@ void Widget::setupSwipeBack() { return Ui::Controls::SwipeHandlerFinishData(); } const auto isRightToLeft = direction == Qt::RightToLeft; - const auto action = Core::App().settings().swipeDialogAction(); - const auto isDisabled = action == Ui::SwipeDialogAction::Disabled; + const auto action = Core::App().settings().quickDialogAction(); + const auto isDisabled = action == Ui::QuickDialogAction::Disabled; if (!isRightToLeft && _inner) { if (const auto key = _inner->calcSwipeKey(top); key && !isDisabled) { - _inner->prepareSwipeAction(key, action); + _inner->prepareQuickAction(key, action); return Ui::Controls::SwipeHandlerFinishData{ .callback = [=, session = &session()] { auto callback = [=, peerId = PeerId(key)] { const auto peer = session->data().peer(peerId); - PerformSwipeDialogAction( + PerformQuickDialogAction( controller(), peer, action, diff --git a/Telegram/SourceFiles/dialogs/ui/dialogs_layout.cpp b/Telegram/SourceFiles/dialogs/ui/dialogs_layout.cpp index c22bc2dc40..8ab33852ef 100644 --- a/Telegram/SourceFiles/dialogs/ui/dialogs_layout.cpp +++ b/Telegram/SourceFiles/dialogs/ui/dialogs_layout.cpp @@ -20,7 +20,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "data/stickers/data_custom_emoji.h" #include "dialogs/dialogs_list.h" #include "dialogs/dialogs_three_state_icon.h" -#include "dialogs/dialogs_swipe_action.h" +#include "dialogs/dialogs_quick_action.h" #include "dialogs/ui/dialogs_video_userpic.h" #include "history/history.h" #include "history/history_item.h" @@ -71,10 +71,10 @@ const auto kPsaBadgePrefix = "cloud_lng_badge_psa_"; } const style::font &SwipeActionFont( - Dialogs::Ui::SwipeDialogActionLabel action, + Dialogs::Ui::QuickDialogActionLabel action, int availableWidth) { struct Entry final { - Dialogs::Ui::SwipeDialogActionLabel action; + Dialogs::Ui::QuickDialogActionLabel action; QString langId; style::font font; }; @@ -93,7 +93,7 @@ const style::font &SwipeActionFont( style::ConvertScale(i, style::Scale()), st::semiboldFont->flags(), st::semiboldFont->family()); - if (font->width(ResolveSwipeDialogLabel(action)) <= availableWidth + if (font->width(ResolveQuickDialogLabel(action)) <= availableWidth || i == kMinFontSize) { Fonts.emplace_back(Entry{ .action = action, @@ -395,9 +395,11 @@ void PaintRow( : context.currentBg; auto swipeTranslation = 0; if (history - && history->peer->id.value == context.swipeContext.data.msgBareId) { - if (context.swipeContext.data.translation != 0) { - swipeTranslation = context.swipeContext.data.translation * -2; + && (history->peer->id.value + == context.quickActionContext.data.msgBareId)) { + if (context.quickActionContext.data.translation != 0) { + swipeTranslation = context.quickActionContext.data.translation + * -2; } } if (swipeTranslation) { @@ -879,30 +881,30 @@ void PaintRow( swipeTranslation, geometry.height()); p.setClipRegion(swipeActionRect); - const auto labelType = ResolveSwipeDialogLabel( + const auto labelType = ResolveQuickDialogLabel( history, - context.swipeContext.action, + context.quickActionContext.action, context.filter); - p.fillRect(swipeActionRect, ResolveSwipeActionBg(labelType)); - if (context.swipeContext.data.reachRatio) { + p.fillRect(swipeActionRect, ResolveQuickActionBg(labelType)); + if (context.quickActionContext.data.reachRatio) { p.setPen(Qt::NoPen); - p.setBrush(ResolveSwipeActionBgActive(labelType)); + p.setBrush(ResolveQuickActionBgActive(labelType)); const auto r = swipeTranslation - * context.swipeContext.data.reachRatio; - const auto offset = st::dialogsSwipeActionSize - + st::dialogsSwipeActionSize / 2.; + * context.quickActionContext.data.reachRatio; + const auto offset = st::dialogsQuickActionSize + + st::dialogsQuickActionSize / 2.; p.drawEllipse(QPointF(geometry.width() - offset, offset), r, r); } const auto iconOffset = (geometry.height() - - st::dialogsSwipeActionSize) / 2; + - st::dialogsQuickActionSize) / 2; const auto topTranslation = iconOffset / 2.; p.translate(0, -topTranslation); - if (context.swipeContext.icon) { - context.swipeContext.icon->paint( + if (context.quickActionContext.icon) { + context.quickActionContext.icon->paint( p, rect::right(geometry) - iconOffset - - st::dialogsSwipeActionSize, + - st::dialogsQuickActionSize, iconOffset, st::premiumButtonFg->c); } @@ -911,12 +913,12 @@ void PaintRow( p.setBrush(Qt::NoBrush); const auto left = rect::right(geometry) - iconOffset * 2 - - st::dialogsSwipeActionSize; + - st::dialogsQuickActionSize; const auto availableWidth = geometry.width() - left; p.setFont(SwipeActionFont(labelType, availableWidth)); p.drawText( QRect(left, 0, availableWidth, geometry.height()), - ResolveSwipeDialogLabel(labelType), + ResolveQuickDialogLabel(labelType), style::al_bottom); } p.translate(0, topTranslation); diff --git a/Telegram/SourceFiles/dialogs/ui/dialogs_layout.h b/Telegram/SourceFiles/dialogs/ui/dialogs_layout.h index 9b905eac82..848ac257f1 100644 --- a/Telegram/SourceFiles/dialogs/ui/dialogs_layout.h +++ b/Telegram/SourceFiles/dialogs/ui/dialogs_layout.h @@ -7,7 +7,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL */ #pragma once -#include "dialogs/ui/dialogs_swipe_context.h" +#include "dialogs/ui/dialogs_quick_action_context.h" #include "ui/cached_round_corners.h" namespace style { @@ -55,7 +55,7 @@ struct TopicJumpCache { struct PaintContext { RightButton *rightButton = nullptr; std::vector *chatsFilterTags = nullptr; - SwipeContext swipeContext; + QuickActionContext quickActionContext; not_null st; TopicJumpCache *topicJumpCache = nullptr; Data::Folder *folder = nullptr; diff --git a/Telegram/SourceFiles/dialogs/ui/dialogs_swipe_context.h b/Telegram/SourceFiles/dialogs/ui/dialogs_quick_action_context.h similarity index 84% rename from Telegram/SourceFiles/dialogs/ui/dialogs_swipe_context.h rename to Telegram/SourceFiles/dialogs/ui/dialogs_quick_action_context.h index 03cfdadb64..a8f5a5e9ff 100644 --- a/Telegram/SourceFiles/dialogs/ui/dialogs_swipe_context.h +++ b/Telegram/SourceFiles/dialogs/ui/dialogs_quick_action_context.h @@ -17,7 +17,7 @@ namespace Dialogs::Ui { using namespace ::Ui; -enum class SwipeDialogAction { +enum class QuickDialogAction { Mute, Pin, Read, @@ -26,7 +26,7 @@ enum class SwipeDialogAction { Disabled, }; -enum class SwipeDialogActionLabel { +enum class QuickDialogActionLabel { Mute, Unmute, Pin, @@ -39,10 +39,10 @@ enum class SwipeDialogActionLabel { Disabled, }; -struct SwipeContext { +struct QuickActionContext { ::Ui::Controls::SwipeContextData data; Lottie::Icon *icon = nullptr; - SwipeDialogAction action; + QuickDialogAction action; }; } // namespace Dialogs::Ui diff --git a/Telegram/SourceFiles/settings/settings_chat.cpp b/Telegram/SourceFiles/settings/settings_chat.cpp index b6e8f495e4..bf803cc512 100644 --- a/Telegram/SourceFiles/settings/settings_chat.cpp +++ b/Telegram/SourceFiles/settings/settings_chat.cpp @@ -1280,20 +1280,20 @@ void SetupChatListSwipe( Ui::AddSkip(container); Ui::AddSubsectionTitle(container, tr::lng_settings_swipe_subsection()); - using Type = Dialogs::Ui::SwipeDialogAction; + using Type = Dialogs::Ui::QuickDialogAction; const auto group = std::make_shared>( - Core::App().settings().swipeDialogAction()); + Core::App().settings().quickDialogAction()); container->add( object_ptr( container, group->value() | rpl::map([](Type value) { - return ((value == Dialogs::Ui::SwipeDialogAction::Mute) + return ((value == Dialogs::Ui::QuickDialogAction::Mute) ? tr::lng_settings_swipe_mute - : (value == Dialogs::Ui::SwipeDialogAction::Pin) + : (value == Dialogs::Ui::QuickDialogAction::Pin) ? tr::lng_settings_swipe_pin - : (value == Dialogs::Ui::SwipeDialogAction::Read) + : (value == Dialogs::Ui::QuickDialogAction::Read) ? tr::lng_settings_swipe_read - : (value == Dialogs::Ui::SwipeDialogAction::Archive) + : (value == Dialogs::Ui::QuickDialogAction::Archive) ? tr::lng_settings_swipe_archive : tr::lng_settings_swipe_disabled)(); }) | rpl::flatten_latest(), @@ -1318,7 +1318,7 @@ void SetupChatListSwipe( addRadio(Type::Delete, tr::lng_settings_swipe_delete); addRadio(Type::Disabled, tr::lng_settings_swipe_disabled); box->addButton(tr::lng_settings_save(), [=] { - Core::App().settings().setSwipeDialogAction( + Core::App().settings().setQuickDialogAction( group->current()); Core::App().saveSettingsDelayed(); box->closeBox(); diff --git a/Telegram/cmake/td_ui.cmake b/Telegram/cmake/td_ui.cmake index 1e66b314a3..bf9053fed2 100644 --- a/Telegram/cmake/td_ui.cmake +++ b/Telegram/cmake/td_ui.cmake @@ -101,9 +101,9 @@ PRIVATE dialogs/ui/chat_search_empty.h dialogs/ui/chat_search_in.cpp dialogs/ui/chat_search_in.h + dialogs/ui/dialogs_quick_action_context.h dialogs/ui/dialogs_stories_list.cpp dialogs/ui/dialogs_stories_list.h - dialogs/ui/dialogs_swipe_context.h dialogs/ui/top_peers_strip.cpp dialogs/ui/top_peers_strip.h