mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-04-18 23:27:09 +02:00
Replaced BubbleWrap class with single function.
This commit is contained in:
parent
7c8ada0e78
commit
1026f41da8
3 changed files with 19 additions and 36 deletions
|
@ -41,23 +41,16 @@ void PaintExcludeTopShadow(QPainter &p, int radius, const QRect &r) {
|
|||
|
||||
} // namespace
|
||||
|
||||
QRect BubbleWrap::innerRect() const {
|
||||
return rect() - st::userpicBuilderEmojiBubblePadding;
|
||||
QRect BubbleWrapInnerRect(const QRect &r) {
|
||||
return r - st::userpicBuilderEmojiBubblePadding;
|
||||
}
|
||||
|
||||
rpl::producer<QRect> BubbleWrap::innerRectValue() const {
|
||||
return sizeValue() | rpl::map([](const QSize &s) {
|
||||
return Rect(s) - st::userpicBuilderEmojiBubblePadding;
|
||||
});
|
||||
}
|
||||
|
||||
not_null<BubbleWrap*> AddBubbleWrap(
|
||||
not_null<Ui::RpWidget*> AddBubbleWrap(
|
||||
not_null<Ui::VerticalLayout*> container,
|
||||
const QSize &size,
|
||||
Fn<not_null<const Ui::ChatStyle*>()> chatStyle) {
|
||||
const auto bubble = container->add(object_ptr<Ui::CenterWrap<BubbleWrap>>(
|
||||
const QSize &size) {
|
||||
const auto bubble = container->add(object_ptr<Ui::CenterWrap<RpWidget>>(
|
||||
container,
|
||||
object_ptr<BubbleWrap>(container)))->entity();
|
||||
object_ptr<Ui::RpWidget>(container)))->entity();
|
||||
bubble->resize(size);
|
||||
|
||||
auto cached = QImage(
|
||||
|
@ -67,7 +60,7 @@ not_null<BubbleWrap*> AddBubbleWrap(
|
|||
cached.fill(Qt::transparent);
|
||||
{
|
||||
auto p = QPainter(&cached);
|
||||
const auto innerRect = bubble->innerRect();
|
||||
const auto innerRect = BubbleWrapInnerRect(bubble->rect());
|
||||
auto hq = PainterHighQualityEnabler(p);
|
||||
const auto radius = st::bubbleRadiusSmall;
|
||||
p.setPen(Qt::NoPen);
|
||||
|
|
|
@ -11,21 +11,12 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
|||
|
||||
namespace Ui {
|
||||
|
||||
class ChatStyle;
|
||||
class VerticalLayout;
|
||||
|
||||
class BubbleWrap final : public Ui::RpWidget {
|
||||
public:
|
||||
using Ui::RpWidget::RpWidget;
|
||||
[[nodiscard]] QRect BubbleWrapInnerRect(const QRect &r);
|
||||
|
||||
[[nodiscard]] QRect innerRect() const;
|
||||
[[nodiscard]] rpl::producer<QRect> innerRectValue() const;
|
||||
|
||||
};
|
||||
|
||||
not_null<BubbleWrap*> AddBubbleWrap(
|
||||
not_null<Ui::RpWidget*> AddBubbleWrap(
|
||||
not_null<Ui::VerticalLayout*> container,
|
||||
const QSize &size,
|
||||
Fn<not_null<const Ui::ChatStyle*>()> chatStyle);
|
||||
const QSize &size);
|
||||
|
||||
} // namespace Ui
|
||||
|
|
|
@ -386,8 +386,7 @@ not_null<Ui::VerticalLayout*> CreateUserpicBuilder(
|
|||
|
||||
const auto paletteBg = Ui::AddBubbleWrap(
|
||||
container,
|
||||
st::userpicBuilderEmojiBubblePaletteSize,
|
||||
[=] { return controller->chatStyle(); });
|
||||
st::userpicBuilderEmojiBubblePaletteSize);
|
||||
const auto palette = Ui::CreateChild<Ui::RpWidget>(paletteBg.get());
|
||||
{
|
||||
constexpr auto kColorsCount = int(7);
|
||||
|
@ -455,9 +454,10 @@ not_null<Ui::VerticalLayout*> CreateUserpicBuilder(
|
|||
state->circleButtons[current]->setSelectedProgress(1.);
|
||||
state->circleButtons[current]->clicked({}, Qt::LeftButton);
|
||||
}
|
||||
paletteBg->innerRectValue(
|
||||
) | rpl::start_with_next([=](const QRect &r) {
|
||||
palette->setGeometry(r - st::userpicBuilderEmojiBubblePalettePadding);
|
||||
paletteBg->sizeValue(
|
||||
) | rpl::start_with_next([=](const QSize &s) {
|
||||
palette->setGeometry(Ui::BubbleWrapInnerRect(Rect(s))
|
||||
- st::userpicBuilderEmojiBubblePalettePadding);
|
||||
AlignChildren(palette, palette->width());
|
||||
}, palette->lifetime());
|
||||
|
||||
|
@ -474,8 +474,7 @@ not_null<Ui::VerticalLayout*> CreateUserpicBuilder(
|
|||
container,
|
||||
QSize(
|
||||
st::userpicBuilderEmojiBubblePaletteSize.width(),
|
||||
st::userpicBuilderEmojiSelectorMinHeight),
|
||||
[=] { return controller->chatStyle(); });
|
||||
st::userpicBuilderEmojiSelectorMinHeight));
|
||||
const auto selector = Ui::CreateChild<EmojiSelector>(
|
||||
selectorBg.get(),
|
||||
controller,
|
||||
|
@ -485,9 +484,9 @@ not_null<Ui::VerticalLayout*> CreateUserpicBuilder(
|
|||
state->gradientEditorStartData.documentId = document->id;
|
||||
preview->setDocument(document);
|
||||
}, preview->lifetime());
|
||||
selectorBg->innerRectValue(
|
||||
) | rpl::start_with_next([=](const QRect &r) {
|
||||
selector->setGeometry(r);
|
||||
selectorBg->sizeValue(
|
||||
) | rpl::start_with_next([=](const QSize &s) {
|
||||
selector->setGeometry(Ui::BubbleWrapInnerRect(Rect(s)));
|
||||
}, selector->lifetime());
|
||||
|
||||
base::take(
|
||||
|
|
Loading…
Add table
Reference in a new issue