From e73fe498e86dbb20d74f8d6ca13b541642676b82 Mon Sep 17 00:00:00 2001 From: Thomas Vanbesien Date: Thu, 19 Feb 2026 18:00:52 +0100 Subject: Rename QML singleton to Bobink and simplify singleton lifecycle Replace QML_ELEMENT with QML_NAMED_ELEMENT(Bobink) so QML references use `Bobink` instead of `BobinkClient`. Remove instance()/create() factory in favor of inline s_instance set in the constructor. Import BobinkPlugin statically in demo, link demo to BobinkQtOpcUaplugin, and make library link dependencies PUBLIC. Add .qtcreator to gitignore. --- src/BobinkClient.cpp | 28 +++------------------------- 1 file changed, 3 insertions(+), 25 deletions(-) (limited to 'src/BobinkClient.cpp') diff --git a/src/BobinkClient.cpp b/src/BobinkClient.cpp index f8303a3..01f9912 100644 --- a/src/BobinkClient.cpp +++ b/src/BobinkClient.cpp @@ -11,8 +11,6 @@ using namespace Qt::Literals::StringLiterals; -BobinkClient *BobinkClient::s_instance = nullptr; - static QString defaultPkiDir () { @@ -36,35 +34,15 @@ BobinkClient::BobinkClient (QObject *parent) : QObject (parent), m_provider (new QOpcUaProvider (this)), m_pkiDir (defaultPkiDir ()) { + // Singleton pattern: construct only once + Q_ASSERT(!s_instance); ensurePkiDirs (m_pkiDir); setupClient (); autoDetectPki (); applyPki (); connect (&m_discoveryTimer, &QTimer::timeout, this, &BobinkClient::doDiscovery); -} - -BobinkClient::~BobinkClient () -{ - if (s_instance == this) - s_instance = nullptr; -} - -BobinkClient * -BobinkClient::instance () -{ - return s_instance; -} - -BobinkClient * -BobinkClient::create (QQmlEngine *, QJSEngine *) -{ - if (!s_instance) - { - s_instance = new BobinkClient; - QJSEngine::setObjectOwnership (s_instance, QJSEngine::CppOwnership); - } - return s_instance; + s_instance = this; } void -- cgit v1.2.3