21#include <MltProducer.h>
23#include <QAbstractItemModel>
40class MarkersModel :
public QAbstractItemModel
43 Q_PROPERTY(QStringList recentColors READ recentColors NOTIFY recentColorsChanged)
48 TextRole = Qt::UserRole + 1,
54 explicit MarkersModel(QObject *parent = 0);
55 virtual ~MarkersModel();
57 void load(Mlt::Producer *producer);
58 Markers::Marker getMarker(
int markerIndex);
59 int uniqueKey()
const;
60 int markerIndexForPosition(
int position);
61 int markerIndexForRange(
int start,
int end);
62 Q_INVOKABLE
int nextMarkerPosition(
int position);
63 Q_INVOKABLE
int prevMarkerPosition(
int position);
64 QModelIndex modelIndexForRow(
int row);
65 QMap<int, QString> ranges();
66 QStringList recentColors();
67 QList<Markers::Marker> getMarkers()
const;
68 QList<QColor> allColors()
const;
71 void doRemove(
int markerIndex);
72 void doInsert(
int markerIndex,
const Markers::Marker &marker);
73 void doAppend(
const Markers::Marker &marker);
74 void doUpdate(
int markerIndex,
const Markers::Marker &marker);
76 void doReplace(QList<Markers::Marker> &markers);
77 void doShift(
int shiftPosition,
int shiftAmount);
82 void recentColorsChanged();
85 void remove(
int markerIndex);
86 void append(
const Markers::Marker &marker);
87 void update(
int markerIndex,
const Markers::Marker &marker);
88 void move(
int markerIndex,
int start,
int end);
89 void setColor(
int markerIndex,
const QColor &color);
94 int rowCount(
const QModelIndex &parent)
const;
95 int columnCount(
const QModelIndex &parent)
const;
96 QVariant data(
const QModelIndex &index,
int role)
const;
97 QVariant headerData(
int section, Qt::Orientation orientation,
int role)
const;
98 QModelIndex index(
int row,
int column = 0,
const QModelIndex &parent = QModelIndex())
const;
99 QModelIndex parent(
const QModelIndex &index)
const;
100 QHash<int, QByteArray> roleNames()
const;
103 int markerCount()
const;
104 int keyIndex(
int key)
const;
105 Mlt::Properties *getMarkerProperties(
int markerIndex);
106 void updateRecentColors(
const QColor &color);
108 Mlt::Producer *m_producer;
110 QMap<QRgb, QString> m_recentColors;