File indexing completed on 2024-05-19 05:38:22

0001 /*
0002  *    SPDX-FileCopyrightText: 2023 Ismael Asensio <isma.af@gmail.com>
0003  *
0004  *    SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0005  */
0006 
0007 #pragma once
0008 
0009 #include <QAbstractProxyModel>
0010 
0011 class EventsProxyModel : public QAbstractProxyModel
0012 {
0013     Q_OBJECT
0014     Q_PROPERTY(QModelIndex rootIndex READ rootIndex WRITE setRootIndex NOTIFY rootIndexChanged)
0015 
0016 public:
0017     explicit EventsProxyModel(QObject *parent);
0018 
0019     QModelIndex mapToSource(const QModelIndex &proxyIndex) const override;
0020     QModelIndex mapFromSource(const QModelIndex &sourceIndex) const override;
0021 
0022     QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const override;
0023     QModelIndex parent(const QModelIndex &index) const override;
0024     int rowCount(const QModelIndex &index) const override;
0025     int columnCount(const QModelIndex &index) const override;
0026 
0027     QModelIndex rootIndex() const;
0028     void setRootIndex(const QModelIndex &index);
0029     Q_SIGNAL void rootIndexChanged();
0030 
0031 private Q_SLOTS:
0032     void updateDataConnection();
0033 
0034 private:
0035     QModelIndex m_rootIndex;
0036 };