diff options
author | J-P Nurmi <jpnurmi@qt.io> | 2018-03-23 08:06:52 +0100 |
---|---|---|
committer | J-P Nurmi <jpnurmi@qt.io> | 2018-04-04 08:59:26 +0000 |
commit | 5e6b1e2950aa96b53c2fe77185f8d3bf420d27e9 (patch) | |
tree | f54e5f090f6696f9748a146a371a9a5d05ba3668 | |
parent | d055ee18b6012033de5138d429ddda5f421ddbc7 (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.cpp | 2 | ||||
-rw-r--r-- | src/quicktemplates2/qquickcontentitem.cpp | 12 | ||||
-rw-r--r-- | src/quicktemplates2/qquickcontentitem_p.h | 3 | ||||
-rw-r--r-- | src/quicktemplates2/qquickpane.cpp | 2 | ||||
-rw-r--r-- | src/quicktemplates2/qquickpopupitem.cpp | 2 |
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"); } |