#pragma once #include "Event.h" #include "Item.h" #include "ltstimelineclassic_export.h" #include #include #include namespace LtsTimelineClassic { class LTSTIMELINECLASSIC_EXPORT AbstractTimelineModel : public QAbstractItemModel { Q_OBJECT public: explicit AbstractTimelineModel(QObject* parent = nullptr); ~AbstractTimelineModel(); void retranslate(); Item* getRootItem(); Event* getEvent(int uniqueId); void invalidateTimeline(); void refreshData(); qint64 highestPositionedItem() const { return m_highestPositionedItem; } qint64 lowestPositionedItem() const { return m_lowestPositionedItem; } protected: NGL::INGLLogger& m_logger; protected: void addEvent(Event* event); QVariant data(const QModelIndex& index, int role) const; Qt::ItemFlags flags(const QModelIndex& index) const; QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const; Item* itemFromIndex(const QModelIndex& idx) const; QModelIndex index(int row, int column, const QModelIndex& parent = QModelIndex()) const; QModelIndex parent(const QModelIndex& index) const; int rowCount(const QModelIndex& parent = QModelIndex()) const; int columnCount(const QModelIndex& parent = QModelIndex()) const; virtual qint64 currentTime() const = 0; qint64 m_highestPositionedItem; qint64 m_lowestPositionedItem; bool m_getEventListsRecursive; Item* m_rootItem; Item* m_markersItem; signals: void signalContextMenu(const QPoint& position, Event* affectedEvent); void signalClicked(Event* affectedEvent); void signalToolTip(const QPoint& p, Event* e); }; } // namespace LtsTimelineClassic