Allow any QWidget in Ui::ScrollArea.

This commit is contained in:
John Preston 2021-05-12 12:07:39 +04:00
parent 6bc9586644
commit d515956f76
2 changed files with 5 additions and 5 deletions

View file

@ -681,7 +681,7 @@ void ScrollArea::scrollToY(int toTop, int toBottom) {
verticalScrollBar()->setValue(scToTop); verticalScrollBar()->setValue(scToTop);
} }
void ScrollArea::doSetOwnedWidget(object_ptr<TWidget> w) { void ScrollArea::doSetOwnedWidget(object_ptr<QWidget> w) {
if (widget() && _touchEnabled) { if (widget() && _touchEnabled) {
widget()->removeEventFilter(this); widget()->removeEventFilter(this);
if (!_widgetAcceptsTouch) widget()->setAttribute(Qt::WA_AcceptTouchEvents, false); if (!_widgetAcceptsTouch) widget()->setAttribute(Qt::WA_AcceptTouchEvents, false);
@ -698,7 +698,7 @@ void ScrollArea::doSetOwnedWidget(object_ptr<TWidget> w) {
} }
} }
object_ptr<TWidget> ScrollArea::doTakeWidget() { object_ptr<QWidget> ScrollArea::doTakeWidget() {
QScrollArea::takeWidget(); QScrollArea::takeWidget();
return std::move(_widget); return std::move(_widget);
} }

View file

@ -200,8 +200,8 @@ protected:
void scrollContentsBy(int dx, int dy) override; void scrollContentsBy(int dx, int dy) override;
private: private:
void doSetOwnedWidget(object_ptr<TWidget> widget); void doSetOwnedWidget(object_ptr<QWidget> widget);
object_ptr<TWidget> doTakeWidget(); object_ptr<QWidget> doTakeWidget();
void setWidget(QWidget *widget); void setWidget(QWidget *widget);
@ -239,7 +239,7 @@ private:
bool _widgetAcceptsTouch = false; bool _widgetAcceptsTouch = false;
object_ptr<TWidget> _widget = { nullptr }; object_ptr<QWidget> _widget = { nullptr };
rpl::event_stream<int> _scrollTopUpdated; rpl::event_stream<int> _scrollTopUpdated;