1 /* SPDX-FileCopyrightText: 2020 Tobias Leupold <tobias.leupold@gmx.de> 2 3 SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-KDE-Accepted-GPL 4 */ 5 6 #ifndef IMAGESLISTFILTER_H 7 #define IMAGESLISTFILTER_H 8 9 // Local includes 10 #include "KGeoTag.h" 11 12 // Qt includes 13 #include <QSortFilterProxyModel> 14 15 // Local classes 16 class ImagesModel; 17 18 class ImagesListFilter : public QSortFilterProxyModel 19 { 20 Q_OBJECT 21 22 public: 23 explicit ImagesListFilter(QObject *parent, KGeoTag::ImagesListType type); 24 void setSourceModel(QAbstractItemModel *sourceModel) override; 25 Qt::DropActions supportedDropActions() const override; 26 Qt::ItemFlags flags(const QModelIndex &index) const override; 27 bool canDropMimeData(const QMimeData *data, Qt::DropAction action, int, int, 28 const QModelIndex &) const override; 29 bool dropMimeData(const QMimeData *data, Qt::DropAction action, int, int, 30 const QModelIndex &) override; 31 void setListType(KGeoTag::ImagesListType type); 32 33 signals: 34 void requestAddingImages(const QVector<QString> &paths); 35 void requestRemoveCoordinates(const QVector<QString> &paths); 36 37 protected: 38 bool filterAcceptsRow(int sourceRow, const QModelIndex &) const override; 39 40 private: // Variables 41 KGeoTag::ImagesListType m_listType; 42 ImagesModel *m_imagesModel; 43 44 }; 45 46 #endif // IMAGESLISTFILTER_H 47