From 60a937b5b676cb439e5942d79c5484741586d65b Mon Sep 17 00:00:00 2001 From: Klaus Basan Date: Thu, 9 Mar 2017 22:47:17 +0100 Subject: [PATCH] refs #907, model interface * extended interface, function to get simulator * made CDbMappingComponentAware an interface * public getMappingComponent --- .../components/dbautosimulatorstashingcomponent.h | 3 ++- src/blackgui/components/dbautostashingcomponent.h | 3 ++- src/blackgui/components/dbmappingcomponentaware.h | 12 +++++++----- src/blackgui/components/dbownmodelsetcomponent.h | 6 +++++- src/blackmisc/simulation/aircraftmodelinterfaces.h | 9 +++++++++ 5 files changed, 25 insertions(+), 8 deletions(-) diff --git a/src/blackgui/components/dbautosimulatorstashingcomponent.h b/src/blackgui/components/dbautosimulatorstashingcomponent.h index a8777be45..ba8e6f95e 100644 --- a/src/blackgui/components/dbautosimulatorstashingcomponent.h +++ b/src/blackgui/components/dbautosimulatorstashingcomponent.h @@ -36,6 +36,7 @@ namespace BlackGui public BlackCore::IProgressIndicator { Q_OBJECT + Q_INTERFACES(BlackGui::Components::CDbMappingComponentAware) public: //! Current state of this component @@ -50,7 +51,7 @@ namespace BlackGui explicit CDbAutoSimulatorStashingComponent(QWidget *parent = nullptr); //! Destructor - ~CDbAutoSimulatorStashingComponent(); + virtual ~CDbAutoSimulatorStashingComponent(); //! At least run once and completed bool isCompleted() const { return m_state == Completed; } diff --git a/src/blackgui/components/dbautostashingcomponent.h b/src/blackgui/components/dbautostashingcomponent.h index 1c07bcecd..d9fb5475f 100644 --- a/src/blackgui/components/dbautostashingcomponent.h +++ b/src/blackgui/components/dbautostashingcomponent.h @@ -45,6 +45,7 @@ namespace BlackGui public BlackCore::IProgressIndicator { Q_OBJECT + Q_INTERFACES(BlackGui::Components::CDbMappingComponentAware) public: //! Current state of this component @@ -62,7 +63,7 @@ namespace BlackGui explicit CDbAutoStashingComponent(QWidget *parent = nullptr); //! Destructor - ~CDbAutoStashingComponent(); + virtual ~CDbAutoStashingComponent(); //! At least run once and completed bool isCompleted() const { return m_state == Completed; } diff --git a/src/blackgui/components/dbmappingcomponentaware.h b/src/blackgui/components/dbmappingcomponentaware.h index 337ed51f0..3491af9f0 100644 --- a/src/blackgui/components/dbmappingcomponentaware.h +++ b/src/blackgui/components/dbmappingcomponentaware.h @@ -13,8 +13,7 @@ #define BLACKGUI_COMPONENTS_DBMAPPINGCOMPONENTAWARE_H #include "blackgui/blackguiexport.h" - -class QObject; +#include namespace BlackGui { @@ -29,16 +28,19 @@ namespace BlackGui //! Set the corresponding component virtual void setMappingComponent(CDbMappingComponent *component); + //! Get the mapping component + CDbMappingComponent *getMappingComponent() const { return m_mappingComponent; } + protected: //! Constructor CDbMappingComponentAware(QObject *parent); - //! Get the mapping component - CDbMappingComponent *getMappingComponent() const { return m_mappingComponent; } - private : CDbMappingComponent *m_mappingComponent = nullptr; //!< reference to component }; } // ns } // ns + +Q_DECLARE_INTERFACE(BlackGui::Components::CDbMappingComponentAware, "org.swift-project.blackgui.components.dbmappingcomponentaware") + #endif // guard diff --git a/src/blackgui/components/dbownmodelsetcomponent.h b/src/blackgui/components/dbownmodelsetcomponent.h index 7dd7d3aaa..1dcd636b4 100644 --- a/src/blackgui/components/dbownmodelsetcomponent.h +++ b/src/blackgui/components/dbownmodelsetcomponent.h @@ -49,13 +49,16 @@ namespace BlackGui public BlackMisc::Simulation::IModelsSetable, public BlackMisc::Simulation::IModelsUpdatable, public BlackMisc::Simulation::IModelsPerSimulatorSetable, - public BlackMisc::Simulation::IModelsPerSimulatorUpdatable + public BlackMisc::Simulation::IModelsPerSimulatorUpdatable, + public BlackMisc::Simulation::ISimulatorSelectable { Q_OBJECT + Q_INTERFACES(BlackGui::Components::CDbMappingComponentAware) Q_INTERFACES(BlackMisc::Simulation::IModelsSetable) Q_INTERFACES(BlackMisc::Simulation::IModelsUpdatable) Q_INTERFACES(BlackMisc::Simulation::IModelsPerSimulatorSetable) Q_INTERFACES(BlackMisc::Simulation::IModelsPerSimulatorUpdatable) + Q_INTERFACES(BlackMisc::Simulation::ISimulatorSelectable) public: //! Constructor @@ -91,6 +94,7 @@ namespace BlackGui virtual void updateModels(const BlackMisc::Simulation::CAircraftModelList &models) override { this->replaceOrAddModelSet(models, this->getModelSetSimulator()); } virtual void setModels(const BlackMisc::Simulation::CAircraftModelList &models, const BlackMisc::Simulation::CSimulatorInfo &simulator) override { this->setModelSet(models, simulator); } virtual void updateModels(const BlackMisc::Simulation::CAircraftModelList &models, const BlackMisc::Simulation::CSimulatorInfo &simulator) override { this->replaceOrAddModelSet(models, simulator); } + virtual BlackMisc::Simulation::CSimulatorInfo getSelectedSimulator() const override { return this->getModelSetSimulator(); } //! @} public slots: diff --git a/src/blackmisc/simulation/aircraftmodelinterfaces.h b/src/blackmisc/simulation/aircraftmodelinterfaces.h index 58c67aeae..872eaa2b4 100644 --- a/src/blackmisc/simulation/aircraftmodelinterfaces.h +++ b/src/blackmisc/simulation/aircraftmodelinterfaces.h @@ -50,6 +50,14 @@ namespace BlackMisc //! Set models virtual void updateModels(const CAircraftModelList &models, const CSimulatorInfo &simulator) = 0; }; + + //! Interface to "something" allowing a simulator selection + class BLACKMISC_EXPORT ISimulatorSelectable + { + public: + //! Simulator + virtual BlackMisc::Simulation::CSimulatorInfo getSelectedSimulator() const = 0; + }; } // namespace } // namespace @@ -57,5 +65,6 @@ Q_DECLARE_INTERFACE(BlackMisc::Simulation::IModelsSetable, "org.swift-project.bl Q_DECLARE_INTERFACE(BlackMisc::Simulation::IModelsUpdatable, "org.swift-project.blackmisc.simulation.imodelsupdateable") Q_DECLARE_INTERFACE(BlackMisc::Simulation::IModelsPerSimulatorSetable, "org.swift-project.blackmisc.simulation.imodelspersimulatorsetable") Q_DECLARE_INTERFACE(BlackMisc::Simulation::IModelsPerSimulatorUpdatable, "org.swift-project.blackmisc.simulation.imodelspersimulatorupdatabale") +Q_DECLARE_INTERFACE(BlackMisc::Simulation::ISimulatorSelectable, "org.swift-project.blackmisc.simulation.isimulatorselectable") #endif // guard