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