diff options
Diffstat (limited to 'examples/opcua/waterpump/waterpump-qmlcpp')
-rw-r--r-- | examples/opcua/waterpump/waterpump-qmlcpp/main.cpp | 11 | ||||
-rw-r--r-- | examples/opcua/waterpump/waterpump-qmlcpp/opcuamachinebackend.cpp | 2 |
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(); } |