#include "ConnectionStatus.h" #include namespace { ConnectionStatus* g_instance = nullptr; } // namespace ConnectionStatus::ConnectionStatus(QObject* parent) : QObject(parent) { Q_ASSERT(!g_instance); g_instance = this; } ConnectionStatus::~ConnectionStatus() { g_instance = nullptr; } void ConnectionStatus::setDevice(const QString& deviceName, const QString& broker) { m_configured = true; m_deviceName = deviceName; m_broker = broker; emit changed(); } void ConnectionStatus::setConnection(MqttClient::State state, const QString& error) { switch (state) { case MqttClient::State::Disconnected: m_state = State::Disconnected; break; case MqttClient::State::Connecting: m_state = State::Connecting; break; case MqttClient::State::Connected: m_state = State::Connected; break; } if (!error.isEmpty()) m_lastError = error; emit changed(); } ConnectionStatus* ConnectionStatus::create(QQmlEngine*, QJSEngine*) { Q_ASSERT(g_instance); // Owned by the app, not by the QML engine. QJSEngine::setObjectOwnership(g_instance, QJSEngine::CppOwnership); return g_instance; }