File indexing completed on 2024-05-12 15:27:46
0001 /*************************************************************************** 0002 File : DatasetMetadataManagerWidget.h 0003 Project : LabPlot 0004 Description : widget for managing a metadata file of a dataset 0005 -------------------------------------------------------------------- 0006 Copyright : (C) 2019 Ferencz Kovacs (kferike98@gmail.com) 0007 0008 ***************************************************************************/ 0009 0010 /*************************************************************************** 0011 * * 0012 * This program is free software; you can redistribute it and/or modify * 0013 * it under the terms of the GNU General Public License as published by * 0014 * the Free Software Foundation; either version 2 of the License, or * 0015 * (at your option) any later version. * 0016 * * 0017 * This program is distributed in the hope that it will be useful, * 0018 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 0019 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 0020 * GNU General Public License for more details. * 0021 * * 0022 * You should have received a copy of the GNU General Public License * 0023 * along with this program; if not, write to the Free Software * 0024 * Foundation, Inc., 51 Franklin Street, Fifth Floor, * 0025 * Boston, MA 02110-1301 USA * 0026 * * 0027 ***************************************************************************/ 0028 0029 #ifndef DATASETMETADATAMANAGERWIDGET_H 0030 #define DATASETMETADATAMANAGERWIDGET_H 0031 0032 #include "ui_datasetmetadatamanagerwidget.h" 0033 0034 class DatasetModel; 0035 0036 class DatasetMetadataManagerWidget : public QWidget { 0037 Q_OBJECT 0038 0039 public: 0040 explicit DatasetMetadataManagerWidget(QWidget*, const QMap< QString, QMap<QString, QMap<QString, QVector<QString>>>>&); 0041 virtual ~DatasetMetadataManagerWidget() override; 0042 bool checkDataValidity(); 0043 void updateDocument(const QString& fileName); 0044 QString getMetadataFilePath() const; 0045 0046 void setCollection(const QString&); 0047 void setCategory(const QString&); 0048 void setSubcategory(const QString&); 0049 void setShortName(const QString&); 0050 void setFullName(const QString&); 0051 void setDescription(const QString&); 0052 void setURL(const QString&); 0053 0054 private: 0055 Ui::DatasetMetadataManagerWidget ui; 0056 DatasetModel* m_datasetModel; 0057 QStringList m_columnDescriptions; 0058 QString m_metadataFilePath; 0059 QString m_baseColor; 0060 QString m_textColor; 0061 0062 void initCategories(const QMap<QString, QMap<QString, QVector<QString>>>&); 0063 void initSubcategories(const QMap<QString, QMap<QString, QVector<QString>>>&); 0064 void initDatasets(const QMap<QString, QMap<QString, QVector<QString>>>&); 0065 bool checkFileName(); 0066 bool urlExists(); 0067 bool checkDatasetName(); 0068 bool checkDescription(); 0069 bool checkCategories(QComboBox*); 0070 void loadSettings(); 0071 void enableDatasetSettings(bool); 0072 QJsonObject createDatasetObject(); 0073 0074 private slots: 0075 void updateCategories(const QString&); 0076 void updateSubcategories(const QString&); 0077 void addColumnDescription(); 0078 void removeColumnDescription(); 0079 0080 signals: 0081 void checkOk(); 0082 }; 0083 0084 #endif // DATASETMETADATAMANAGERWIDGET_H