20 |
20 |
21 class ExporterODT(ExporterBase): |
21 class ExporterODT(ExporterBase): |
22 """ |
22 """ |
23 Class implementing an exporter for ODT. |
23 Class implementing an exporter for ODT. |
24 """ |
24 """ |
|
25 |
25 def __init__(self, editor, parent=None): |
26 def __init__(self, editor, parent=None): |
26 """ |
27 """ |
27 Constructor |
28 Constructor |
28 |
29 |
29 @param editor reference to the editor object (QScintilla.Editor.Editor) |
30 @param editor reference to the editor object (QScintilla.Editor.Editor) |
30 @param parent parent object of the exporter (QObject) |
31 @param parent parent object of the exporter (QObject) |
31 """ |
32 """ |
32 ExporterBase.__init__(self, editor, parent) |
33 ExporterBase.__init__(self, editor, parent) |
33 |
34 |
34 def exportSource(self): |
35 def exportSource(self): |
35 """ |
36 """ |
36 Public method performing the export. |
37 Public method performing the export. |
37 """ |
38 """ |
38 filename = self._getFileName(self.tr("ODT Files (*.odt)")) |
39 filename = self._getFileName(self.tr("ODT Files (*.odt)")) |
39 if not filename: |
40 if not filename: |
40 return |
41 return |
41 |
42 |
42 tabSize = self.editor.getEditorConfig("TabWidth") |
43 tabSize = self.editor.getEditorConfig("TabWidth") |
43 if tabSize == 0: |
44 if tabSize == 0: |
44 tabSize = 4 |
45 tabSize = 4 |
45 wysiwyg = Preferences.getEditorExporter("ODT/WYSIWYG") |
46 wysiwyg = Preferences.getEditorExporter("ODT/WYSIWYG") |
46 onlyStylesUsed = Preferences.getEditorExporter("ODT/OnlyStylesUsed") |
47 onlyStylesUsed = Preferences.getEditorExporter("ODT/OnlyStylesUsed") |
47 tabs = Preferences.getEditorExporter("ODT/UseTabs") |
48 tabs = Preferences.getEditorExporter("ODT/UseTabs") |
48 |
49 |
49 with EricOverrideCursor(): |
50 with EricOverrideCursor(): |
50 # generate HTML of the source |
51 # generate HTML of the source |
51 generator = HTMLGenerator(self.editor) |
52 generator = HTMLGenerator(self.editor) |
52 html = generator.generate( |
53 html = generator.generate( |
53 tabSize=tabSize, |
54 tabSize=tabSize, |
54 useTabs=tabs, |
55 useTabs=tabs, |
55 wysiwyg=wysiwyg, |
56 wysiwyg=wysiwyg, |
56 folding=False, |
57 folding=False, |
57 onlyStylesUsed=onlyStylesUsed, |
58 onlyStylesUsed=onlyStylesUsed, |
58 titleFullPath=False |
59 titleFullPath=False, |
59 ) |
60 ) |
60 |
61 |
61 # convert HTML to ODT |
62 # convert HTML to ODT |
62 doc = QTextDocument() |
63 doc = QTextDocument() |
63 doc.setHtml(html) |
64 doc.setHtml(html) |
64 writer = QTextDocumentWriter(filename) |
65 writer = QTextDocumentWriter(filename) |
65 ok = writer.write(doc) |
66 ok = writer.write(doc) |
66 |
67 |
67 if not ok: |
68 if not ok: |
68 EricMessageBox.critical( |
69 EricMessageBox.critical( |
69 self.editor, |
70 self.editor, |
70 self.tr("Export source"), |
71 self.tr("Export source"), |
71 self.tr( |
72 self.tr( |
72 """<p>The source could not be exported to""" |
73 """<p>The source could not be exported to""" """ <b>{0}</b>.</p>""" |
73 """ <b>{0}</b>.</p>""").format(filename)) |
74 ).format(filename), |
|
75 ) |