aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@qt.io>2018-03-23 08:06:52 +0100
committerJ-P Nurmi <jpnurmi@qt.io>2018-04-04 08:59:26 +0000
commit5e6b1e2950aa96b53c2fe77185f8d3bf420d27e9 (patch)
treef54e5f090f6696f9748a146a371a9a5d05ba3668
parentd055ee18b6012033de5138d429ddda5f421ddbc7 (diff)
QQuickContentItem: make use of QQmlMetaType::prettyTypeName()
a064824 added QQuickContentItem to provide more useful debug output. This improves the debug output further by providing the correct QML type name for types inherited from Pane and Popup, such as Frame and Dialog. With: ApplicationWindow { Pane { Component.onCompleted: console.log(contentItem) } Frame { Component.onCompleted: console.log(contentItem) } Popup { Component.onCompleted: console.log(contentItem) } Dialog { Component.onCompleted: console.log(contentItem) } Component.onCompleted: console.log(contentItem) } Before: qml: QQuickContentItem(0x7fa3397cfa70, "ApplicationWindow") qml: QQuickContentItem(0x7fa3397d6f10, "Popup") qml: QQuickContentItem(0x7fa3397d3f00, "Popup") qml: QQuickContentItem(0x7fa339534990, "Pane") qml: QQuickContentItem(0x7fa339534e40, "Pane") After: qml: QQuickContentItem(0x7fbebfce3210, "ApplicationWindow") qml: QQuickContentItem(0x7fbebfcea790, "Dialog") qml: QQuickContentItem(0x7fbebfce7730, "Popup") qml: QQuickContentItem(0x7fbebfcf61d0, "Frame") qml: QQuickContentItem(0x7fbebfcf4d20, "Pane") Change-Id: Ie8ab2b0c576f3bda7edf9840f7d030d3eef383f3 Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
-rw-r--r--src/quicktemplates2/qquickapplicationwindow.cpp2
-rw-r--r--src/quicktemplates2/qquickcontentitem.cpp12
-rw-r--r--src/quicktemplates2/qquickcontentitem_p.h3
-rw-r--r--src/quicktemplates2/qquickpane.cpp2
-rw-r--r--src/quicktemplates2/qquickpopupitem.cpp2
5 files changed, 15 insertions, 6 deletions
diff --git a/src/quicktemplates2/qquickapplicationwindow.cpp b/src/quicktemplates2/qquickapplicationwindow.cpp
index 97624b9d..4e062b33 100644
--- a/src/quicktemplates2/qquickapplicationwindow.cpp
+++ b/src/quicktemplates2/qquickapplicationwindow.cpp
@@ -585,7 +585,7 @@ QQuickItem *QQuickApplicationWindow::contentItem() const
{
QQuickApplicationWindowPrivate *d = const_cast<QQuickApplicationWindowPrivate *>(d_func());
if (!d->contentItem) {
- d->contentItem = new QQuickContentItem(QStringLiteral("ApplicationWindow"), QQuickWindow::contentItem());
+ d->contentItem = new QQuickContentItem(this, QQuickWindow::contentItem());
d->contentItem->setFlag(QQuickItem::ItemIsFocusScope);
d->contentItem->setFocus(true);
d->relayout();
diff --git a/src/quicktemplates2/qquickcontentitem.cpp b/src/quicktemplates2/qquickcontentitem.cpp
index 286e7209..95665f70 100644
--- a/src/quicktemplates2/qquickcontentitem.cpp
+++ b/src/quicktemplates2/qquickcontentitem.cpp
@@ -36,6 +36,8 @@
#include "qquickcontentitem_p.h"
+#include <QtQml/private/qqmlmetatype_p.h>
+
QT_BEGIN_NAMESPACE
/*!
@@ -44,10 +46,16 @@ QT_BEGIN_NAMESPACE
Helper class that aids debugging by producing more useful debugging output.
*/
-QQuickContentItem::QQuickContentItem(const QString &objectName, QQuickItem *parent)
+QQuickContentItem::QQuickContentItem(QQuickItem *parent)
+ : QQuickItem(parent)
+{
+ setObjectName(QQmlMetaType::prettyTypeName(parent));
+}
+
+QQuickContentItem::QQuickContentItem(const QObject *scope, QQuickItem *parent)
: QQuickItem(parent)
{
- setObjectName(objectName);
+ setObjectName(QQmlMetaType::prettyTypeName(scope));
}
QT_END_NAMESPACE
diff --git a/src/quicktemplates2/qquickcontentitem_p.h b/src/quicktemplates2/qquickcontentitem_p.h
index 3babc7bb..df0f0b24 100644
--- a/src/quicktemplates2/qquickcontentitem_p.h
+++ b/src/quicktemplates2/qquickcontentitem_p.h
@@ -58,7 +58,8 @@ class Q_QUICKTEMPLATES2_PRIVATE_EXPORT QQuickContentItem : public QQuickItem
Q_OBJECT
public:
- explicit QQuickContentItem(const QString &objectName, QQuickItem *parent = nullptr);
+ explicit QQuickContentItem(QQuickItem *parent = nullptr);
+ explicit QQuickContentItem(const QObject *scope, QQuickItem *parent);
private:
Q_DISABLE_COPY(QQuickContentItem)
diff --git a/src/quicktemplates2/qquickpane.cpp b/src/quicktemplates2/qquickpane.cpp
index a744b8b9..e1d8d7bb 100644
--- a/src/quicktemplates2/qquickpane.cpp
+++ b/src/quicktemplates2/qquickpane.cpp
@@ -124,7 +124,7 @@ QQuickItem *QQuickPanePrivate::getContentItem()
if (QQuickItem *item = QQuickControlPrivate::getContentItem())
return item;
- return new QQuickContentItem(QStringLiteral("Pane"), q);
+ return new QQuickContentItem(q);
}
void QQuickPanePrivate::addImplicitSizeListener(QQuickItem *item)
diff --git a/src/quicktemplates2/qquickpopupitem.cpp b/src/quicktemplates2/qquickpopupitem.cpp
index c0a00292..d1247bf6 100644
--- a/src/quicktemplates2/qquickpopupitem.cpp
+++ b/src/quicktemplates2/qquickpopupitem.cpp
@@ -115,7 +115,7 @@ QQuickItem *QQuickPopupItemPrivate::getContentItem()
if (QQuickItem *item = QQuickControlPrivate::getContentItem())
return item;
- return new QQuickContentItem(QStringLiteral("Popup"), q);
+ return new QQuickContentItem(popup, q);
}
static inline QString contentItemName() { return QStringLiteral("contentItem"); }