File indexing completed on 2024-04-28 15:39:06
0001 // SPDX-FileCopyrightText: 2020-2022 Tobias Leupold <tl at stonemx dot de> 0002 // 0003 // SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0004 0005 #ifndef IMAGESLISTFILTER_H 0006 #define IMAGESLISTFILTER_H 0007 0008 // Local includes 0009 #include "KGeoTag.h" 0010 0011 // Qt includes 0012 #include <QSortFilterProxyModel> 0013 0014 // Local classes 0015 class ImagesModel; 0016 0017 class ImagesListFilter : public QSortFilterProxyModel 0018 { 0019 Q_OBJECT 0020 0021 public: 0022 explicit ImagesListFilter(QObject *parent, KGeoTag::ImagesListType type); 0023 void setSourceModel(QAbstractItemModel *sourceModel) override; 0024 Qt::DropActions supportedDropActions() const override; 0025 Qt::ItemFlags flags(const QModelIndex &index) const override; 0026 bool canDropMimeData(const QMimeData *data, Qt::DropAction action, int, int, 0027 const QModelIndex &) const override; 0028 bool dropMimeData(const QMimeData *data, Qt::DropAction action, int, int, 0029 const QModelIndex &) override; 0030 void setListType(KGeoTag::ImagesListType type); 0031 0032 Q_SIGNALS: 0033 void requestAddingImages(const QVector<QString> &paths); 0034 void requestRemoveCoordinates(const QVector<QString> &paths); 0035 0036 protected: 0037 bool filterAcceptsRow(int sourceRow, const QModelIndex &) const override; 0038 0039 private: // Variables 0040 KGeoTag::ImagesListType m_listType; 0041 ImagesModel *m_imagesModel; 0042 0043 }; 0044 0045 #endif // IMAGESLISTFILTER_H