From 5c3067d1f8fcf3dc1c3e2761e2264e96575d482a Mon Sep 17 00:00:00 2001 From: 23rd <23rd@vivaldi.net> Date: Tue, 24 Jan 2023 20:28:57 +0300 Subject: [PATCH] Added to ColorEditor rpl value of current colors. --- Telegram/SourceFiles/ui/widgets/color_editor.cpp | 7 +++++++ Telegram/SourceFiles/ui/widgets/color_editor.h | 2 ++ 2 files changed, 9 insertions(+) diff --git a/Telegram/SourceFiles/ui/widgets/color_editor.cpp b/Telegram/SourceFiles/ui/widgets/color_editor.cpp index 016dd16386..94acc3eeda 100644 --- a/Telegram/SourceFiles/ui/widgets/color_editor.cpp +++ b/Telegram/SourceFiles/ui/widgets/color_editor.cpp @@ -948,6 +948,10 @@ QColor ColorEditor::color() const { return _new.toRgb(); } +rpl::producer ColorEditor::colorValue() const { + return _newChanges.events_starting_with_copy(_new); +} + rpl::producer<> ColorEditor::submitRequests() const { return _submitRequests.events(); } @@ -1147,6 +1151,7 @@ QColor ColorEditor::applyLimits(QColor color) const { void ColorEditor::updateFromColor(QColor color) { _new = applyLimits(color); + _newChanges.fire_copy(_new); updateControlsFromColor(); updateRGBFields(); updateHSBFields(); @@ -1252,6 +1257,7 @@ void ColorEditor::setHSB(HSB hsb, int alpha) { } else { _new.setHsl(hsb.hue, hsb.saturation, hsb.brightness, alpha); } + _newChanges.fire_copy(_new); updateRGBFields(); updateResultField(); update(); @@ -1259,6 +1265,7 @@ void ColorEditor::setHSB(HSB hsb, int alpha) { void ColorEditor::setRGB(int red, int green, int blue, int alpha) { _new = applyLimits(QColor(red, green, blue, alpha)); + _newChanges.fire_copy(_new); updateControlsFromColor(); updateHSBFields(); update(); diff --git a/Telegram/SourceFiles/ui/widgets/color_editor.h b/Telegram/SourceFiles/ui/widgets/color_editor.h index d6f779d967..207ad2187b 100644 --- a/Telegram/SourceFiles/ui/widgets/color_editor.h +++ b/Telegram/SourceFiles/ui/widgets/color_editor.h @@ -24,6 +24,7 @@ public: void setLightnessLimits(int min, int max); [[nodiscard]] QColor color() const; + [[nodiscard]] rpl::producer colorValue() const; [[nodiscard]] rpl::producer<> submitRequests() const; void showColor(QColor color) { @@ -101,5 +102,6 @@ private: int _lightnessMax = 255; rpl::event_stream<> _submitRequests; + rpl::event_stream _newChanges; };