From 20718bd5f5c7d7366dcda15f5c992e1ee564bf27 Mon Sep 17 00:00:00 2001 From: Starbuck Johnson Date: Thu, 21 Nov 2013 04:27:47 +0000 Subject: Added text document exports and an icon for it. --- diff --git a/icons/txt-export.svg b/icons/txt-export.svg new file mode 100644 index 0000000..404d993 --- /dev/null +++ b/icons/txt-export.svg @@ -0,0 +1,15 @@ + + + +]> + + + + + TXT + + + + + diff --git a/labyrinthactivity.py b/labyrinthactivity.py index 2ee07fa..c107eb4 100644 --- a/labyrinthactivity.py +++ b/labyrinthactivity.py @@ -736,6 +736,12 @@ class LabyrinthActivity(activity.Activity): activity_button.props.page.insert(tool, -1) tool.show() + tool = ToolButton('txt-export') + tool.set_tooltip(_('Text Document (TXT)')) + tool.connect('clicked', self.__export_txt_cb) + activity_button.props.page.insert(tool, -1) + tool.show() + tool = ToolbarButton() self.edit_toolbar = EditToolbar(self) tool.props.page = self.edit_toolbar @@ -791,6 +797,11 @@ class LabyrinthActivity(activity.Activity): keep_palette.menu.append(menu_item) menu_item.show() + menu_item = MenuItem(_('Text Document (TXT)')) + menu_item.connect('activate', self.__export_txt_cb) + keep_palette.menu.append(menu_item) + menu_item.show() + self.edit_toolbar = EditToolbar(self) toolbox.add_toolbar(_('Edit'), self.edit_toolbar) separator = gtk.SeparatorToolItem() @@ -1049,7 +1060,37 @@ class LabyrinthActivity(activity.Activity): datastore.write(fileObject, transfer_ownership=True) fileObject.destroy() del fileObject + def __export_txt_cb(self, event): + # Create new journel entry + fileObject = datastore.create() + act_meta = self.metadata + fileObject.metadata['title'] = act_meta['title'] + ' (TXT)' + fileObject.metadata['title_set_by_user'] = \ + act_meta['title_set_by_user'] + fileObject.metadata['mime_type'] = 'text/plain' + + fileObject.file_path = os.path.join(self.get_activity_root(), + 'instance', '%i' % time.time()) + filename = fileObject.file_path + f = open(filename, 'w') + + text = self.__export_txt_recursive_helper(self._main_area.primary) + try: + f.write(str(text)) + finally: + f.close() + datastore.write(fileObject, transfer_ownership=True) + fileObject.destroy() + del fileObject + def __export_txt_recursive_helper(self, start_node, depth=0, text=''): + if (start_node.text == None): + return text + text += ((depth * 2) * ' ' + start_node.text + '\n') + for l in self._main_area.links: + if l.parent == start_node: + text = self.__export_txt_recursive_helper(l.child, depth+1, text) + return text def __main_area_focus_cb(self, arg, event, extended=False): # Don't steal focus from textview # self._main_area.grab_focus() -- cgit v0.9.1