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:
authorTomeu Vizoso <tomeu@tomeuvizoso.net>2007-06-17 18:55:16 (GMT)
committer Tomeu Vizoso <tomeu@tomeuvizoso.net>2007-06-17 18:55:16 (GMT)
commit1afe9273a1722938c4457d1c8512e6fd57619123 (patch)
treee31b4f03972b7bfe057ff2fa7db22ef01d5c063a /shell/view/clipboardmenu.py
parentd4323957a17f5bdd068550c393e855b754890ee6 (diff)
Add an option for saving clipboard objects to the Journal.
Diffstat (limited to 'shell/view/clipboardmenu.py')
-rw-r--r--shell/view/clipboardmenu.py123
1 files changed, 80 insertions, 43 deletions
diff --git a/shell/view/clipboardmenu.py b/shell/view/clipboardmenu.py
index 0d1549c..f17bf23 100644
--- a/shell/view/clipboardmenu.py
+++ b/shell/view/clipboardmenu.py
@@ -1,3 +1,18 @@
+# Copyright (C) 2007, One Laptop Per Child
+#
+# 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
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
from gettext import gettext as _
import hippo
@@ -33,6 +48,7 @@ class ClipboardMenu(Menu):
ACTION_DELETE = 0
ACTION_OPEN = 1
ACTION_STOP_DOWNLOAD = 2
+ ACTION_SAVE_TO_JOURNAL = 3
def __init__(self, name, percent, preview, activity, installable):
Menu.__init__(self, name)
@@ -47,6 +63,7 @@ class ClipboardMenu(Menu):
self._remove_item = None
self._open_item = None
self._stop_item = None
+ self._journal_item = None
if preview:
self._preview_text = hippo.CanvasText(text=preview,
@@ -54,57 +71,77 @@ class ClipboardMenu(Menu):
self._preview_text.props.color = color.LABEL_TEXT.get_int()
self._preview_text.props.font_desc = font.DEFAULT.get_pango_desc()
self.append(self._preview_text)
-
+
self._update_icons(percent, activity, installable)
-
+
def _update_icons(self, percent, activity, installable):
if percent == 100 and (activity or installable):
- if not self._remove_item:
- self._remove_item = MenuItem(ClipboardMenu.ACTION_DELETE,
- _('Remove'),
- 'theme:stock-remove')
- self.add_item(self._remove_item)
-
- if not self._open_item:
- self._open_item = MenuItem(ClipboardMenu.ACTION_OPEN,
- _('Open'),
- 'theme:stock-keep')
- self.add_item(self._open_item)
-
- if self._stop_item:
- self.remove_item(self._stop_item)
- self._stop_item = None
+ self._add_remove_item()
+ self._add_open_item()
+ self._remove_stop_item()
+ self._add_journal_item()
elif percent == 100 and (not activity and not installable):
- if not self._remove_item:
- self._remove_item = MenuItem(ClipboardMenu.ACTION_DELETE,
- _('Remove'),
- 'theme:stock-remove')
- self.add_item(self._remove_item)
-
- if self._open_item:
- self.remove_item(self._open_item)
- self._open_item = None
-
- if self._stop_item:
- self.remove_item(self._stop_item)
- self._stop_item = None
+ self._add_remove_item()
+ self._remove_open_item()
+ self._remove_stop_item()
+ self._add_journal_item()
else:
- if not self._stop_item:
- self._stop_item = MenuItem(ClipboardMenu.ACTION_STOP_DOWNLOAD,
- _('Stop download'),
- 'theme:stock-close')
- self.add_item(self._stop_item)
-
- if self._remove_item:
- self.remove_item(self._remove_item)
- self._remove_item = None
-
- if self._open_item:
- self.remove_item(self._open_item)
- self._open_item = None
+ self._remove_remove_item()
+ self._remove_open_item()
+ self._add_stop_item()
+ self._remove_journal_item()
def set_state(self, name, percent, preview, activity, installable):
self.set_title(name)
if self._progress_bar:
self._progress_bar.set_property('percent', percent)
self._update_icons(percent, activity, installable)
+
+ def _add_remove_item(self):
+ if not self._remove_item:
+ self._remove_item = MenuItem(ClipboardMenu.ACTION_DELETE,
+ _('Remove'),
+ 'theme:stock-remove')
+ self.add_item(self._remove_item)
+
+ def _add_open_item(self):
+ if not self._open_item:
+ self._open_item = MenuItem(ClipboardMenu.ACTION_OPEN,
+ _('Open'),
+ 'theme:stock-keep')
+ self.add_item(self._open_item)
+
+ def _add_stop_item(self):
+ if not self._stop_item:
+ self._stop_item = MenuItem(ClipboardMenu.ACTION_STOP_DOWNLOAD,
+ _('Stop download'),
+ 'theme:stock-close')
+ self.add_item(self._stop_item)
+
+ def _add_journal_item(self):
+ if not self._journal_item:
+ self._journal_item = MenuItem(ClipboardMenu.ACTION_SAVE_TO_JOURNAL,
+ _('Add to journal'),
+ 'theme:stock-save')
+ self.add_item(self._journal_item)
+
+ def _remove_open_item(self):
+ if self._open_item:
+ self.remove_item(self._open_item)
+ self._open_item = None
+
+ def _remove_stop_item(self):
+ if self._stop_item:
+ self.remove_item(self._stop_item)
+ self._stop_item = None
+
+ def _remove_remove_item(self):
+ if self._remove_item:
+ self.remove_item(self._remove_item)
+ self._remove_item = None
+
+ def _remove_journal_item(self):
+ if self._journal_item:
+ self.remove_item(self._journal_item)
+ self._journal_item = None
+