1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 import os.path
20
21 import wx
22
23 from timelinelib.plugin.plugins.exporters import EXPORTER
24 from timelinelib.plugin.pluginbase import PluginBase
25 from timelinelib.wxgui.dialogs.export.controller import CSV_FILE
26 from timelinelib.wxgui.dialogs.export.view import ExportDialog
27 from timelinelib.wxgui.utils import _ask_question
28 from timelinelib.wxgui.utils import WildcardHelper
29
30
32
35
37 return _("Export Timeline to File...")
38
42
43 - def run(self, main_frame):
49
55
56
58
59 - def __init__(self, timeline, path, dlg):
68
73
75 if self.export_events:
76 self._write_label(f, _("Events"))
77 self._write_heading(f, event_fields)
78 self._write_events_fields(f, event_fields)
79
81 if self.export_categories:
82 self._write_label(f, _("Categories"))
83 self._write_heading(f, category_fields)
84 self._write_categories_fields(f, category_fields)
85
87 self._write_encoded_text(f, text)
88 self._write(f, "\n")
89
91 for field in fields:
92 self._write_encoded_text(f, field)
93 self._write(f, "\n")
94
99
103
105 if _("Text") in event_fields:
106 self._write_encoded_text(f, event.get_text())
107 if _("Description") in event_fields:
108 self._write_encoded_text(f, self._get_event_description(event))
109 if _("Start") in event_fields:
110 self._write_time_value(f, event.get_time_period().start_time)
111 if _("End") in event_fields:
112 self._write_time_value(f, event.get_time_period().end_time)
113 if _("Category") in event_fields:
114 self._write_encoded_text(f, self._get_event_category(event))
115 if _("Fuzzy") in event_fields:
116 self._write_boolean_value(f, event.get_fuzzy())
117 if _("Locked") in event_fields:
118 self._write_boolean_value(f, event.get_locked())
119 if _("Ends Today") in event_fields:
120 self._write_boolean_value(f, event.get_ends_today())
121 if _("Hyperlink") in event_fields:
122 self._write(f, "%s;" % event.get_hyperlink())
123 if _("Progress") in event_fields:
124 self._write(f, "%s;" % event.get_progress())
125 if _("Progress Color") in event_fields:
126 self._write_color_value(f, event.get_progress_color())
127 if _("Done Color") in event_fields:
128 self._write_color_value(f, event.get_done_color())
129 if _("Alert") in event_fields:
130 self._write(f, "%s;" % self._get_alert_string(event.get_alert()))
131 if _("Is Container") in event_fields:
132 self._write_boolean_value(f, event.is_container())
133 if _("Is Subevent") in event_fields:
134 self._write_boolean_value(f, event.is_subevent())
135 self._write(f, "\n")
136
138 if _("Name") in category_fields:
139 self._write_encoded_text(f, category.get_name())
140 if _("Color") in category_fields:
141 self._write_color_value(f, category.get_color())
142 if _("Progress Color") in category_fields:
143 self._write_color_value(f, category.get_progress_color())
144 if _("Done Color") in category_fields:
145 self._write_color_value(f, category.get_done_color())
146 if _("Parent") in category_fields:
147 self._write_encoded_text(f, self._get_parent(category))
148 self._write(f, "\n")
149
155
161
165
167 if cat._get_parent() is not None:
168 return cat._get_parent().get_name()
169 else:
170 return ""
171
174
181
182 - def _write_encoded_text(self, f, text):
183 if text is not None:
184 text = text.replace('"', '""')
185 self._write(f, "\"%s\";" % text)
186
189
191 self._write(f, "(%d, %d, %d);" % color)
192
194 self._write(f, "%s;" % value)
195
197 f.write(text.encode(self.text_encoding, self.encoding_error_strategy))
198
199
201 image_type = None
202 path = None
203 file_info = _("export files")
204 file_types = [("csv", "")]
205 images_wildcard_helper = WildcardHelper(file_info, file_types)
206 wildcard = images_wildcard_helper.wildcard_string()
207 dialog = wx.FileDialog(main_frame, message=_("Export"), wildcard=wildcard, style=wx.FD_SAVE)
208 if dialog.ShowModal() == wx.ID_OK:
209 path = images_wildcard_helper.get_path(dialog)
210 image_type = images_wildcard_helper.get_extension_data(path)
211 dialog.Destroy()
212 return path, image_type
213
214
216 if os.path.exists(path):
217 overwrite_question = _("File '%s' exists. Overwrite?") % path
218 return _ask_question(overwrite_question, main_frame) == wx.YES
219 return True
220