summaryrefslogtreecommitdiffstats
path: root/examples/opcua/waterpump/waterpump-qmlcpp
diff options
context:
space:
mode:
Diffstat (limited to 'examples/opcua/waterpump/waterpump-qmlcpp')
-rw-r--r--examples/opcua/waterpump/waterpump-qmlcpp/main.cpp11
-rw-r--r--examples/opcua/waterpump/waterpump-qmlcpp/opcuamachinebackend.cpp2
2 files changed, 11 insertions, 2 deletions
diff --git a/examples/opcua/waterpump/waterpump-qmlcpp/main.cpp b/examples/opcua/waterpump/waterpump-qmlcpp/main.cpp
index fb22c3d..35ec80a 100644
--- a/examples/opcua/waterpump/waterpump-qmlcpp/main.cpp
+++ b/examples/opcua/waterpump/waterpump-qmlcpp/main.cpp
@@ -93,5 +93,14 @@ int main(int argc, char *argv[])
if (engine.rootObjects().isEmpty())
return EXIT_FAILURE;
- return app.exec();
+ const int exitCode = QCoreApplication::exec();
+ if (serverProcess.state() == QProcess::Running) {
+#ifndef Q_OS_WIN
+ serverProcess.terminate();
+#else
+ serverProcess.kill();
+#endif
+ serverProcess.waitForFinished();
+ }
+ return exitCode;
}
diff --git a/examples/opcua/waterpump/waterpump-qmlcpp/opcuamachinebackend.cpp b/examples/opcua/waterpump/waterpump-qmlcpp/opcuamachinebackend.cpp
index e6ac84e..858282d 100644
--- a/examples/opcua/waterpump/waterpump-qmlcpp/opcuamachinebackend.cpp
+++ b/examples/opcua/waterpump/waterpump-qmlcpp/opcuamachinebackend.cpp
@@ -72,7 +72,7 @@ OpcUaMachineBackend::OpcUaMachineBackend(QObject *parent)
OpcUaMachineBackend::~OpcUaMachineBackend()
{
- if (m_client)
+ if (m_client && m_client->state() == QOpcUaClient::Connected)
m_client->disconnectFromEndpoint();
}