Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/labyrinthactivity.py
diff options
context:
space:
mode:
Diffstat (limited to 'labyrinthactivity.py')
-rw-r--r--labyrinthactivity.py41
1 files changed, 41 insertions, 0 deletions
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()