From 1a462f4d2627b1c1fa063f4a1f54695a57a4504f Mon Sep 17 00:00:00 2001 From: RadRussianRus Date: Mon, 9 Mar 2020 20:43:26 +0300 Subject: [PATCH] Option to always show top bar userpic --- Telegram/SourceFiles/core/kotato_settings.cpp | 6 ++++++ .../history/view/history_view_top_bar_widget.cpp | 11 +++++++++-- Telegram/SourceFiles/settings.cpp | 1 + Telegram/SourceFiles/settings.h | 1 + 4 files changed, 17 insertions(+), 2 deletions(-) diff --git a/Telegram/SourceFiles/core/kotato_settings.cpp b/Telegram/SourceFiles/core/kotato_settings.cpp index 292f70f21..a8dfacc9e 100644 --- a/Telegram/SourceFiles/core/kotato_settings.cpp +++ b/Telegram/SourceFiles/core/kotato_settings.cpp @@ -323,6 +323,10 @@ bool Manager::readCustomFile() { cSetUserpicCornersType(v); } }); + + ReadBoolOption(settings, "always_show_top_userpic", [&](auto v) { + cSetShowTopBarUserpic(v); + }); return true; } @@ -365,6 +369,7 @@ void Manager::writeDefaultFile() { settings.insert(qsl("no_taskbar_flash"), cNoTaskbarFlashing()); settings.insert(qsl("recent_stickers_limit"), RecentStickersLimit()); settings.insert(qsl("userpic_corner_type"), cUserpicCornersType()); + settings.insert(qsl("always_show_top_userpic"), cShowTopBarUserpic()); auto settingsScales = QJsonArray(); settings.insert(qsl("scales"), settingsScales); @@ -428,6 +433,7 @@ void Manager::writeCurrentSettings() { settings.insert(qsl("no_taskbar_flash"), cNoTaskbarFlashing()); settings.insert(qsl("recent_stickers_limit"), RecentStickersLimit()); settings.insert(qsl("userpic_corner_type"), cUserpicCornersType()); + settings.insert(qsl("always_show_top_userpic"), cShowTopBarUserpic()); auto settingsScales = QJsonArray(); auto currentScales = cInterfaceScales(); diff --git a/Telegram/SourceFiles/history/view/history_view_top_bar_widget.cpp b/Telegram/SourceFiles/history/view/history_view_top_bar_widget.cpp index 0ca90dc9c..08c7c75c7 100644 --- a/Telegram/SourceFiles/history/view/history_view_top_bar_widget.cpp +++ b/Telegram/SourceFiles/history/view/history_view_top_bar_widget.cpp @@ -569,13 +569,20 @@ void TopBarWidget::updateControlsGeometry() { _clear->moveToRight(st::topBarActionSkip, selectedButtonsTop); if (_back->isHidden()) { - _leftTaken = st::topBarArrowPadding.right(); + if (cShowTopBarUserpic()) { + _leftTaken = st::topBarActionSkip; + } else { + _leftTaken = st::topBarArrowPadding.right(); + } } else { const auto smallDialogsColumn = _activeChat.folder() && (width() < _back->width() + _search->width()); _leftTaken = smallDialogsColumn ? (width() - _back->width()) / 2 : 0; _back->moveToLeft(_leftTaken, otherButtonsTop); _leftTaken += _back->width(); + } + + if (!_back->isHidden() || cShowTopBarUserpic()) { if (_info && !_info->isHidden()) { _info->moveToLeft(_leftTaken, otherButtonsTop); _leftTaken += _info->width(); @@ -630,7 +637,7 @@ void TopBarWidget::updateControlsVisibility() { || _activeChat.folder(); _back->setVisible(backVisible); if (_info) { - _info->setVisible(Adaptive::OneColumn()); + _info->setVisible(cShowTopBarUserpic() || Adaptive::OneColumn()); } if (_unreadBadge) { _unreadBadge->show(); diff --git a/Telegram/SourceFiles/settings.cpp b/Telegram/SourceFiles/settings.cpp index 6a043a002..8e859a54b 100644 --- a/Telegram/SourceFiles/settings.cpp +++ b/Telegram/SourceFiles/settings.cpp @@ -317,3 +317,4 @@ rpl::producer RecentStickersLimitChanges() { } int gUserpicCornersType = 3; +bool gShowTopBarUserpic = false; diff --git a/Telegram/SourceFiles/settings.h b/Telegram/SourceFiles/settings.h index 73a0d3b26..dce080b97 100644 --- a/Telegram/SourceFiles/settings.h +++ b/Telegram/SourceFiles/settings.h @@ -247,3 +247,4 @@ void SetRecentStickersLimit(int limit); [[nodiscard]] rpl::producer RecentStickersLimitChanges(); DeclareSetting(int, UserpicCornersType); +DeclareSetting(bool, ShowTopBarUserpic);