#pragma once #include "EventList.h" #include "PassiveEventContainer.h" #include "ltstimelineclassic_export.h" namespace LtsTimelineClassic { class Item; using ItemList = QList; class LTSTIMELINECLASSIC_EXPORT Item { public: Item(const Item&) = delete; Item& operator=(const Item&) = delete; const EventGraphicList getEventGraphics() const; explicit Item(const QString& name, const QString& identifier = QString()); ~Item(); void addItem(Item* item); bool removeEvent(int eventId); void setEventListChanged(); const QString path() const; PassiveEventContainer* getPevcon(); const EventGraphicList getCurrentEGLFromPevcon() const; void setParent(Item* parent); const QString& getName() const; void setName(const QString& name) { m_name = name; } const QString& getIdentifier() const { return m_identifier; } ItemList* getChildren(); Item* getParent() const; void addEvent(Event* event); EventList getFullEventList(bool recursive = true, bool getHiddenEvents = false) const; ItemList getFullItemList(bool recursive = true) const; Item* child(int row) const; int indexOfParent() const; int childCount() const; int visibleChildCount() const; bool hasVisibleEvents() const; private: QString m_name; QString m_identifier; ItemList* m_children; Item* m_parent; PassiveEventContainer* m_pevcon; EventList m_eventList; bool m_eventListChanged; }; } // namespace LtsTimelineClassic