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,31 +759,18 @@ 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,
[widget, identifier](QWidget *from, QWidget *to) {
static QElapsedTimer widgetUsageTimer; static QElapsedTimer widgetUsageTimer;
static QString lastIdentifier; static QString lastIdentifier;
if (isParent(widget, to)) { if (widget->isAncestorOf(to)) {
if (!lastIdentifier.isEmpty()) if (!lastIdentifier.isEmpty())
emitUsageStatisticsTime(lastIdentifier, widgetUsageTimer.elapsed()); emitUsageStatisticsTime(lastIdentifier, widgetUsageTimer.elapsed());
widgetUsageTimer.restart(); widgetUsageTimer.restart();
lastIdentifier = identifier; lastIdentifier = identifier;
} else if (isParent(widget, from) && lastIdentifier == identifier) { } else if (widget->isAncestorOf(from) && lastIdentifier == identifier) {
emitUsageStatisticsTime(identifier, widgetUsageTimer.elapsed()); emitUsageStatisticsTime(identifier, widgetUsageTimer.elapsed());
lastIdentifier.clear(); lastIdentifier.clear();
} }