Ticket #1915: 1915_journaltoolbox.patch
File 1915_journaltoolbox.patch, 4.0 KB (added by erikos, 14 years ago) |
---|
-
src/jarabe/journal/journaltoolbox.py
diff --git a/src/jarabe/journal/journaltoolbox.py b/src/jarabe/journal/journaltoolbox.py index 61671bc..bf2a2c1 100644
a b class SearchToolbar(gtk.Toolbar): 109 109 self.insert(tool_item, -1) 110 110 tool_item.show() 111 111 112 self._add_separator(expand=True) 113 114 self._list_view_button = ListViewButton() 115 self._list_view_button.connect('clicked', self.__view_button_clicked_cb) 116 self.insert(self._list_view_button, -1) 117 self._list_view_button.connect('sort-property-changed', 118 self.__sort_changed_cb) 119 self._list_view_button.show() 120 112 121 # TODO: enable it when the DS supports saving the buddies. 113 122 #self._with_search_combo = self._get_with_search_combo() 114 123 #tool_item = ToolComboBox(self._with_search_combo) … … class SearchToolbar(gtk.Toolbar): 154 163 with_search.connect('changed', self._combo_changed_cb) 155 164 return with_search 156 165 166 def _add_separator(self, expand=False): 167 separator = gtk.SeparatorToolItem() 168 separator.props.draw = False 169 if expand: 170 separator.set_expand(True) 171 else: 172 separator.set_size_request(style.GRID_CELL_SIZE, 173 style.GRID_CELL_SIZE) 174 self.insert(separator, -1) 175 separator.show() 176 157 177 def _add_widget(self, widget, expand=False): 158 178 tool_item = gtk.ToolItem() 159 179 tool_item.set_expand(expand) … … class SearchToolbar(gtk.Toolbar): 191 211 if text: 192 212 query['query'] = text 193 213 214 property_, order = self._list_view_button.get_current_sort() 215 216 if order == gtk.SORT_ASCENDING: 217 sign = '+' 218 else: 219 sign = '-' 220 query['order_by'] = [sign + property_] 221 194 222 return query 195 223 196 224 def _get_date_range(self): … … class SearchToolbar(gtk.Toolbar): 213 241 def _combo_changed_cb(self, combo): 214 242 self._update_if_needed() 215 243 244 def __sort_changed_cb(self, button): 245 self._update_if_needed() 246 247 def __view_button_clicked_cb(self, button): 248 self._list_view_button.palette.popup(immediate=True, state=1) 249 216 250 def _update_if_needed(self): 217 251 new_query = self._build_query() 218 252 if self._query != new_query: … … class EntryToolbar(gtk.Toolbar): 456 490 activity_info.get_bundle_id()) 457 491 palette.menu.append(menu_item) 458 492 menu_item.show() 493 494 495 class ListViewButton(ToolButton): 496 __gtype_name__ = 'JournalListViewButton' 497 498 __gsignals__ = { 499 'sort-property-changed': (gobject.SIGNAL_RUN_FIRST, 500 gobject.TYPE_NONE, 501 ([])), 502 } 503 504 _SORT_OPTIONS = [ 505 ('timestamp', 'view-lastedit', _('Sort by date modified')), 506 ('creation_time', 'view-created', _('Sort by date created')), 507 ('filesize', 'view-size', _('Sort by size')), 508 ] 509 510 def __init__(self): 511 ToolButton.__init__(self) 512 513 self._property = 'timestamp' 514 self._order = gtk.SORT_ASCENDING 515 516 self.props.tooltip = _('Sort view') 517 self.props.icon_name = 'view-lastedit' 518 519 for property_, icon, label in self._SORT_OPTIONS: 520 button = MenuItem(icon_name=icon, text_label=label) 521 button.connect('activate', 522 self.__sort_type_changed_cb, 523 property_, 524 icon) 525 button.show() 526 self.props.palette.menu.insert(button, -1) 527 528 def __sort_type_changed_cb(self, widget, property_, icon_name): 529 self._property = property_ 530 #FIXME: Implement sorting order 531 self._order = gtk.SORT_ASCENDING 532 self.emit('sort-property-changed') 533 534 self.props.icon_name = icon_name 535 536 def get_current_sort(self): 537 return (self._property, self._order)