From 4c2d26ccaeb502037484ced70b5944e3e20aa3f6 Mon Sep 17 00:00:00 2001 From: Simon Schampijer Date: Tue, 24 Aug 2010 17:13:44 +0000 Subject: Use Toolbutton instead of instead of Radiotoolbutton Adress design nitpocks: - reveal palette on left click - better naming of the filter options - toolbar icon is lastedit by default --- diff --git a/src/jarabe/journal/journaltoolbox.py b/src/jarabe/journal/journaltoolbox.py index 8597aa0..75c6de5 100644 --- a/src/jarabe/journal/journaltoolbox.py +++ b/src/jarabe/journal/journaltoolbox.py @@ -30,7 +30,6 @@ from sugar.graphics.toolbox import Toolbox from sugar.graphics.toolcombobox import ToolComboBox from sugar.graphics.toolbutton import ToolButton from sugar.graphics.toggletoolbutton import ToggleToolButton -from sugar.graphics.radiotoolbutton import RadioToolButton from sugar.graphics.combobox import ComboBox from sugar.graphics.menuitem import MenuItem from sugar.graphics.icon import Icon @@ -112,14 +111,12 @@ class SearchToolbar(gtk.Toolbar): self._add_separator(expand=True) - self._list_view_button = ListViewButton() - # TODO: Connect when Grid View is implemented - #self._list_view.connect('toggled', self.__view_button_toggled_cb) - self._list_view_button.set_active(True) - self.insert(self._list_view_button, -1) - self._list_view_button.connect('sort-property-changed', - self.__sort_changed_cb) - self._list_view_button.show() + self._sorting_button = SortingButton() + self._sorting_button.connect('clicked', self.__sorting_button_clicked_cb) + self.insert(self._sorting_button, -1) + self._sorting_button.connect('sort-property-changed', + self.__sort_changed_cb) + self._sorting_button.show() # TODO: enable it when the DS supports saving the buddies. #self._with_search_combo = self._get_with_search_combo() @@ -214,13 +211,13 @@ class SearchToolbar(gtk.Toolbar): if text: query['query'] = text - property, order = self._list_view_button.get_current_sort() + property_, order = self._sorting_button.get_current_sort() if order == gtk.SORT_ASCENDING: sign = '+' else: sign = '-' - query['order_by'] = [sign + property] + query['order_by'] = [sign + property_] return query @@ -247,6 +244,9 @@ class SearchToolbar(gtk.Toolbar): def __sort_changed_cb(self, button): self._update_if_needed() + def __sorting_button_clicked_cb(self, button): + self._sorting_button.palette.popup(immediate=True, state=1) + def _update_if_needed(self): new_query = self._build_query() if self._query != new_query: @@ -491,8 +491,9 @@ class EntryToolbar(gtk.Toolbar): palette.menu.append(menu_item) menu_item.show() -class ListViewButton(RadioToolButton): - __gtype_name__ = 'JournalListViewButton' + +class SortingButton(ToolButton): + __gtype_name__ = 'JournalSortingButton' __gsignals__ = { 'sort-property-changed': (gobject.SIGNAL_RUN_FIRST, @@ -501,44 +502,36 @@ class ListViewButton(RadioToolButton): } _SORT_OPTIONS = [ - ('timestamp', 'view-lastedit', _('View by last edit')), - ('creation_time', 'view-created', _('View by creation date')), - ('filesize', 'view-size', _('View by size')), + ('timestamp', 'view-lastedit', _('Sort by date modified')), + ('creation_time', 'view-created', _('Sort by date created')), + ('filesize', 'view-size', _('Sort by size')), ] def __init__(self): - RadioToolButton.__init__(self) + ToolButton.__init__(self) self._property = 'timestamp' self._order = gtk.SORT_ASCENDING - self.props.tooltip = _('List view') - self.props.named_icon = 'view-list' - # TODO: Set accelerator when Grid View is implemented - #self.props.accelerator = _('2') - self.props.group = None + self.props.tooltip = _('Sort view') + self.props.icon_name = 'view-lastedit' - for property, icon, label in self._SORT_OPTIONS: + for property_, icon, label in self._SORT_OPTIONS: button = MenuItem(icon_name=icon, text_label=label) button.connect('activate', self.__sort_type_changed_cb, - property, + property_, icon) button.show() self.props.palette.menu.insert(button, -1) - def __sort_type_changed_cb(self, widget, property, named_icon): - self._property = property + def __sort_type_changed_cb(self, widget, property_, icon_name): + self._property = property_ #FIXME: Implement sorting order self._order = gtk.SORT_ASCENDING self.emit('sort-property-changed') - self.props.named_icon = named_icon - - if not self.props.active: - self.props.active = True - else: - self.emit('toggled') + self.props.icon_name = icon_name def get_current_sort(self): return (self._property, self._order) -- cgit v0.9.1