qml: Implement QWidgetAdapter::close() and window()

Clicking the title bar's close button now works
This commit is contained in:
Sergio Martins
2020-07-29 23:58:09 +01:00
parent fc633f2547
commit 8736d2cdb6
2 changed files with 24 additions and 4 deletions

View File

@@ -23,7 +23,7 @@
#include <QResizeEvent>
#include <QMouseEvent>
#include <QWindow>
#include <QQuickWindow>
#include <QQmlComponent>
#include <QQuickItem>
#include <QQmlEngine>
@@ -156,7 +156,21 @@ void QWidgetAdapter::showNormal()
qWarning() << Q_FUNC_INFO << "Implement me";
}
QWindow *QWidgetAdapter::windowHandle() const { return nullptr; }
QWindow *QWidgetAdapter::windowHandle() const
{
return QQuickItem::window();
}
QWidgetAdapter *QWidgetAdapter::window() const
{
// We return the top-most QWidgetAdapter
if (QWidgetAdapter *w = parentWidget()) {
return w->window();
}
return const_cast<QWidgetAdapter *>(this);
}
QWidgetAdapter *QWidgetAdapter::parentWidget() const
{
@@ -171,6 +185,12 @@ QWidgetAdapter *QWidgetAdapter::parentWidget() const
return nullptr;
}
void QWidgetAdapter::close()
{
if (QWindow *w = windowHandle())
w->close();
}
void QWidgetAdapter::move(int x, int y)
{
qDebug() << Q_FUNC_INFO << x << y << this;