File indexing completed on 2024-06-16 03:42:48
0001 /* 0002 File : NetCDFFilter.h 0003 Project : LabPlot 0004 Description : NetCDF I/O-filter 0005 -------------------------------------------------------------------- 0006 SPDX-FileCopyrightText: 2015 Stefan Gerlach <stefan.gerlach@uni.kn> 0007 SPDX-License-Identifier: GPL-2.0-or-later 0008 */ 0009 #ifndef NETCDFFILTER_H 0010 #define NETCDFFILTER_H 0011 0012 #include "backend/datasources/filters/AbstractFileFilter.h" 0013 #include <QTreeWidgetItem> 0014 0015 class NetCDFFilterPrivate; 0016 0017 class NetCDFFilter : public AbstractFileFilter { 0018 Q_OBJECT 0019 0020 public: 0021 NetCDFFilter(); 0022 ~NetCDFFilter() override; 0023 0024 static QString fileInfoString(const QString&); 0025 static QString fileCDLString(const QString&); 0026 0027 void parse(const QString& fileName, QTreeWidgetItem* rootItem); 0028 void 0029 readDataFromFile(const QString& fileName, AbstractDataSource* = nullptr, AbstractFileFilter::ImportMode = AbstractFileFilter::ImportMode::Replace) override; 0030 QString readAttribute(const QString& fileName, const QString& name, const QString& varName); 0031 QVector<QStringList> readCurrentVar(const QString& fileName, 0032 AbstractDataSource* = nullptr, 0033 AbstractFileFilter::ImportMode = AbstractFileFilter::ImportMode::Replace, 0034 int lines = -1); 0035 void write(const QString& fileName, AbstractDataSource*) override; 0036 0037 void setCurrentVarName(const QString&); 0038 const QString currentVarName() const; 0039 0040 void setStartRow(const int); 0041 int startRow() const; 0042 void setEndRow(const int); 0043 int endRow() const; 0044 void setStartColumn(const int); 0045 int startColumn() const; 0046 void setEndColumn(const int); 0047 int endColumn() const; 0048 0049 void save(QXmlStreamWriter*) const override; 0050 bool load(XmlStreamReader*) override; 0051 0052 private: 0053 std::unique_ptr<NetCDFFilterPrivate> const d; 0054 friend class NetCDFFilterPrivate; 0055 }; 0056 0057 #endif