diff --git a/src/private/quick/FloatingWindowQuick.cpp b/src/private/quick/FloatingWindowQuick.cpp index 3f84a507..e9ecf82f 100644 --- a/src/private/quick/FloatingWindowQuick.cpp +++ b/src/private/quick/FloatingWindowQuick.cpp @@ -99,5 +99,4 @@ void FloatingWindowQuick::init() m_quickWindow->setFlags(windowFlags()); m_quickWindow->show(); - m_quickWindow->setGeometry(200, 200, 800, 800); // TODO: remove } diff --git a/src/private/quick/QWidgetAdapter_quick.cpp b/src/private/quick/QWidgetAdapter_quick.cpp index 651ea3bc..4067a3ba 100644 --- a/src/private/quick/QWidgetAdapter_quick.cpp +++ b/src/private/quick/QWidgetAdapter_quick.cpp @@ -141,8 +141,7 @@ void QWidgetAdapter::setGeometry(QRect rect) { setWidth(rect.width()); setHeight(rect.height()); - setX(rect.x()); - setY(rect.y()); + move(rect.topLeft()); } void QWidgetAdapter::grabMouse() @@ -254,6 +253,19 @@ QPoint QWidgetAdapter::mapTo(const QQuickItem *parent, const QPoint &pos) const return parent->mapFromGlobal(QQuickItem::mapToGlobal(pos)).toPoint(); } +bool QWidgetAdapter::testAttribute(Qt::WidgetAttribute attr) const +{ + return m_widgetAttributes & attr; +} + +void QWidgetAdapter::setAttribute(Qt::WidgetAttribute attr, bool enable) +{ + if (enable) + m_widgetAttributes |= attr; + else + m_widgetAttributes &= ~attr; +} + void QWidgetAdapter::setWindowTitle(const QString &title) { if (QWindow *window = windowHandle()) @@ -290,6 +302,7 @@ void QWidgetAdapter::move(int x, int y) { setX(x); setY(y); + setAttribute(Qt::WA_Moved); } void QWidgetAdapter::setParent(QQuickItem *p) diff --git a/src/private/quick/QWidgetAdapter_quick_p.h b/src/private/quick/QWidgetAdapter_quick_p.h index 98e8b9e2..1d552abb 100644 --- a/src/private/quick/QWidgetAdapter_quick_p.h +++ b/src/private/quick/QWidgetAdapter_quick_p.h @@ -124,7 +124,8 @@ public: QPoint mapToGlobal(QPoint pt) const; QPoint mapFromGlobal(QPoint) const; QPoint mapTo(const QQuickItem *parent, const QPoint &pos) const; - bool testAttribute(Qt::WidgetAttribute) { return false; } + bool testAttribute(Qt::WidgetAttribute) const; + void setAttribute(Qt::WidgetAttribute, bool enabled = true); void setWindowTitle(const QString &); void setWindowIcon(const QIcon &); @@ -164,6 +165,7 @@ private: QSize m_minimumSize = {KDDOCKWIDGETS_MIN_WIDTH, KDDOCKWIDGETS_MIN_HEIGHT}; QSize m_maximumSize = {KDDOCKWIDGETS_MAX_WIDTH, KDDOCKWIDGETS_MAX_HEIGHT}; Qt::WindowFlags m_windowFlags; + int m_widgetAttributes = 0; // Qt::WidgetAttribute }; }