1 // SPDX-FileCopyrightText: 2003 Dominique Devriese <devriese@kde.org> 2 3 // SPDX-License-Identifier: GPL-2.0-or-later 4 5 #ifndef KIG_FILTERS_NATIVE_FILTER_H 6 #define KIG_FILTERS_NATIVE_FILTER_H 7 8 #include "filter.h" 9 10 class QDomElement; 11 class QDomDocument; 12 class KigDocument; 13 class QTextStream; 14 class QString; 15 16 /** 17 * Kig's native format. Between versions 0.3.1 and 0.4, there was a 18 * change in the file format. This filter no longer supports pre-0.4 19 * formats, it did up until Kig 0.6. 20 */ 21 class KigFilterNative 22 : public KigFilter 23 { 24 private: 25 /** 26 * this is the load function for the Kig format that is used, 27 * starting at Kig 0.4 28 */ 29 KigDocument* load04( const QDomElement& doc ); 30 /** 31 * this is the load function for the Kig format that is used 32 * starting at Kig 0.7 33 */ 34 KigDocument* load07( const QDomElement& doc ); 35 36 /** 37 * save in the Kig format that is used starting at Kig 0.7 38 */ 39 bool save07( const KigDocument& data, const QString& outfile ); 40 bool save07( const KigDocument& data, QTextStream& file ); 41 42 KigFilterNative(); 43 ~KigFilterNative(); 44 public: 45 static KigFilterNative* instance(); 46 47 bool supportMime( const QString& mime ) override; 48 KigDocument* load( const QString& file ) override; 49 KigDocument* load( const QDomDocument& doc ); 50 51 bool save( const KigDocument& data, const QString& file ); 52 // bool save( const KigDocument& data, QTextStream& stream ); 53 }; 54 55 #endif 56