mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-06-03 21:54:05 +02:00
Renamed swipe dialog action to quick dialog action.
This commit is contained in:
parent
b079c79390
commit
25ed8fe044
14 changed files with 161 additions and 158 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
||||
|
|
|
@ -790,4 +790,4 @@ dialogsPopularAppsAbout: FlatLabel(boxDividerLabel) {
|
|||
minWidth: 128px;
|
||||
}
|
||||
|
||||
dialogsSwipeActionSize: 20px;
|
||||
dialogsQuickActionSize: 20px;
|
||||
|
|
|
@ -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<UserId> 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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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<UserId> _openBotMainAppRequests;
|
||||
|
||||
Dialogs::Ui::SwipeContext _swipeContext;
|
||||
std::unique_ptr<Lottie::Icon> _swipeLottieIcon = nullptr;
|
||||
Dialogs::Ui::QuickActionContext _quickActionContext;
|
||||
std::unique_ptr<Lottie::Icon> _quickActionLottieIcon = nullptr;
|
||||
|
||||
RowDescriptor _chatPreviewRow;
|
||||
bool _chatPreviewScheduled = false;
|
||||
|
|
|
@ -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<Window::SessionController*> controller,
|
||||
not_null<PeerData*> 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<bool>(
|
||||
MuteMenu::ThreadDescriptor(history).isMutedValue()).current();
|
||||
MuteMenu::ThreadDescriptor(history).updateMutePeriod(isMuted
|
||||
? 0
|
||||
: std::numeric_limits<TimeId>::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<PeerData*> 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<bool>(
|
||||
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*> 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<bool>(
|
||||
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;
|
||||
}
|
||||
|
|
@ -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<Window::SessionController*> controller,
|
||||
not_null<PeerData*> peer,
|
||||
Ui::SwipeDialogAction action,
|
||||
Ui::QuickDialogAction action,
|
||||
FilterId filterId);
|
||||
|
||||
[[nodiscard]] QString ResolveSwipeDialogLottieIconName(
|
||||
[[nodiscard]] QString ResolveQuickDialogLottieIconName(
|
||||
not_null<PeerData*> peer,
|
||||
Ui::SwipeDialogAction action,
|
||||
Ui::QuickDialogAction action,
|
||||
FilterId filterId);
|
||||
|
||||
[[nodiscard]] Ui::SwipeDialogActionLabel ResolveSwipeDialogLabel(
|
||||
[[nodiscard]] Ui::QuickDialogActionLabel ResolveQuickDialogLabel(
|
||||
not_null<History*> 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
|
|
@ -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,
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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<QImage*> *chatsFilterTags = nullptr;
|
||||
SwipeContext swipeContext;
|
||||
QuickActionContext quickActionContext;
|
||||
not_null<const style::DialogRow*> st;
|
||||
TopicJumpCache *topicJumpCache = nullptr;
|
||||
Data::Folder *folder = nullptr;
|
||||
|
|
|
@ -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
|
|
@ -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<Ui::RadioenumGroup<Type>>(
|
||||
Core::App().settings().swipeDialogAction());
|
||||
Core::App().settings().quickDialogAction());
|
||||
container->add(
|
||||
object_ptr<Ui::SettingsButton>(
|
||||
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();
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue