Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/shell/view/clipboardmenu.py
diff options
context:
space:
mode:
Diffstat (limited to 'shell/view/clipboardmenu.py')
-rw-r--r--shell/view/clipboardmenu.py45
1 files changed, 36 insertions, 9 deletions
diff --git a/shell/view/clipboardmenu.py b/shell/view/clipboardmenu.py
index 3e8239d..9699972 100644
--- a/shell/view/clipboardmenu.py
+++ b/shell/view/clipboardmenu.py
@@ -33,9 +33,11 @@ class ClipboardMenu(Menu):
ACTION_OPEN = 1
ACTION_STOP_DOWNLOAD = 2
- def __init__(self, name, percent, preview, activity):
+ def __init__(self, name, percent, preview):
Menu.__init__(self, name)
self.props.border = 0
+
+ self._activities = None
if percent < 100:
self._progress_bar = ClipboardProgressBar(percent)
@@ -54,10 +56,10 @@ class ClipboardMenu(Menu):
self._preview_text.props.font_desc = font.DEFAULT.get_pango_desc()
self.append(self._preview_text)
- self._update_icons(percent, activity)
+ self._update_icons(percent)
- def _update_icons(self, percent, activity):
- if percent == 100 and activity:
+ def _update_icons(self, percent):
+ if percent == 100 and self._activities:
if not self._remove_item:
self._remove_item = MenuItem(ClipboardMenu.ACTION_DELETE,
_('Remove'),
@@ -73,7 +75,7 @@ class ClipboardMenu(Menu):
if self._stop_item:
self.remove_item(self._stop_item)
self._stop_item = None
- elif percent == 100 and not activity:
+ elif percent == 100 and not self._activities:
if not self._remove_item:
self._remove_item = MenuItem(ClipboardMenu.ACTION_DELETE,
_('Remove'),
@@ -102,8 +104,33 @@ class ClipboardMenu(Menu):
self.remove_item(self._open_item)
self._open_item = None
- def set_state(self, name, percent, preview, activity):
- self.set_title(name)
+ def _open_file(self):
+ if self._percent < 100 or not self._activity:
+ return
+
+ # Get the file path
+ cb_service = clipboardservice.get_instance()
+ obj = cb_service.get_object(self._object_id)
+ formats = obj['FORMATS']
+ if len(formats) > 0:
+ path = cb_service.get_object_data(self._object_id, formats[0])
+
+ # FIXME: would be better to check for format.onDisk
+ try:
+ path_exists = os.path.exists(path)
+ except TypeError:
+ path_exists = False
+
+ if path_exists:
+ uri = 'file://' + path
+ activityfactory.create_with_uri(self._activity, uri)
+ else:
+ logging.debug("Clipboard item file path %s didn't exist" % path)
+
+ def set_activities(self, activities):
+ self._activities = activities
+
+ def set_state(self, percent):
if self._progress_bar:
- self._progress_bar.set_property('percent', percent)
- self._update_icons(percent, activity)
+ self._progress_bar.props.percent = percent
+ self._update_icons(percent)