File indexing completed on 2024-05-12 11:55:20

0001 /*
0002     SPDX-FileCopyrightText: 2019 David Edmundson <davidedmundson@kde.org>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 // This class exposes KConcatenateRowsProxyModel in a more QML friendly way
0008 
0009 #pragma once
0010 
0011 #include <KConcatenateRowsProxyModel>
0012 
0013 #include <QObject>
0014 #include <QQmlListProperty>
0015 
0016 #if KITEMMODELS_BUILD_DEPRECATED_SINCE(5, 80)
0017 
0018 class KConcatenateRowsProxyModelQml : public QObject
0019 {
0020     Q_OBJECT
0021     Q_PROPERTY(QQmlListProperty<QAbstractItemModel> sources READ sources)
0022     Q_CLASSINFO("DefaultProperty", "sources")
0023 public:
0024     explicit KConcatenateRowsProxyModelQml(QObject *wrappedObject = nullptr);
0025     ~KConcatenateRowsProxyModelQml() override;
0026 
0027     QQmlListProperty<QAbstractItemModel> sources();
0028 
0029     static void appendSource(QQmlListProperty<QAbstractItemModel> *, QAbstractItemModel *);
0030     static int sourceCount(QQmlListProperty<QAbstractItemModel> *);
0031     static QAbstractItemModel *source(QQmlListProperty<QAbstractItemModel> *, int);
0032     static void clear(QQmlListProperty<QAbstractItemModel> *);
0033 
0034 private:
0035     KConcatenateRowsProxyModel *q;
0036 };
0037 
0038 #endif