From thesadwinter@gmail.com Fri May 21 22:19:57 2010
Date: Fri, 21 May 2010 16:19:56 -0400
Subject: volumestoolbar.py patch
From: Martin Abente <thesadwinter@gmail.com>
To: Bernie Innocenti <bernie@codewiz.org>

--- viejo/src/jarabe/journal/volumestoolbar.py	2010-04-09 11:22:48.000000000 -0300
+++ nuevo/src/jarabe/journal/volumestoolbar.py	2010-04-12 14:55:21.703502000 -0300
@@ -1,5 +1,5 @@
 # Copyright (C) 2007, One Laptop Per Child
-#
+# Copyright (C) 2010, Plan Ceibal <comunidad@plan.ceibal.edu.uy>
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
 # the Free Software Foundation; either version 2 of the License, or
@@ -25,10 +25,13 @@ import gconf
 from sugar.graphics.radiotoolbutton import RadioToolButton
 from sugar.graphics.palette import Palette
 from sugar.graphics.xocolor import XoColor
+from sugar.graphics.menuitem import MenuItem

 from jarabe.journal import model
+from jarabe.journal.backup import Backup
 from jarabe.view.palettes import VolumePalette

+
 class VolumesToolbar(gtk.Toolbar):
     __gtype_name__ = 'VolumesToolbar'

@@ -164,7 +167,7 @@ class VolumeButton(BaseButton):
         self.props.xo_color = color

     def create_palette(self):
-        palette = VolumePalette(self._mount)
+        palette = JournalVolumePalette(self._mount)
         #palette.props.invoker = FrameWidgetInvoker(self)
         #palette.set_group_id('frame')
         return palette
@@ -179,3 +182,37 @@ class JournalButton(BaseButton):
         color = XoColor(client.get_string('/desktop/sugar/user/color'))
         self.props.xo_color = color

+class JournalVolumePalette(VolumePalette):
+
+    __gtype_name__ = 'JournalVolumePalette'
+
+    def __init__(self, mount):
+        VolumePalette.__init__(self, mount)
+
+        journal_separator = gtk.SeparatorMenuItem()
+        self.menu.append(journal_separator)
+        journal_separator.show()
+
+        menu_item_journal_backup = MenuItem(_('Journal Backup'))
+        #icon = Icon(icon_name='?', icon_size=gtk.ICON_SIZE_MENU)
+        #menu_item_journal_backup.set_image(icon)
+        #icon.show()
+        menu_item_journal_backup.connect('activate', self.__journal_backup_activate_cb, mount.get_root().get_path())
+        self.menu.append(menu_item_journal_backup)
+        menu_item_journal_backup.show()
+
+        menu_item_journal_restore = MenuItem(_('Journal Restore'))
+        #icon = Icon(icon_name='?', icon_size=gtk.ICON_SIZE_MENU)
+        #menu_item_restore_backup.set_image(icon)
+        #icon.show()
+        menu_item_journal_restore.connect('activate', self.__journal_restore_activate_cb, mount.get_root().get_path())
+        self.menu.append(menu_item_journal_restore)
+        menu_item_journal_restore.show()
+
+    def __journal_backup_activate_cb(self, menu_item, mount_path):
+        self._do_backup = Backup('backup', mount_path)
+        self._do_backup.show()
+
+    def __journal_restore_activate_cb(self, menu_item, mount_path):
+        self._do_restore = Backup('restore', mount_path)
+        self._do_restore.show()


