diff --git a/Telegram/SourceFiles/inline_bots/inline_bot_layout_internal.cpp b/Telegram/SourceFiles/inline_bots/inline_bot_layout_internal.cpp index 59d95a022..2a15d3d34 100644 --- a/Telegram/SourceFiles/inline_bots/inline_bot_layout_internal.cpp +++ b/Telegram/SourceFiles/inline_bots/inline_bot_layout_internal.cpp @@ -120,7 +120,7 @@ void Gif::initDimensions() { } void Gif::setPosition(int32 position) { - ItemBase::setPosition(position); + AbstractLayoutItem::setPosition(position); if (_position < 0) { _gif.reset(); } @@ -1358,7 +1358,7 @@ void Game::initDimensions() { } void Game::setPosition(int32 position) { - ItemBase::setPosition(position); + AbstractLayoutItem::setPosition(position); if (_position < 0) { _gif.reset(); } diff --git a/Telegram/SourceFiles/inline_bots/inline_bot_layout_item.cpp b/Telegram/SourceFiles/inline_bots/inline_bot_layout_item.cpp index 1a17eec8b..6d5959f57 100644 --- a/Telegram/SourceFiles/inline_bots/inline_bot_layout_item.cpp +++ b/Telegram/SourceFiles/inline_bots/inline_bot_layout_item.cpp @@ -28,14 +28,6 @@ NeverFreedPointer documentItemsMap; } // namespace -void ItemBase::setPosition(int32 position) { - _position = position; -} - -int32 ItemBase::position() const { - return _position; -} - Result *ItemBase::getResult() const { return _result; } diff --git a/Telegram/SourceFiles/inline_bots/inline_bot_layout_item.h b/Telegram/SourceFiles/inline_bots/inline_bot_layout_item.h index 641ceea2f..ce27c2dc1 100644 --- a/Telegram/SourceFiles/inline_bots/inline_bot_layout_item.h +++ b/Telegram/SourceFiles/inline_bots/inline_bot_layout_item.h @@ -77,9 +77,6 @@ public: virtual void paint(Painter &p, const QRect &clip, const PaintContext *context) const = 0; - virtual void setPosition(int32 position); - int32 position() const; - virtual bool isFullLine() const { return true; } @@ -144,8 +141,6 @@ protected: ClickHandlerPtr _send = ClickHandlerPtr{ new SendClickHandler() }; ClickHandlerPtr _open = ClickHandlerPtr{ new OpenFileClickHandler() }; - int _position = 0; // < 0 means removed from layout - private: not_null _context; mutable std::shared_ptr _thumbnail; diff --git a/Telegram/SourceFiles/layout/abstract_layout_item.cpp b/Telegram/SourceFiles/layout/abstract_layout_item.cpp index 71484c2c9..d83f0a712 100644 --- a/Telegram/SourceFiles/layout/abstract_layout_item.cpp +++ b/Telegram/SourceFiles/layout/abstract_layout_item.cpp @@ -30,6 +30,13 @@ int AbstractLayoutItem::height() const { return _height; } +void AbstractLayoutItem::setPosition(int position) { + _position = position; +} +int AbstractLayoutItem::position() const { + return _position; +} + bool AbstractLayoutItem::hasPoint(QPoint point) const { return QRect(0, 0, width(), height()).contains(point); } diff --git a/Telegram/SourceFiles/layout/abstract_layout_item.h b/Telegram/SourceFiles/layout/abstract_layout_item.h index 68a569398..923403546 100644 --- a/Telegram/SourceFiles/layout/abstract_layout_item.h +++ b/Telegram/SourceFiles/layout/abstract_layout_item.h @@ -27,6 +27,9 @@ public: [[nodiscard]] int width() const; [[nodiscard]] int height() const; + virtual void setPosition(int position); + [[nodiscard]] int position() const; + [[nodiscard]] bool hasPoint(QPoint point) const; virtual ~AbstractLayoutItem(); @@ -36,5 +39,6 @@ protected: int _height = 0; int _maxw = 0; int _minh = 0; + int _position = 0; // < 0 means removed from layout }; diff --git a/Telegram/SourceFiles/overview/overview_layout.cpp b/Telegram/SourceFiles/overview/overview_layout.cpp index ff34a9370..b92f1a9f4 100644 --- a/Telegram/SourceFiles/overview/overview_layout.cpp +++ b/Telegram/SourceFiles/overview/overview_layout.cpp @@ -2063,7 +2063,7 @@ void Gif::clearHeavyPart() { } void Gif::setPosition(int32 position) { - ItemBase::setPosition(position); + AbstractLayoutItem::setPosition(position); if (position < 0) { _gif.reset(); } diff --git a/Telegram/SourceFiles/overview/overview_layout.h b/Telegram/SourceFiles/overview/overview_layout.h index aff7292d7..2a7a397e2 100644 --- a/Telegram/SourceFiles/overview/overview_layout.h +++ b/Telegram/SourceFiles/overview/overview_layout.h @@ -54,13 +54,6 @@ public: QDateTime dateTime() const; - void setPosition(int position) { - _position = position; - } - int position() const { - return _position; - } - HistoryItem *getItem() const { return _parent; } @@ -94,7 +87,6 @@ private: const not_null _parent; const QDateTime _dateTime; std::unique_ptr _check; - int _position = 0; }; @@ -225,7 +217,7 @@ public: StateRequest request) const override; void clearHeavyPart() override; - void setPosition(int32 position); + void setPosition(int32 position) override; protected: float64 dataProgress() const override;