/** * Exercise object * $Id$ * $HeadURL$ * $Author$ */ #pragma once #include "aes_db.h" #include "object_base.h" namespace AreaEffectSimulation { class ObjectBoobyTrap final : public ObjectBaseTmpl { Q_OBJECT public: explicit ObjectBoobyTrap(MainHandler *mainHandler, QObject *parent = nullptr); ~ObjectBoobyTrap(); Core::FunctionReplyObject createObject(const Database::AesBoobyTrap &data); Core::FunctionReplyObject updateObject(const Database::AesBoobyTrap &data) override; /*! * \brief removeObjectFromDb * \details Currently not used for this object * \author Niklas Schmidt * \return bool if the deletion was working */ bool removeObjectFromDb(); std::vector form() const override { return m_aiv.form(); } QPolygonF generateForm() override; AesType aesType() const override { return AesType::AtBoobyTrap; } bool isCentral() const override { return m_data.isCentral; } void removeTopics(); protected: ProjectDataManagement::VolatilityType volatilityType() const; void setEffectState(AesEffectState newState) override; void publishAiv(); protected Q_SLOTS: void onUpdateAiv(); void onPublishData() override; private: QTimer *m_aivUpdateTimer; AesItemView m_aiv; AesItemView m_aiv2; }; }