#ifndef FRAMETREEMODEL_H #define FRAMETREEMODEL_H #include #include "sequenz.h" /* * Das Modell des Objekt Baumes, welches alle Daten enthält, die dort angezeigt werden sollen */ class FrameTreeModel : public QAbstractItemModel { Q_OBJECT private: Sequenz *seq; // Prüft, ob ein Index valide ist bool isIndexValid( const QModelIndex &i ) const; public: explicit FrameTreeModel(); ~FrameTreeModel(); // Setzt die Sequenz, welche momenatan annotiert wird // s: die neue Sequenz void setSequenz( Sequenz *s ); // Gibt zurück, was für einen bestimten Knoten angezeigt werden soll // index: Der Index des Knotens // role: Welche daten des Knotens abgefragt werden sollen (z.B.:Name oder Hintergrundfarbe...) QVariant data(const QModelIndex &index, int role) const override; // Gibt die Flags eines Knotens zurück // index: Der Index des Knotens Qt::ItemFlags flags(const QModelIndex &index) const override; // Gibt die Grunddaten zurück, welche für das zeichnen benötigt werden QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override; // gibt den Index eines Knotens zurück QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const override; // gibt den Index des Elternknotens zurück QModelIndex parent(const QModelIndex &index) const override; // gibt die Anzahl der Kindknoten zurück int rowCount(const QModelIndex &parent = QModelIndex()) const override; // gibt die Anzahl der Attribute eines Kindknotens zurück int columnCount(const QModelIndex &parent = QModelIndex()) const override; // Ermittelt die zugehörige Kamera und das Zugehörige Bild eines Knotens bool clickedOnFrame( const QModelIndex &index, int &camera, int &frame ) const; // Gibt den Index des ausgewählten Bildes zurück QModelIndex getFrameSelectionIndex() const; // Gibt den Index der ausgewählten Kamera zurück QModelIndex getCameraSelectionIndex() const; // Gibt eine Liste mit ausgewählten Objekten zurück QList< QModelIndex > getSelectedPackages() const; // Aktualisiert die Tree View void update(); }; #endif // FRAMETREEMODEL_H