summaryrefslogtreecommitdiffstats
path: root/examples/objectInstancesTimer.qml
diff options
context:
space:
mode:
authorShawn Rutledge <shawn.rutledge@qt.io>2023-05-31 22:48:44 +0200
committerShawn Rutledge <shawn.rutledge@qt.io>2023-07-05 19:40:57 +0000
commit75a6949d68af37ca8d8f97d4e2f7467e139ad323 (patch)
tree84b64bca5bc367d2e24f3e1cf3904c2d904461c5 /examples/objectInstancesTimer.qml
parente6a2eb1eafdcdb9f493370fc211e483804a78184 (diff)
Add ObjectInstances.findQuickWindow and passive-instrumenter exampleHEADmaster
This is a means of instrumenting any pure-QML application to generate an object diagram showing the items and related objects belonging to the first top-level window that can be found. Using a Timer for that is kindof crude; perhaps we should rather have a separate WindowFinder object that can emit a signal when a new top-level window is discovered, or something like that. Or use a Shortcut to trigger it manually. But it works well enough for now. Change-Id: Ib2d82dfd6fbd4da4b46fbaadb08de2c5e649ffe6 Reviewed-by: Shawn Rutledge <shawn.rutledge@qt.io>
Diffstat (limited to 'examples/objectInstancesTimer.qml')
-rw-r--r--examples/objectInstancesTimer.qml29
1 files changed, 29 insertions, 0 deletions
diff --git a/examples/objectInstancesTimer.qml b/examples/objectInstancesTimer.qml
new file mode 100644
index 0000000..28a336a
--- /dev/null
+++ b/examples/objectInstancesTimer.qml
@@ -0,0 +1,29 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
+
+import QtQml
+import Qt.labs.UmlQuick.Generators
+
+/*
+ This is a means of instrumenting any pure-QML application to generate an
+ object diagram showing the items and related objects belonging to
+ the first top-level window that can be found. Run it like this,
+ and it will write out a .dot file after 2 seconds:
+
+ qml objectInstancesTimer.qml testApplication.qml
+*/
+ObjectInstances {
+ id: oi
+ outputPrefix: "objects-"
+
+ property var timer: Timer {
+ interval: 2000
+ running: true
+ onTriggered: {
+ // TODO use some separate WindowFinder object instead of an invokable function;
+ // somehow that should avoid the need for a Timer
+ oi.root = findQuickWindow()
+ oi.generate()
+ }
+ }
+}