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 */