Warning, file /frameworks/kquickcharts/src/datasource/ModelSource.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 /* 0002 * This file is part of KQuickCharts 0003 * SPDX-FileCopyrightText: 2019 Arjen Hiemstra <ahiemstra@heimr.nl> 0004 * 0005 * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0006 */ 0007 0008 #ifndef MODELSOURCE_H 0009 #define MODELSOURCE_H 0010 0011 #include <QAbstractItemModel> 0012 #include <QPointer> 0013 0014 #include "ChartDataSource.h" 0015 0016 /** 0017 * A data source that reads data from a QAbstractItemModel. 0018 * 0019 * 0020 */ 0021 class ModelSource : public ChartDataSource 0022 { 0023 Q_OBJECT 0024 Q_PROPERTY(int role READ role WRITE setRole NOTIFY roleChanged) 0025 Q_PROPERTY(QString roleName READ roleName WRITE setRoleName NOTIFY roleNameChanged) 0026 Q_PROPERTY(int column READ column WRITE setColumn NOTIFY columnChanged) 0027 Q_PROPERTY(QAbstractItemModel *model READ model WRITE setModel NOTIFY modelChanged) 0028 Q_PROPERTY(bool indexColumns READ indexColumns WRITE setIndexColumns NOTIFY indexColumnsChanged) 0029 0030 public: 0031 explicit ModelSource(QObject *parent = nullptr); 0032 0033 int role() const; 0034 void setRole(int role); 0035 Q_SIGNAL void roleChanged(); 0036 0037 QString roleName() const; 0038 void setRoleName(const QString &name); 0039 Q_SIGNAL void roleNameChanged(); 0040 0041 int column() const; 0042 void setColumn(int column); 0043 Q_SIGNAL void columnChanged(); 0044 0045 QAbstractItemModel *model() const; 0046 void setModel(QAbstractItemModel *model); 0047 Q_SIGNAL void modelChanged(); 0048 0049 bool indexColumns() const; 0050 void setIndexColumns(bool index); 0051 Q_SIGNAL void indexColumnsChanged(); 0052 0053 virtual int itemCount() const override; 0054 virtual QVariant item(int index) const override; 0055 virtual QVariant minimum() const override; 0056 virtual QVariant maximum() const override; 0057 0058 private: 0059 Q_SLOT void onMinimumChanged(); 0060 Q_SLOT void onMaximumChanged(); 0061 0062 mutable int m_role = -1; 0063 QString m_roleName; 0064 int m_column = 0; 0065 bool m_indexColumns = false; 0066 QAbstractItemModel *m_model = nullptr; 0067 0068 QVariant m_minimum; 0069 QVariant m_maximum; 0070 }; 0071 0072 #endif // MODELSOURCE_H