diff options
author | Tomeu Vizoso <tomeu@tomeuvizoso.net> | 2007-06-17 18:55:16 (GMT) |
---|---|---|
committer | Tomeu Vizoso <tomeu@tomeuvizoso.net> | 2007-06-17 18:55:16 (GMT) |
commit | 1afe9273a1722938c4457d1c8512e6fd57619123 (patch) | |
tree | e31b4f03972b7bfe057ff2fa7db22ef01d5c063a /shell/view/clipboardmenu.py | |
parent | d4323957a17f5bdd068550c393e855b754890ee6 (diff) |
Add an option for saving clipboard objects to the Journal.
Diffstat (limited to 'shell/view/clipboardmenu.py')
-rw-r--r-- | shell/view/clipboardmenu.py | 123 |
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 + |