QmlDesignerPlugin: Use QWidget::isAncestorOf()

Change-Id: I7896fe5907e3af932ad29e6577207ac803164330
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
Jarek Kobus
2023-12-13 21:57:10 +01:00
parent d18ef94aaf
commit ea0d814905

View File

@@ -759,35 +759,22 @@ void QmlDesignerPlugin::registerPreviewImageProvider(QQmlEngine *engine)
m_instance->d->projectManager.registerPreviewImageProvider(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) void QmlDesignerPlugin::trackWidgetFocusTime(QWidget *widget, const QString &identifier)
{ {
connect(qApp, connect(qApp, &QApplication::focusChanged,
&QApplication::focusChanged, widget, [widget, identifier](QWidget *from, QWidget *to) {
widget, static QElapsedTimer widgetUsageTimer;
[widget, identifier](QWidget *from, QWidget *to) { static QString lastIdentifier;
static QElapsedTimer widgetUsageTimer; if (widget->isAncestorOf(to)) {
static QString lastIdentifier; if (!lastIdentifier.isEmpty())
if (isParent(widget, to)) { emitUsageStatisticsTime(lastIdentifier, widgetUsageTimer.elapsed());
if (!lastIdentifier.isEmpty()) widgetUsageTimer.restart();
emitUsageStatisticsTime(lastIdentifier, widgetUsageTimer.elapsed()); lastIdentifier = identifier;
widgetUsageTimer.restart(); } else if (widget->isAncestorOf(from) && lastIdentifier == identifier) {
lastIdentifier = identifier; emitUsageStatisticsTime(identifier, widgetUsageTimer.elapsed());
} else if (isParent(widget, from) && lastIdentifier == identifier) { lastIdentifier.clear();
emitUsageStatisticsTime(identifier, widgetUsageTimer.elapsed()); }
lastIdentifier.clear(); });
}
});
} }
void QmlDesignerPlugin::registerCombinedTracedPoints(const QString &identifierFirst, void QmlDesignerPlugin::registerCombinedTracedPoints(const QString &identifierFirst,