File indexing completed on 2024-05-12 16:02:09

0001 /* This file is part of the KDE project
0002  * SPDX-FileCopyrightText: 2011 Thorsten Zachmann <zachmann@kde.org>
0003  *
0004  * SPDX-License-Identifier: LGPL-2.0-or-later
0005  */
0006 
0007 #ifndef KOMARKERMODEL_H
0008 #define KOMARKERMODEL_H
0009 
0010 #include <KoFlake.h>
0011 #include <QAbstractListModel>
0012 #include <QExplicitlySharedDataPointer>
0013 
0014 
0015 class KoMarker;
0016 
0017 class KoMarkerModel : public QAbstractListModel
0018 {
0019 public:
0020     KoMarkerModel(const QList<KoMarker*> markers, KoFlake::MarkerPosition position, QObject *parent = 0);
0021     ~KoMarkerModel() override;
0022 
0023     int rowCount(const QModelIndex &parent = QModelIndex()) const override;
0024     QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
0025 
0026     int markerIndex(KoMarker *marker) const;
0027 
0028     // returns index of the newly added temporary marker
0029     int addTemporaryMarker(KoMarker *marker);
0030     // removes a temporary marker added by \ref addTemporaryMarker
0031     void removeTemporaryMarker();
0032 
0033     int temporaryMarkerPosition() const;
0034 
0035     QVariant marker(int index, int role = Qt::UserRole) const;
0036     KoFlake::MarkerPosition position() const;
0037 
0038 private:
0039     QList<QExplicitlySharedDataPointer<KoMarker>> m_markers;
0040     KoFlake::MarkerPosition m_markerPosition;
0041     int m_temporaryMarkerPosition;
0042 };
0043 
0044 #endif /* KOMARKERMODEL_H */