File indexing completed on 2025-09-14 03:43:25
0001 /* 0002 File : WelcomeScreenHelper.h 0003 Project : LabPlot 0004 Description : Helper class for the welcome screen 0005 -------------------------------------------------------------------- 0006 SPDX-FileCopyrightText: 2019 Ferencz Kovacs <kferike98@gmail.com> 0007 0008 SPDX-License-Identifier: GPL-2.0-or-later 0009 */ 0010 #ifndef WELCOMESCREENHELPER_H 0011 #define WELCOMESCREENHELPER_H 0012 0013 #include <QMap> 0014 #include <QObject> 0015 #include <QPixmap> 0016 #include <QVariant> 0017 #include <memory> 0018 0019 class ImportDatasetWidget; 0020 class DatasetHandler; 0021 class Spreadsheet; 0022 class DatasetModel; 0023 0024 class WelcomeScreenHelper : public QObject { 0025 Q_OBJECT 0026 0027 public: 0028 WelcomeScreenHelper(); 0029 ~WelcomeScreenHelper(); 0030 0031 Q_INVOKABLE QVariant datasetName(); 0032 Q_INVOKABLE QVariant datasetDescription(); 0033 Q_INVOKABLE QVariant datasetColumns(); 0034 Q_INVOKABLE QVariant datasetRows(); 0035 Q_INVOKABLE QVariant getProjectThumbnail(const QUrl&); 0036 Q_INVOKABLE QVariant getExampleProjectThumbnail(const QString&); 0037 Q_INVOKABLE QVariant getExampleProjects(); 0038 Q_INVOKABLE QVariant searchExampleProjects(const QString& searchtext); 0039 Q_INVOKABLE QVariant getExampleProjectTags(const QString&); 0040 Q_INVOKABLE void setWidthScale(const QString& sectionID, double scale); 0041 Q_INVOKABLE void setHeightScale(const QString& sectionID, double scale); 0042 Q_INVOKABLE QVariant getWidthScale(const QString& sectionID); 0043 Q_INVOKABLE QVariant getHeightScale(const QString& sectionID); 0044 Q_INVOKABLE QVariant getMaxIcon(); 0045 Q_INVOKABLE QVariant getMinIcon(); 0046 Q_INVOKABLE QVariant getBackIcon(); 0047 Q_INVOKABLE QVariant getForwardIcon(); 0048 0049 Spreadsheet* releaseConfiguredSpreadsheet(); 0050 DatasetModel* getDatasetModel(); 0051 0052 public Q_SLOTS: 0053 void datasetClicked(const QString& category, const QString& subcategory, const QString& datasetName); 0054 void exampleProjectClicked(const QString&); 0055 0056 private: 0057 DatasetModel* m_datasetModel{nullptr}; 0058 ImportDatasetWidget* m_datasetWidget{nullptr}; 0059 DatasetHandler* m_datasetHandler{nullptr}; 0060 mutable std::unique_ptr<Spreadsheet> m_spreadsheet{nullptr}; 0061 QStringList m_projectNameList; 0062 QMap<QString, QStringList> m_tagMap; 0063 QMap<QString, QStringList> m_datasetTag; 0064 QMap<QString, QString> m_pathMap; 0065 QMap<QString, double> m_widthScale; 0066 QMap<QString, double> m_heightScale; 0067 QPixmap m_maxIcon; 0068 QPixmap m_minIcon; 0069 0070 void processExampleProjects(); 0071 void loadConfig(); 0072 0073 Q_SIGNALS: 0074 void datasetFound(); 0075 void datasetNotFound(); 0076 void showFirstDataset(); 0077 void openExampleProject(QString); 0078 }; 0079 #endif // WELCOMESCREENHELPER_H