diff options
author | Shawn Rutledge <shawn.rutledge@qt.io> | 2023-05-31 22:48:44 +0200 |
---|---|---|
committer | Shawn Rutledge <shawn.rutledge@qt.io> | 2023-07-05 19:40:57 +0000 |
commit | 75a6949d68af37ca8d8f97d4e2f7467e139ad323 (patch) | |
tree | 84b64bca5bc367d2e24f3e1cf3904c2d904461c5 /examples | |
parent | e6a2eb1eafdcdb9f493370fc211e483804a78184 (diff) |
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')
-rw-r--r-- | examples/objectInstancesTimer.qml | 29 |
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() + } + } +} |