File indexing completed on 2025-11-16 04:46:31

0001 /*
0002  * SPDX-FileCopyrightText: 2021 Dimitris Kardarakos <dimkard@posteo.net>
0003  *
0004  * SPDX-License-Identifier: GPL-3.0-or-later
0005  */
0006 
0007 #pragma once
0008 
0009 #include <QQmlEngine>
0010 #include <QSortFilterProxyModel>
0011 
0012 /**
0013  * @brief Filters and sorts FeedsModel
0014  *
0015  */
0016 class FeedsProxyModel : public QSortFilterProxyModel
0017 {
0018     Q_OBJECT
0019     QML_ELEMENT
0020 
0021     Q_PROPERTY(QString groupName READ groupName WRITE setGroupName NOTIFY groupNameChanged)
0022 
0023 public:
0024     explicit FeedsProxyModel(QObject *parent = nullptr);
0025     ~FeedsProxyModel() override;
0026 
0027     bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const override;
0028     bool lessThan(const QModelIndex &source_left, const QModelIndex &source_right) const override;
0029 
0030     QString groupName() const;
0031     void setGroupName(const QString &name);
0032 
0033 Q_SIGNALS:
0034     void groupNameChanged();
0035 
0036 private:
0037     QString m_group_name;
0038 };