From ea0d814905d34a3f173a741e5bb36bd7679ebff3 Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Wed, 13 Dec 2023 21:57:10 +0100 Subject: [PATCH] QmlDesignerPlugin: Use QWidget::isAncestorOf() Change-Id: I7896fe5907e3af932ad29e6577207ac803164330 Reviewed-by: Tim Jenssen --- src/plugins/qmldesigner/qmldesignerplugin.cpp | 41 +++++++------------ 1 file changed, 14 insertions(+), 27 deletions(-) diff --git a/src/plugins/qmldesigner/qmldesignerplugin.cpp b/src/plugins/qmldesigner/qmldesignerplugin.cpp index 93e698065c1..c33aeeeea76 100644 --- a/src/plugins/qmldesigner/qmldesignerplugin.cpp +++ b/src/plugins/qmldesigner/qmldesignerplugin.cpp @@ -759,35 +759,22 @@ void QmlDesignerPlugin::registerPreviewImageProvider(QQmlEngine *engine) m_instance->d->projectManager.registerPreviewImageProvider(engine); } -bool isParent(QWidget *parent, QWidget *widget) -{ - if (!widget) - return false; - - if (widget == parent) - return true; - - return isParent(parent, widget->parentWidget()); -} - void QmlDesignerPlugin::trackWidgetFocusTime(QWidget *widget, const QString &identifier) { - connect(qApp, - &QApplication::focusChanged, - widget, - [widget, identifier](QWidget *from, QWidget *to) { - static QElapsedTimer widgetUsageTimer; - static QString lastIdentifier; - if (isParent(widget, to)) { - if (!lastIdentifier.isEmpty()) - emitUsageStatisticsTime(lastIdentifier, widgetUsageTimer.elapsed()); - widgetUsageTimer.restart(); - lastIdentifier = identifier; - } else if (isParent(widget, from) && lastIdentifier == identifier) { - emitUsageStatisticsTime(identifier, widgetUsageTimer.elapsed()); - lastIdentifier.clear(); - } - }); + connect(qApp, &QApplication::focusChanged, + widget, [widget, identifier](QWidget *from, QWidget *to) { + static QElapsedTimer widgetUsageTimer; + static QString lastIdentifier; + if (widget->isAncestorOf(to)) { + if (!lastIdentifier.isEmpty()) + emitUsageStatisticsTime(lastIdentifier, widgetUsageTimer.elapsed()); + widgetUsageTimer.restart(); + lastIdentifier = identifier; + } else if (widget->isAncestorOf(from) && lastIdentifier == identifier) { + emitUsageStatisticsTime(identifier, widgetUsageTimer.elapsed()); + lastIdentifier.clear(); + } + }); } void QmlDesignerPlugin::registerCombinedTracedPoints(const QString &identifierFirst,