From cd16bb8f17c9b60994407f6a86352d11f7824536 Mon Sep 17 00:00:00 2001 From: Max Usachev Date: Mon, 21 Jun 2010 11:28:15 +0300 Subject: [PATCH] improved search bar --- ui/hildon_ui.py | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/ui/hildon_ui.py b/ui/hildon_ui.py index 171f60b..213503f 100644 --- a/ui/hildon_ui.py +++ b/ui/hildon_ui.py @@ -3,6 +3,7 @@ Hildon UI for Meabook """ import gtk +import pango import hildon import gobject from gettext import gettext as _ @@ -55,7 +56,12 @@ class HildonMeabook(MeabookUI): self.selector = hildon.TouchSelector() widgets_box = gtk.VBox() + self.search_widgets_box = gtk.HBox() self.search_entry = hildon.Entry(gtk.HILDON_SIZE_AUTO) + clear_search_entry_container = gtk.EventBox() + clear_search_entry_image = gtk.image_new_from_icon_name( \ + 'general_delete', gtk.HILDON_SIZE_FINGER_HEIGHT) + # connect signals settings_button.connect('clicked', self.show_settings_dialog_cb) @@ -63,10 +69,16 @@ class HildonMeabook(MeabookUI): import_button.connect('clicked', self.show_import_dialog_cb) self.handler = self.selector.connect('changed', self.select_item_cb) self.search_entry.connect('key-release-event', self.search_item_cb) + clear_search_entry_container.connect('button-press-event', \ + self.clear_search_entry_cb) # packing widgets + clear_search_entry_container.add(clear_search_entry_image) + self.search_widgets_box.pack_start(self.search_entry, expand=True) + self.search_widgets_box.pack_start(clear_search_entry_container, \ + expand=False, padding=24) widgets_box.pack_start(self.selector, expand=True) - widgets_box.pack_end(self.search_entry, expand=False) + widgets_box.pack_end(self.search_widgets_box, expand=False) self.window.add(widgets_box) self.menu.add_filter(self.level1_filter) self.menu.add_filter(self.level2_filter) @@ -108,6 +120,7 @@ class HildonMeabook(MeabookUI): # reconnect callback selector.handler_unblock(handler) + def _show_items_dialog(self, title, items): """Creates dialog with items.""" @@ -260,7 +273,7 @@ class HildonMeabook(MeabookUI): return self._update_title(' - '.join([_('Meabook'), widget.get_label()])) - self.search_entry.hide() + self.search_widgets_box.hide() if widget == self.level1_filter: self._set_selector_content(self.selector, self.handler, \ @@ -271,7 +284,7 @@ class HildonMeabook(MeabookUI): else: self.search_entry.set_text('') self.search_entry.set_placeholder(_('Enter search text here')) - self.search_entry.show() + self.search_widgets_box.show() self._set_selector_content(self.selector, self.handler) def select_item_cb(self, widget, column): @@ -295,6 +308,11 @@ class HildonMeabook(MeabookUI): self.controller.get_all_files_by_pattern(widget.get_text())) widget.grab_focus() + def clear_search_entry_cb(self, widget, event): + """Clears search entry content.""" + + self.search_entry.set_text('') + -- 1.7.9.5