File indexing completed on 2024-05-12 03:49:08
0001 /* 0002 File : DatasetModel.h 0003 Project : LabPlot 0004 Description : Wrapper class for the collections of datasets 0005 -------------------------------------------------------------------- 0006 SPDX-FileCopyrightText: 2019 Kovacs Ferencz <kferike98@gmail.com> 0007 SPDX-FileCopyrightText: 2019 Alexander Semke <alexander.semke@web.de> 0008 0009 SPDX-License-Identifier: GPL-2.0-or-later 0010 */ 0011 #ifndef DATASETMODEL_H 0012 #define DATASETMODEL_H 0013 0014 #include <QMap> 0015 #include <QObject> 0016 #include <QVariant> 0017 0018 class DatasetModel : public QObject { 0019 Q_OBJECT 0020 0021 public: 0022 explicit DatasetModel(const QMap<QString, QMap<QString, QMap<QString, QVector<QString>>>>&); 0023 ~DatasetModel(); 0024 0025 QStringList collections(); 0026 QStringList categories(const QString&); 0027 QStringList subcategories(const QString&, const QString&); 0028 QStringList datasets(const QString&, const QString&, const QString&); 0029 int datasetCount(const QString& collection); 0030 int datasetCount(const QString& collection, const QString& category); 0031 int datasetCount(const QString& collection, const QString& category, const QString& subcategory); 0032 0033 Q_INVOKABLE QStringList allCategories(); 0034 Q_INVOKABLE QStringList allSubcategories(const QString&); 0035 Q_INVOKABLE QVariant allDatasets(const QString&, const QString&); 0036 Q_INVOKABLE QVariant allDatasetsList(); 0037 0038 private: 0039 QStringList m_collectionList; 0040 QStringList m_allCategories; 0041 QMap<QString, QStringList> m_allSubcategories; 0042 QMap<QString, QMap<QString, QStringList>> m_allDatasets; 0043 QMap<QString, QStringList> m_categories; 0044 QMap<QString, QMap<QString, QStringList>> m_subcategories; 0045 QMap<QString, QMap<QString, QMap<QString, QStringList>>> m_datasets; 0046 QStringList m_datasetList; 0047 0048 void initCollections(const QMap<QString, QMap<QString, QMap<QString, QVector<QString>>>>&); 0049 void initCategories(const QMap<QString, QMap<QString, QMap<QString, QVector<QString>>>>& datasetMap); 0050 void initSubcategories(const QMap<QString, QMap<QString, QMap<QString, QVector<QString>>>>& datasetMap); 0051 void initDatasets(const QMap<QString, QMap<QString, QMap<QString, QVector<QString>>>>& datasetMap); 0052 }; 0053 0054 #endif // DATASETMODEL_H