aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/items/qquickwindowmodule.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/quick/items/qquickwindowmodule.cpp')
-rw-r--r--src/quick/items/qquickwindowmodule.cpp37
1 files changed, 15 insertions, 22 deletions
diff --git a/src/quick/items/qquickwindowmodule.cpp b/src/quick/items/qquickwindowmodule.cpp
index ad0aa53f72..7d7cf20210 100644
--- a/src/quick/items/qquickwindowmodule.cpp
+++ b/src/quick/items/qquickwindowmodule.cpp
@@ -42,6 +42,8 @@
#include "qquickrendercontrol.h"
#include "qquickscreen_p.h"
#include "qquickview_p.h"
+#include "qquickwindowmodule_p_p.h"
+#include "qquickitem_p.h"
#include <QtQuick/QQuickWindow>
#include <QtCore/QCoreApplication>
#include <QtQml/QQmlEngine>
@@ -56,28 +58,11 @@ QT_BEGIN_NAMESPACE
Q_DECLARE_LOGGING_CATEGORY(lcTransient)
-class QQuickWindowQmlImplPrivate : public QQuickWindowPrivate
-{
-public:
- QQuickWindowQmlImplPrivate()
- : complete(false)
- , visible(false)
- , visibility(QQuickWindow::AutomaticVisibility)
- {
- }
-
- bool complete;
- bool visible;
- QQuickWindow::Visibility visibility;
- QV4::PersistentValue rootItemMarker;
-};
+QQuickWindowQmlImplPrivate::QQuickWindowQmlImplPrivate() = default;
QQuickWindowQmlImpl::QQuickWindowQmlImpl(QWindow *parent)
- : QQuickWindow(*(new QQuickWindowQmlImplPrivate), parent)
+ : QQuickWindowQmlImpl(*(new QQuickWindowQmlImplPrivate), parent)
{
- connect(this, &QWindow::visibleChanged, this, &QQuickWindowQmlImpl::visibleChanged);
- connect(this, &QWindow::visibilityChanged, this, &QQuickWindowQmlImpl::visibilityChanged);
- connect(this, &QWindow::screenChanged, this, &QQuickWindowQmlImpl::screenChanged);
}
void QQuickWindowQmlImpl::setVisible(bool visible)
@@ -140,6 +125,14 @@ void QQuickWindowQmlImpl::componentComplete()
}
}
+QQuickWindowQmlImpl::QQuickWindowQmlImpl(QQuickWindowQmlImplPrivate &dd, QWindow *parent)
+ : QQuickWindow(dd, parent)
+{
+ connect(this, &QWindow::visibleChanged, this, &QQuickWindowQmlImpl::visibleChanged);
+ connect(this, &QWindow::visibilityChanged, this, &QQuickWindowQmlImpl::visibilityChanged);
+ connect(this, &QWindow::screenChanged, this, &QQuickWindowQmlImpl::screenChanged);
+}
+
void QQuickWindowQmlImpl::setWindowVisibility()
{
Q_D(QQuickWindowQmlImpl);
@@ -162,9 +155,9 @@ void QQuickWindowQmlImpl::setWindowVisibility()
QQmlError error;
error.setObject(this);
- const QQmlContextData* urlContext = data->context;
+ QQmlRefPointer<QQmlContextData> urlContext = data->context;
while (urlContext && urlContext->url().isEmpty())
- urlContext = urlContext->parent;
+ urlContext = urlContext->parent();
error.setUrl(urlContext ? urlContext->url() : QUrl());
QString objectId = data->context->findObjectId(this);
@@ -175,7 +168,7 @@ void QQuickWindowQmlImpl::setWindowVisibility()
error.setDescription(QCoreApplication::translate("QQuickWindowQmlImpl",
"Conflicting properties 'visible' and 'visibility'"));
- QQmlEnginePrivate::get(data->context->engine)->warning(error);
+ QQmlEnginePrivate::get(data->context->engine())->warning(error);
}
if (d->visibility == AutomaticVisibility) {