Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAjay Garg <ajay@activitycentral.com>2012-01-29 13:15:22 (GMT)
committer Anish Mangal <anish@activitycentral.com>2012-04-27 10:02:36 (GMT)
commit93991095bf67b69263287550dd94846e1ff4f721 (patch)
treec68c8778bc48bdcde9f7e8b70a6640da92c8b465
parent22f5218aaecc5f9caa94726b619bfcfbc38c544a (diff)
uy#1223: Add a submenu in journal-palette, to copy a journal entry to the "Documents" folder.
-rw-r--r--src/jarabe/journal/journalactivity.py5
-rw-r--r--src/jarabe/journal/palettes.py37
2 files changed, 42 insertions, 0 deletions
diff --git a/src/jarabe/journal/journalactivity.py b/src/jarabe/journal/journalactivity.py
index bb1c7f6..8cafef0 100644
--- a/src/jarabe/journal/journalactivity.py
+++ b/src/jarabe/journal/journalactivity.py
@@ -184,6 +184,7 @@ class JournalActivity(JournalWindow):
search_toolbar = self._main_toolbox.search_toolbar
search_toolbar.connect('query-changed', self._query_changed_cb)
search_toolbar.set_mount_point('/')
+ self._mount_point = '/'
def _setup_secondary_view(self):
self._secondary_view = gtk.VBox()
@@ -253,6 +254,7 @@ class JournalActivity(JournalWindow):
def __volume_changed_cb(self, volume_toolbar, mount_point):
logging.debug('Selected volume: %r.', mount_point)
self._main_toolbox.search_toolbar.set_mount_point(mount_point)
+ self._mount_point = mount_point
self._main_toolbox.set_current_toolbar(0)
def __model_created_cb(self, sender, **kwargs):
@@ -362,6 +364,9 @@ class JournalActivity(JournalWindow):
self.show_main_view()
self.search_grab_focus()
+ def get_mount_point(self):
+ return self._mount_point
+
def get_journal():
global _journal
diff --git a/src/jarabe/journal/palettes.py b/src/jarabe/journal/palettes.py
index e1d1e7d..27b0b54 100644
--- a/src/jarabe/journal/palettes.py
+++ b/src/jarabe/journal/palettes.py
@@ -272,6 +272,16 @@ class CopyMenu(gtk.Menu):
self.append(clipboard_menu)
clipboard_menu.show()
+ from jarabe.journal import journalactivity
+ journal_model = journalactivity.get_journal()
+ if journal_model.get_mount_point() != model.get_documents_path():
+ documents_menu = DocumentsMenu(self._metadata)
+ documents_menu.set_image(Icon(icon_name='user-documents',
+ icon_size=gtk.ICON_SIZE_MENU))
+ documents_menu.connect('volume-error', self.__volume_error_cb)
+ self.append(documents_menu)
+ documents_menu.show()
+
if self._metadata['mountpoint'] != '/':
client = gconf.client_get_default()
color = XoColor(client.get_string('/desktop/sugar/user/color'))
@@ -375,6 +385,33 @@ class ClipboardMenu(MenuItem):
self._temp_file_path = None
+class DocumentsMenu(MenuItem):
+ __gtype_name__ = 'JournalDocumentsMenu'
+
+ __gsignals__ = {
+ 'volume-error': (gobject.SIGNAL_RUN_FIRST, gobject.TYPE_NONE,
+ ([str, str])),
+ }
+
+ def __init__(self, metadata):
+ MenuItem.__init__(self, _('Documents'))
+
+ self._temp_file_path = None
+ self._metadata = metadata
+ self.connect('activate', self.__copy_to_documents_cb)
+
+ def __copy_to_documents_cb(self, menu_item):
+ file_path = model.get_file(self._metadata['uid'])
+ if not file_path or not os.path.exists(file_path):
+ logging.warn('Entries without a file cannot be copied.')
+ self.emit('volume-error',
+ _('Entries without a file cannot be copied.'),
+ _('Warning'))
+ return
+
+ model.copy(self._metadata, model.get_documents_path())
+
+
class GroupsMenu(gtk.Menu):
__gtype_name__ = 'GroupsMenu'