From 47a4f4229d1da7c43486d735aa4ffa2102c236cc Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Mon, 12 Jul 2021 17:32:13 +0300 Subject: [PATCH] Added ability to hide attach controls. --- .../attach_abstract_single_file_preview.cpp | 3 +++ .../ui/chat/attach/attach_controls.cpp | 10 +++++++--- .../SourceFiles/ui/chat/attach/attach_controls.h | 1 + .../attach/attach_item_single_file_preview.cpp | 15 ++++++++++++++- 4 files changed, 25 insertions(+), 4 deletions(-) diff --git a/Telegram/SourceFiles/ui/chat/attach/attach_abstract_single_file_preview.cpp b/Telegram/SourceFiles/ui/chat/attach/attach_abstract_single_file_preview.cpp index dfcd9cb23..22735bf5e 100644 --- a/Telegram/SourceFiles/ui/chat/attach/attach_abstract_single_file_preview.cpp +++ b/Telegram/SourceFiles/ui/chat/attach/attach_abstract_single_file_preview.cpp @@ -33,6 +33,9 @@ AbstractSingleFilePreview::AbstractSingleFilePreview( } else if (type == AttachControls::Type::EditOnly) { _deleteMedia->hide(); _editMedia->show(); + } else if (type == AttachControls::Type::None) { + _deleteMedia->hide(); + _editMedia->hide(); } } diff --git a/Telegram/SourceFiles/ui/chat/attach/attach_controls.cpp b/Telegram/SourceFiles/ui/chat/attach/attach_controls.cpp index bdca508ad..3665acf29 100644 --- a/Telegram/SourceFiles/ui/chat/attach/attach_controls.cpp +++ b/Telegram/SourceFiles/ui/chat/attach/attach_controls.cpp @@ -29,7 +29,7 @@ void AttachControls::paint(Painter &p, int x, int y) { st::sendBoxAlbumGroupButtonMediaEdit.paintInCenter(p, leftRect); QRect rightRect(x + groupHalfWidth, y, groupHalfWidth, groupHeight); st::sendBoxAlbumGroupButtonMediaDelete.paintInCenter(p, rightRect); - } else { + } else if (_type == Type::EditOnly) { st::sendBoxAlbumButtonMediaEdit.paintInCenter(p, groupRect); } } @@ -37,13 +37,17 @@ void AttachControls::paint(Painter &p, int x, int y) { int AttachControls::width() const { return (_type == Type::Full) ? st::sendBoxAlbumGroupSize.width() - : st::sendBoxAlbumSmallGroupSize.width(); + : (_type == Type::EditOnly) + ? st::sendBoxAlbumSmallGroupSize.width() + : 0; } int AttachControls::height() const { return (_type == Type::Full) ? st::sendBoxAlbumGroupSize.height() - : st::sendBoxAlbumSmallGroupSize.height(); + : (_type == Type::EditOnly) + ? st::sendBoxAlbumSmallGroupSize.height() + : 0; } AttachControls::Type AttachControls::type() const { diff --git a/Telegram/SourceFiles/ui/chat/attach/attach_controls.h b/Telegram/SourceFiles/ui/chat/attach/attach_controls.h index efec4afc5..93a723efb 100644 --- a/Telegram/SourceFiles/ui/chat/attach/attach_controls.h +++ b/Telegram/SourceFiles/ui/chat/attach/attach_controls.h @@ -18,6 +18,7 @@ public: enum class Type { Full, EditOnly, + None, }; AttachControls(); diff --git a/Telegram/SourceFiles/ui/chat/attach/attach_item_single_file_preview.cpp b/Telegram/SourceFiles/ui/chat/attach/attach_item_single_file_preview.cpp index a2bb3381a..b4eb473cd 100644 --- a/Telegram/SourceFiles/ui/chat/attach/attach_item_single_file_preview.cpp +++ b/Telegram/SourceFiles/ui/chat/attach/attach_item_single_file_preview.cpp @@ -20,12 +20,25 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL #include "styles/style_chat.h" namespace Ui { +namespace { + +AttachControls::Type CheckControlsType( + not_null item, + AttachControls::Type type) { + const auto media = item->media(); + Assert(media != nullptr); + return media->allowsEditMedia() + ? type + : AttachControls::Type::None; +} + +} // namespace ItemSingleFilePreview::ItemSingleFilePreview( QWidget *parent, not_null item, AttachControls::Type type) -: AbstractSingleFilePreview(parent, type) { +: AbstractSingleFilePreview(parent, CheckControlsType(item, type)) { const auto media = item->media(); Assert(media != nullptr); const auto document = media->document();