File indexing completed on 2025-11-02 03:43:15

0001 /*
0002     File                 : DatasetMetadataManagerWidget.h
0003     Project              : LabPlot
0004     Description          : widget for managing a metadata file of a dataset
0005     --------------------------------------------------------------------
0006     SPDX-FileCopyrightText: 2019 Ferencz Kovacs <kferike98@gmail.com>
0007     SPDX-License-Identifier: GPL-2.0-or-later
0008 */
0009 
0010 #ifndef DATASETMETADATAMANAGERWIDGET_H
0011 #define DATASETMETADATAMANAGERWIDGET_H
0012 
0013 #include "ui_datasetmetadatamanagerwidget.h"
0014 
0015 class DatasetModel;
0016 
0017 class DatasetMetadataManagerWidget : public QWidget {
0018     Q_OBJECT
0019 
0020 public:
0021     explicit DatasetMetadataManagerWidget(QWidget*, const QMap<QString, QMap<QString, QMap<QString, QVector<QString>>>>&);
0022     virtual ~DatasetMetadataManagerWidget() override;
0023     bool checkDataValidity();
0024     void updateDocument(const QString& fileName);
0025     QString getMetadataFilePath() const;
0026 
0027     void setCollection(const QString&);
0028     void setCategory(const QString&);
0029     void setSubcategory(const QString&);
0030     void setShortName(const QString&);
0031     void setFullName(const QString&);
0032     void setDescription(const QString&);
0033     void setURL(const QString&);
0034 
0035 private:
0036     Ui::DatasetMetadataManagerWidget ui;
0037     DatasetModel* m_datasetModel;
0038     QStringList m_columnDescriptions;
0039     QString m_metadataFilePath;
0040     QString m_baseColor;
0041     QString m_textColor;
0042 
0043     void initCategories(const QMap<QString, QMap<QString, QVector<QString>>>&);
0044     void initSubcategories(const QMap<QString, QMap<QString, QVector<QString>>>&);
0045     void initDatasets(const QMap<QString, QMap<QString, QVector<QString>>>&);
0046     bool checkFileName();
0047     bool urlExists();
0048     bool checkDatasetName();
0049     bool checkDescription();
0050     bool checkCategories(QComboBox*);
0051     void loadSettings();
0052     void enableDatasetSettings(bool);
0053     QJsonObject createDatasetObject();
0054 
0055 private Q_SLOTS:
0056     void updateCategories(const QString&);
0057     void updateSubcategories(const QString&);
0058     void addColumnDescription();
0059     void removeColumnDescription();
0060 
0061 Q_SIGNALS:
0062     void checkOk();
0063 };
0064 
0065 #endif // DATASETMETADATAMANAGERWIDGET_H