qtquick: Fix user geometry not being honoured
QtQuick doesn't set Qt::WA_Moved, which we expect. Set this attribute in the wrappers then. Fixes the unit-test too.
This commit is contained in:
@@ -99,5 +99,4 @@ void FloatingWindowQuick::init()
|
||||
|
||||
m_quickWindow->setFlags(windowFlags());
|
||||
m_quickWindow->show();
|
||||
m_quickWindow->setGeometry(200, 200, 800, 800); // TODO: remove
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user