From eae73448d695d838b8b8546b736e698c69de99c8 Mon Sep 17 00:00:00 2001 From: Tomeu Vizoso Date: Fri, 23 Jan 2009 10:44:35 +0000 Subject: #226 Add a 'Clear search' button to 'No matching entries' message --- (limited to 'src') diff --git a/src/jarabe/journal/journalactivity.py b/src/jarabe/journal/journalactivity.py index 4aa7cf8..4f4d320 100644 --- a/src/jarabe/journal/journalactivity.py +++ b/src/jarabe/journal/journalactivity.py @@ -154,6 +154,7 @@ class JournalActivity(Window): self._list_view = ListView() self._list_view.connect('detail-clicked', self.__detail_clicked_cb) + self._list_view.connect('clear-clicked', self.__clear_clicked_cb) self._main_view.pack_start(self._list_view) self._list_view.show() @@ -186,7 +187,10 @@ class JournalActivity(Window): def __detail_clicked_cb(self, list_view, entry): self._show_secondary_view(entry.metadata) - + + def __clear_clicked_cb(self, list_view): + self._main_toolbox.search_toolbar.clear_query() + def __go_back_clicked_cb(self, detail_view): self.show_main_view() diff --git a/src/jarabe/journal/journaltoolbox.py b/src/jarabe/journal/journaltoolbox.py index d9ec4da..17a65e6 100644 --- a/src/jarabe/journal/journaltoolbox.py +++ b/src/jarabe/journal/journaltoolbox.py @@ -310,6 +310,12 @@ class SearchToolbar(gtk.Toolbar): def __favorite_button_toggled_cb(self, favorite_button): self._update_if_needed() + def clear_query(self): + self._search_entry.props.text = '' + self._what_search_combo.set_active(0) + self._when_search_combo.set_active(0) + self._favorite_button.props.active = False + class DetailToolbox(Toolbox): def __init__(self): Toolbox.__init__(self) diff --git a/src/jarabe/journal/listview.py b/src/jarabe/journal/listview.py index acbd0b6..34cd7a0 100644 --- a/src/jarabe/journal/listview.py +++ b/src/jarabe/journal/listview.py @@ -26,7 +26,7 @@ import gtk import dbus from sugar.graphics import style -from sugar.graphics.icon import CanvasIcon +from sugar.graphics.icon import CanvasIcon, Icon from jarabe.journal.collapsedentry import CollapsedEntry from jarabe.journal import model @@ -43,6 +43,12 @@ NO_MATCH = _("No matching entries ") class BaseListView(gtk.HBox): __gtype_name__ = 'BaseListView' + __gsignals__ = { + 'clear-clicked': (gobject.SIGNAL_RUN_FIRST, + gobject.TYPE_NONE, + ([])) + } + def __init__(self): self._query = {} self._result_set = None @@ -343,19 +349,33 @@ class BaseListView(gtk.HBox): def _show_message(self, message): box = hippo.CanvasBox(orientation=hippo.ORIENTATION_VERTICAL, background_color=style.COLOR_WHITE.get_int(), - yalign=hippo.ALIGNMENT_CENTER) + yalign=hippo.ALIGNMENT_CENTER, + spacing=style.DEFAULT_SPACING, + padding_bottom=style.GRID_CELL_SIZE) + self._canvas.set_root(box) + icon = CanvasIcon(size=style.LARGE_ICON_SIZE, icon_name='activity-journal', stroke_color = style.COLOR_BUTTON_GREY.get_svg(), fill_color = style.COLOR_TRANSPARENT.get_svg()) + box.append(icon) + text = hippo.CanvasText(text=message, xalign=hippo.ALIGNMENT_CENTER, - font_desc=style.FONT_NORMAL.get_pango_desc(), + font_desc=style.FONT_BOLD.get_pango_desc(), color = style.COLOR_BUTTON_GREY.get_int()) - - box.append(icon) box.append(text) - self._canvas.set_root(box) + + button = gtk.Button(label=_('Clear search')) + button.connect('clicked', self.__clear_button_clicked_cb) + button.props.image = Icon(icon_name='dialog-cancel', + icon_size=gtk.ICON_SIZE_BUTTON) + canvas_button = hippo.CanvasWidget(widget=button, + xalign=hippo.ALIGNMENT_CENTER) + box.append(canvas_button) + + def __clear_button_clicked_cb(self, button): + self.emit('clear-clicked') def _clear_message(self): self._canvas.set_root(self._box) -- cgit v0.9.1