From 647ee6cced99a7259ca4a8103299a09e283ca3ca Mon Sep 17 00:00:00 2001 From: Don Gagne Date: Wed, 26 Nov 2014 12:03:13 -0800 Subject: [PATCH] Mocks need QGCSingleton which does not register --- src/QGCSingleton.cc | 6 ++++-- src/QGCSingleton.h | 4 +++- src/qgcunittest/MockUASManager.cc | 1 + src/uas/UASManagerInterface.h | 5 ++++- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/QGCSingleton.cc b/src/QGCSingleton.cc index 5cda7a69a..6b4c98fc3 100644 --- a/src/QGCSingleton.cc +++ b/src/QGCSingleton.cc @@ -29,8 +29,10 @@ #include "QGCSingleton.h" #include "QGCApplication.h" -QGCSingleton::QGCSingleton(QObject* parent) : +QGCSingleton::QGCSingleton(QObject* parent, bool registerSingleton) : QObject(parent) { - qgcApp()->registerSingleton(this); + if (registerSingleton) { + qgcApp()->registerSingleton(this); + } } diff --git a/src/QGCSingleton.h b/src/QGCSingleton.h index 708f1bcdf..b3975dd24 100644 --- a/src/QGCSingleton.h +++ b/src/QGCSingleton.h @@ -39,7 +39,9 @@ class QGCSingleton : public QObject public: /// @brief Contructor will register singleton to QGCApplication - QGCSingleton(QObject* parent = NULL); + /// @param parent Parent object + /// @param registerSingleton true: register with QGCApplication, false: do not register (only used for Mock implementations) + QGCSingleton(QObject* parent = NULL, bool registerSingleton = true); /// @brief Implementation should delete the singleton such that next call to instance /// will create a new singleton. diff --git a/src/qgcunittest/MockUASManager.cc b/src/qgcunittest/MockUASManager.cc index 6a0cee67a..960bafede 100644 --- a/src/qgcunittest/MockUASManager.cc +++ b/src/qgcunittest/MockUASManager.cc @@ -24,6 +24,7 @@ #include "MockUASManager.h" MockUASManager::MockUASManager(void) : + UASManagerInterface(NULL, false /* do not register singleton with QGCApplication */), _mockUAS(NULL) { diff --git a/src/uas/UASManagerInterface.h b/src/uas/UASManagerInterface.h index 4bb5d4967..bf611c6d7 100644 --- a/src/uas/UASManagerInterface.h +++ b/src/uas/UASManagerInterface.h @@ -57,7 +57,10 @@ class UASManagerInterface : public QGCSingleton Q_OBJECT public: - UASManagerInterface(QObject* parent = NULL) : QGCSingleton(parent) { } + /// @brief Contructor will register singleton to QGCApplication + /// @param parent Parent object + /// @param registerSingleton true: register with QGCApplication, false: do not register (only used for Mock implementations) + UASManagerInterface(QObject* parent = NULL, bool registerSingleton = true) : QGCSingleton(parent, registerSingleton) { } virtual UASInterface* getActiveUAS() = 0; virtual UASWaypointManager *getActiveUASWaypointManager() = 0; -- 2.22.0