From 183408cb2d8a6df5a2ec731440c5aab8b3559f6e Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Mon, 22 Feb 2021 11:14:23 +0300 Subject: [PATCH] Added button highlighting for flipped image to photo editor. --- Telegram/SourceFiles/editor/photo_editor.cpp | 5 ++++- .../SourceFiles/editor/photo_editor_controls.cpp | 12 +++++++++++- Telegram/SourceFiles/editor/photo_editor_controls.h | 3 +++ 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/Telegram/SourceFiles/editor/photo_editor.cpp b/Telegram/SourceFiles/editor/photo_editor.cpp index cd2ad4136..f7210ce96 100644 --- a/Telegram/SourceFiles/editor/photo_editor.cpp +++ b/Telegram/SourceFiles/editor/photo_editor.cpp @@ -57,7 +57,10 @@ PhotoEditor::PhotoEditor( _modifications, _undoController, std::move(data))) -, _controls(base::make_unique_q(this, _undoController)) +, _controls(base::make_unique_q( + this, + _undoController, + _modifications)) , _colorPicker(std::make_unique( this, Deserialize(Core::App().settings().photoEditorBrush()))) { diff --git a/Telegram/SourceFiles/editor/photo_editor_controls.cpp b/Telegram/SourceFiles/editor/photo_editor_controls.cpp index 97dec1285..6f377aa94 100644 --- a/Telegram/SourceFiles/editor/photo_editor_controls.cpp +++ b/Telegram/SourceFiles/editor/photo_editor_controls.cpp @@ -135,6 +135,7 @@ void HorizontalContainer::updateChildrenPosition() { PhotoEditorControls::PhotoEditorControls( not_null parent, std::shared_ptr undoController, + const PhotoModifications modifications, bool doneControls) : RpWidget(parent) , _bg(st::mediaviewSaveMsgBg) @@ -173,7 +174,8 @@ PhotoEditorControls::PhotoEditorControls( false, _bg, st::lightButtonFg, - st::photoEditorRotateButton.ripple)) { + st::photoEditorRotateButton.ripple)) +, _flipped(modifications.flipped) { _transformButtons->updateChildrenPosition(); _paintButtons->updateChildrenPosition(); @@ -241,6 +243,14 @@ PhotoEditorControls::PhotoEditorControls( : &st::photoEditorRedoButtonInactive); }, lifetime()); + _flipButton->clicks( + ) | rpl::start_with_next([=] { + _flipped = !_flipped; + _flipButton->setIconOverride(_flipped + ? &st::photoEditorFlipButton.iconOver + : nullptr); + }, _flipButton->lifetime()); + } rpl::producer PhotoEditorControls::rotateRequests() const { diff --git a/Telegram/SourceFiles/editor/photo_editor_controls.h b/Telegram/SourceFiles/editor/photo_editor_controls.h index c089cd162..903028419 100644 --- a/Telegram/SourceFiles/editor/photo_editor_controls.h +++ b/Telegram/SourceFiles/editor/photo_editor_controls.h @@ -26,6 +26,7 @@ public: PhotoEditorControls( not_null parent, std::shared_ptr undoController, + const PhotoModifications modifications, bool doneControls = true); [[nodiscard]] rpl::producer rotateRequests() const; @@ -53,6 +54,8 @@ private: const base::unique_qptr _cancel; const base::unique_qptr _done; + bool _flipped; + rpl::variable _mode; };