]> git.sven.stormbind.net Git - sven/vym.git/blob - exports.h
1dbc42add331d943380fb823ff66fedcdcb2c168
[sven/vym.git] / exports.h
1 #ifndef EXPORTS_H
2 #define EXPORTS_H
3
4 #include <qdir.h>
5 #include <qstring.h>
6 #include <iostream>
7
8 #include "settings.h"
9 #include "vymmodel.h"
10
11
12 /*! \brief Base class for all exports
13 */
14
15 ///////////////////////////////////////////////////////////////////////
16
17 class ExportBase
18 {
19 public:
20     ExportBase();
21     ExportBase(VymModel *m);
22     virtual ~ExportBase();
23     virtual void init();
24     virtual void setDirPath (const QString&);
25     virtual QString getDirPath();
26     virtual void setFilePath (const QString&);
27     virtual QString getFilePath ();
28     virtual QString getMapName ();
29     virtual void setModel (VymModel *m);
30     virtual void setWindowTitle (const QString &);
31     virtual void setName( const QString &);
32     virtual QString getName();
33     virtual void addFilter (const QString &);
34     virtual void setListTasks( bool b);
35     virtual bool execDialog();
36     virtual bool canceled();
37     void setLastCommand( const QString& );
38     void completeExport(QString args="");  //! set lastExport and send status message
39
40 protected:  
41     VymModel *model;
42     QString exportName;
43     QString lastCommand;
44     virtual QString getSectionString (TreeItem*);
45
46     QString indent (const int &n, bool useBullet);
47     QDir tmpDir;
48     QString dirPath;        // Path to dir  e.g. /tmp/vym-export/
49     QString defaultDirPath; // Default path
50     QString filePath;       // Path to file e.g. /tmp/vym-export/export.html
51     QString extension;      // Extension, e.g. .html
52     QString indentPerDepth;
53     int indentPerDepth2;
54     QStringList bulletPoints;
55     QString caption;
56     QString filter;
57     bool listTasks;         // Append task list
58     bool cancelFlag;
59 };
60
61 ///////////////////////////////////////////////////////////////////////
62 class ExportAO:public ExportBase
63 {
64 public:
65     ExportAO();
66     virtual void doExport();
67     virtual QString underline (const QString &text, const QString &line);
68 };
69
70 ///////////////////////////////////////////////////////////////////////
71 class ExportASCII:public ExportBase
72 {
73 public:
74     ExportASCII();
75     virtual void doExport();
76     virtual QString underline (const QString &text, const QString &line);
77 };
78
79 ///////////////////////////////////////////////////////////////////////
80 class ExportCSV:public ExportBase
81 {
82 public:
83     ExportCSV();
84     void doExport();
85 };
86
87 ///////////////////////////////////////////////////////////////////////
88 class ExportXMLBase:public ExportBase
89 {
90 };
91
92 ///////////////////////////////////////////////////////////////////////
93 class ExportKDE4Bookmarks:public ExportXMLBase
94 {
95 public:
96     virtual void doExport();
97 };  
98
99 ///////////////////////////////////////////////////////////////////////
100 class ExportFirefoxBookmarks:public ExportXMLBase
101 {
102 public:
103     virtual void doExport();
104 };  
105
106 #include "exporthtmldialog.h"
107 ///////////////////////////////////////////////////////////////////////
108 class ExportHTML:public ExportBase
109 {
110 public:
111     ExportHTML();
112     ExportHTML(VymModel *m);
113     virtual void init();
114     virtual QString createTOC();
115     virtual void doExport(bool useDialog=true);
116 private:
117     QString getBranchText(BranchItem *);
118     QString buildList (BranchItem *);
119     QString imageMap;
120     QString cssSrc;
121     QString cssDst;
122
123     bool frameURLs;
124
125     QPointF offset;
126
127     ExportHTMLDialog dia;
128 };  
129
130 ///////////////////////////////////////////////////////////////////////
131 class ExportLaTeX:public ExportBase
132 {
133 public:
134     ExportLaTeX();
135     QString escapeLaTeX (const QString &s);
136     virtual void doExport();
137 private:
138     QHash <QString,QString> esc;
139 };  
140
141 ///////////////////////////////////////////////////////////////////////
142 class ExportOrgMode:public ExportBase
143 {
144 public:
145     ExportOrgMode();
146     virtual void doExport();
147 };  
148
149 ///////////////////////////////////////////////////////////////////////
150 class ExportOO:public ExportBase
151 {
152 public:
153     ExportOO();
154     ~ExportOO();
155     void exportPresentation();
156     bool setConfigFile (const QString &);
157 private:
158     QString buildList (TreeItem *);
159     bool useSections;
160     QString configFile;
161     QString configDir;
162     QString templateDir;
163     QString content;
164     QString contentTemplate;
165     QString contentTemplateFile;
166     QString contentFile;
167     QString pageTemplate;
168     QString pageTemplateFile;
169     QString sectionTemplate;
170     QString sectionTemplateFile;
171 };
172
173 ///////////////////////////////////////////////////////////////////////
174 class ExportTaskjuggler:public ExportXMLBase
175 {
176 public:
177     virtual void doExport();
178 };  
179
180 #endif