/** *@RDE_HEADER@ * Gui Plugin for Building - Info * $Id$ * $HeadURL$ * $Author$ * Created by hjl, SLSE, 2017-04-05 */ #pragma once //Buildings #include "bld_search.h" #include #include #include // Common #include #include // Forward: class QShortcut; namespace Buildings { class GuiPlugin final : public QObject, public GuiPluginBase::Plugin { Q_PLUGIN_METADATA(IID "gui:3:bld.info") Q_INTERFACES(GuiPluginBase::Plugin) Q_OBJECT public: GuiPlugin() = default; ~GuiPlugin() = default; QString pluginName() override { return QLatin1String("BuildingInfoGui"); } std::shared_ptr createGuiInterface(LtsSession::LtsSession *session) override; bool availableInPartition(IDL::PartitionType partition) const override { return (partition == IDL::PartitionType::Global) || // for App 'ResourceManager' (partition == IDL::PartitionType::Exercise) || (partition == IDL::PartitionType::Replay); } }; class InterfaceImpl final : public QObject, public Buildings::ForeignInfoGuiInterface, public GuiPluginBase::Interface { Q_OBJECT public: explicit InterfaceImpl(LtsSession::LtsSession *session); bool fetchInterfaces() override; void clearInterfaces() override; QString menuGroup() const override; // anders als in GuiPlugin - hmm, Mike sagt, so lassen - hmm: bool availableInPartition(IDL::PartitionType partition) const override { return (partition == IDL::PartitionType::Global) || (partition == IDL::PartitionType::Exercise) || (partition == IDL::PartitionType::Replay); } QVector getActions() override; // ForeignDataInterface void showInfoWindow(const QVector &bldEntityIds) override; void showInfoWindow(int bldEntityId) override; void showEffectGenerationUnitWindow(int mountingPointId) override; void showHitLineInfoWindow(const QVector &hitLineIds) override; void showHitLineInfoWindow(int hitLineId) override; void showBridgeInfoWindow(const QVector &bldEntityIds) override; void showBridgeInfoWindow(int buildingId) override; private Q_SLOTS: void showBuildingSearchDialog(); void onBuildinSearchStringEntered(const QString &searchString); private: QShortcut *m_scSearchBuilding{nullptr}; QPointer m_buildingShowModalPtr; QPointer m_buildingShowQWidgetPtr; // for OC std::shared_ptr m_ismDtc; std::shared_ptr m_ismDataIfc; }; } // namespace Buildings