diff options
Diffstat (limited to 'demo/NodePage.qml')
| -rw-r--r-- | demo/NodePage.qml | 57 |
1 files changed, 30 insertions, 27 deletions
diff --git a/demo/NodePage.qml b/demo/NodePage.qml index 97c99ef..6368a8e 100644 --- a/demo/NodePage.qml +++ b/demo/NodePage.qml @@ -1,4 +1,6 @@ // NodePage.qml — Displays 10 OPC UA nodes per page with tooltips. +pragma ComponentBehavior: Bound + import QtQuick import QtQuick.Controls import QtQuick.Layouts @@ -8,7 +10,6 @@ Page { id: nodePage readonly property var currentPage: pages[pageNumber - 1] - required property var logFunction required property int pageNumber readonly property var pages: [ { @@ -92,6 +93,8 @@ Page { "Suspended", "Shutdown", "Test", "CommunicationFault", "Unknown"] required property StackView stackRef + signal logRequested(string message) + function formatValue(node) { var v = node.value; if (v === undefined || String(v) === "") @@ -102,10 +105,11 @@ Page { return String(v); } - Component.onCompleted: nodePage.logFunction(currentPage.title - + " page loaded (" - + currentPage.nodes.length - + " nodes)") + StackView.onStatusChanged: { + if (nodePage.StackView.status === StackView.Active) + nodePage.logRequested(nodePage.currentPage.title + " page loaded (" + + nodePage.currentPage.nodes.length + " nodes)"); + } ColumnLayout { anchors.fill: parent @@ -117,7 +121,7 @@ Page { Label { font.bold: true font.pointSize: 14 - text: currentPage.title + text: nodePage.currentPage.title } Label { @@ -143,8 +147,8 @@ Page { Layout.fillWidth: true color: "gray" font.italic: true - text: currentPage.description || "" - visible: currentPage.description !== undefined + text: nodePage.currentPage.description || "" + visible: nodePage.currentPage.description !== undefined wrapMode: Text.WordWrap } @@ -179,12 +183,12 @@ Page { Layout.fillWidth: true color: "#ccc" - height: 1 + implicitHeight: 1 } // Nodes Repeater { - model: currentPage.nodes + model: nodePage.currentPage.nodes ItemDelegate { id: delegate @@ -227,7 +231,7 @@ Page { elide: Text.ElideRight text: { if (node.info.displayName) - return node.info.displayName; + return node.info.displayName; var idx = node.nodeId.indexOf(";s="); return idx >= 0 ? node.nodeId.substring(idx + 3) : node.nodeId; @@ -249,14 +253,16 @@ Page { Layout.fillWidth: true placeholderText: "Enter value..." - visible: node.writable && !currentPage.indexRange + visible: node.writable && + !nodePage.currentPage.indexRange onAccepted: node.writeValue(text) } Button { text: "Write" - visible: node.writable && !currentPage.indexRange + visible: node.writable && + !nodePage.currentPage.indexRange onClicked: node.writeValue(editField.text) } @@ -267,8 +273,8 @@ Page { Layout.preferredWidth: 60 placeholderText: "Range" - visible: node.writable && currentPage.indexRange - === true + visible: node.writable + && nodePage.currentPage.indexRange === true } TextField { @@ -276,8 +282,8 @@ Page { Layout.fillWidth: true placeholderText: "Value(s)..." - visible: node.writable && currentPage.indexRange - === true + visible: node.writable + && nodePage.currentPage.indexRange === true onAccepted: node.writeValueAtRange(text, rangeField.text) @@ -285,8 +291,8 @@ Page { Button { text: "Write Range" - visible: node.writable && currentPage.indexRange - === true + visible: node.writable + && nodePage.currentPage.indexRange === true onClicked: node.writeValueAtRange(rangeValueField.text, rangeField.text) @@ -308,11 +314,10 @@ Page { nodeId: delegate.modelData onWriteCompleted: (success, message) => { - var short_id = node.nodeId.substring( - node.nodeId.indexOf(";s=") + 3); - nodePage.logFunction(short_id + ": " - + message); - } + var short_id = node.nodeId.substring(node.nodeId.indexOf( + ";s=") + 3); + nodePage.logRequested(short_id + ": " + message); + } } } } @@ -344,9 +349,7 @@ Page { "stackRef": nodePage.stackRef, "pageNumber": - nodePage.pageNumber + 1, - "logFunction": - nodePage.logFunction + nodePage.pageNumber + 1 }) } } |
