From 0ee7df32b5271220d85f46c43ebc1bb79f00c282 Mon Sep 17 00:00:00 2001 From: Gerhard Hoffmann Date: Fri, 10 Nov 2023 13:12:59 +0100 Subject: [PATCH] Handle settings. Handle object-parent. --- src/ATBAPP/ATBVMCPlugin.cpp | 13 ++++++++----- src/ATBAPP/ATBVMCPlugin.h | 6 ++++++ src/ATBAPP/UnifiedDCVMCInterface.h | 6 +++++- src/ATBAPP/VMCInterface.h | 6 ++++++ 4 files changed, 25 insertions(+), 6 deletions(-) diff --git a/src/ATBAPP/ATBVMCPlugin.cpp b/src/ATBAPP/ATBVMCPlugin.cpp index 8656d1c..01cfce3 100644 --- a/src/ATBAPP/ATBVMCPlugin.cpp +++ b/src/ATBAPP/ATBVMCPlugin.cpp @@ -13,16 +13,15 @@ #include - ATBVMCPlugin::ATBVMCPlugin(QObject *parent) - : m_errorCode("") + : VMCInterface(parent) + , m_errorCode("") , m_errorDescription("") , m_pluginInfo("") , m_serialPortName("") , m_useDebug(false) , m_pluginState(PLUGIN_STATE::NOT_INITIALIZED) , m_eventReceiver(nullptr) { - this->setParent(parent); } ATBVMCPlugin::~ATBVMCPlugin() { @@ -30,8 +29,12 @@ ATBVMCPlugin::~ATBVMCPlugin() { PLUGIN_STATE ATBVMCPlugin::initVMCPlugin(QObject *eventReceiver, QSettings const &settings) { - Q_UNUSED(eventReceiver); - Q_UNUSED(settings); + m_eventReceiver = eventReceiver; + m_settings = &settings; + + // Beachte: QSettings hat .fileName(). + // Damit kann man dann ATBSystem benutzen. + return PLUGIN_STATE::NOT_INITIALIZED; } diff --git a/src/ATBAPP/ATBVMCPlugin.h b/src/ATBAPP/ATBVMCPlugin.h index c6aed0f..61358f3 100644 --- a/src/ATBAPP/ATBVMCPlugin.h +++ b/src/ATBAPP/ATBVMCPlugin.h @@ -2,6 +2,7 @@ #define ATBVMCPLUGIN_H #include +#include #include "src/ATBAPP/VMCInterface.h" #include "src/ATBAPP/ATBAPPplugin.h" @@ -9,7 +10,11 @@ #include "version.h" #include "include/interfaces.h" +#include "vmc.h" +class ATBHMIconfig; +class AppControl; +class ATBSystem; class ATBVMCPlugin : public VMCInterface { Q_OBJECT @@ -56,6 +61,7 @@ private: bool m_useDebug; PLUGIN_STATE m_pluginState; QObject* m_eventReceiver; + QSettings const *m_settings; }; #endif // ATBDEVICECONTROLLERPLUGIN_H diff --git a/src/ATBAPP/UnifiedDCVMCInterface.h b/src/ATBAPP/UnifiedDCVMCInterface.h index 1fbedc3..2326243 100644 --- a/src/ATBAPP/UnifiedDCVMCInterface.h +++ b/src/ATBAPP/UnifiedDCVMCInterface.h @@ -11,6 +11,10 @@ #include "ATBAPPplugin.h" +class ATBHMIconfig; +class AppControl; +class ATBSystem; + class UnifiedDCVMCInterface : public QObject, public ATBAPPplugin { Q_OBJECT @@ -43,7 +47,7 @@ public: STOP_RECEIPT, // e.g. Szeged Stop }; - explicit UnifiedDCVMCInterface() = default; + explicit UnifiedDCVMCInterface(QObject *parent = nullptr) : QObject(parent) {} virtual ~UnifiedDCVMCInterface() {} virtual PLUGIN_STATE initPlugin(QObject *eventReceiver, QSettings const &settings) = 0; diff --git a/src/ATBAPP/VMCInterface.h b/src/ATBAPP/VMCInterface.h index 743ce95..2d1efc9 100644 --- a/src/ATBAPP/VMCInterface.h +++ b/src/ATBAPP/VMCInterface.h @@ -16,6 +16,9 @@ namespace nsVMCInterface { using TICKET_VARIANT = UnifiedDCVMCInterface::TICKET_VARIANT; } + +class ATBHMIconfig; + class VMCInterface : public UnifiedDCVMCInterface { Q_OBJECT @@ -24,6 +27,9 @@ class VMCInterface : public UnifiedDCVMCInterface { public: + explicit VMCInterface(QObject *parent = nullptr) + : UnifiedDCVMCInterface(parent) {} + virtual PLUGIN_STATE initPlugin(QObject *eventReceiver, QSettings const &settings) override { return initVMCPlugin(eventReceiver, settings); }