aboutsummaryrefslogtreecommitdiffstats
path: root/demo/NodePage.qml
diff options
context:
space:
mode:
Diffstat (limited to 'demo/NodePage.qml')
-rw-r--r--demo/NodePage.qml57
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
})
}
}