File indexing completed on 2024-06-16 03:42:45
0001 /* 0002 File : FITSFilterPrivate.cpp 0003 Project : LabPlot 0004 Description : FITS I/O-filter 0005 -------------------------------------------------------------------- 0006 SPDX-FileCopyrightText: 2016 Fabian Kristof <fkristofszabolcs@gmail.com> 0007 SPDX-License-Identifier: GPL-2.0-or-later 0008 */ 0009 0010 #ifndef FITSFILTERPRIVATE_H 0011 #define FITSFILTERPRIVATE_H 0012 0013 #ifdef HAVE_FITS 0014 #include "fitsio.h" 0015 #endif 0016 0017 class AbstractDataSource; 0018 0019 class FITSFilterPrivate { 0020 public: 0021 explicit FITSFilterPrivate(FITSFilter*); 0022 ~FITSFilterPrivate(); 0023 0024 QVector<QStringList> readCHDU(const QString& fileName, 0025 AbstractDataSource* = nullptr, 0026 AbstractFileFilter::ImportMode = AbstractFileFilter::ImportMode::Replace, 0027 bool* okToMatrix = nullptr, 0028 int lines = -1); 0029 void writeCHDU(const QString& fileName, AbstractDataSource*); 0030 0031 static QMultiMap<QString, QString> extensionNames(const QString& fileName); 0032 void updateKeywords(const QString& fileName, const QList<FITSFilter::Keyword>& originals, const QVector<FITSFilter::Keyword>& updates); 0033 void addNewKeyword(const QString& fileName, const QList<FITSFilter::Keyword>& keywords); 0034 void addKeywordUnit(const QString& fileName, const QList<FITSFilter::Keyword>& keywords); 0035 void deleteKeyword(const QString& fileName, const QList<FITSFilter::Keyword>& keywords); 0036 void removeExtensions(const QStringList& extensions); 0037 const QString valueOf(const QString& fileName, const char* key); 0038 QList<FITSFilter::Keyword> chduKeywords(const QString& fileName); 0039 void parseHeader(const QString& fileName, 0040 QTableWidget* headerEditTable, 0041 bool readKeys = true, 0042 const QList<FITSFilter::Keyword>& keys = QList<FITSFilter::Keyword>()); 0043 void parseExtensions(const QString& fileName, QTreeWidget*, bool checkPrimary = false); 0044 0045 const FITSFilter* q; 0046 0047 int startRow{1}; 0048 int endRow{-1}; 0049 int startColumn{1}; 0050 int endColumn{-1}; 0051 0052 bool commentsAsUnits{false}; 0053 int exportTo{0}; 0054 0055 private: 0056 void printError(int status) const; 0057 0058 #ifdef HAVE_FITS 0059 fitsfile* m_fitsFile{nullptr}; 0060 #endif 0061 }; 0062 0063 #endif // FITSFILTERPRIVATE_H