Updating branch refs/heads/master to bbb78934f055b7ae466a1ea0fc8638a63a5c3e8a (commit) from 36d22ac107e1fb4f23ecd5f1edcb5ff88c5f671e (commit)
commit bbb78934f055b7ae466a1ea0fc8638a63a5c3e8a Author: Mike Massonnet <mmasson...@xfce.org> Date: Sun Oct 23 16:59:28 2011 +0200 dbbrowser, playlist: Add Clear button in filter entry Added a clear button in order to have a visual component to show it can be flushed away in a click (it currently works with the touch Escape). src/dbbrowser.vala | 15 +++++++++++++++ src/playlist.vala | 14 ++++++++++++++ 2 files changed, 29 insertions(+), 0 deletions(-) diff --git a/src/dbbrowser.vala b/src/dbbrowser.vala index db32735..cc7bcf8 100644 --- a/src/dbbrowser.vala +++ b/src/dbbrowser.vala @@ -108,6 +108,7 @@ namespace Xfmpc { this.search_entry = new Entry (); this.search_entry.set_icon_from_stock (EntryIconPosition.PRIMARY, Gtk.Stock.FIND); this.search_entry.set_icon_activatable (EntryIconPosition.PRIMARY, false); + this.search_entry.set_icon_activatable (EntryIconPosition.SECONDARY, true); scrolled.add (this.treeview); pack_start (scrolled, true, true, 0); @@ -126,6 +127,7 @@ namespace Xfmpc { this.search_entry.activate.connect (cb_search_entry_activated); this.search_entry.key_release_event.connect (cb_search_entry_key_released); this.search_entry.changed.connect (cb_search_entry_changed); + this.search_entry.icon_release.connect (cb_search_entry_icon_activated); this.preferences.notify["song-format"].connect (reload); this.preferences.notify["song-format-custom"].connect (reload); @@ -457,6 +459,13 @@ namespace Xfmpc { } private void cb_search_entry_changed () { + if (search_entry.get_text () != "") { + search_entry.set_icon_from_stock (EntryIconPosition.SECONDARY, Gtk.Stock.CLEAR); + } + else { + search_entry.set_icon_from_stock (EntryIconPosition.SECONDARY, null); + } + if (this.search_timeout > 0) GLib.Source.remove (search_timeout); @@ -467,5 +476,11 @@ namespace Xfmpc { cb_search_entry_activated (); return false; } + + private void cb_search_entry_icon_activated (Gtk.EntryIconPosition icon_pos, Gdk.Event event) { + if (icon_pos != Gtk.EntryIconPosition.SECONDARY) + return; + search_entry.set_text (""); + } } } diff --git a/src/playlist.vala b/src/playlist.vala index 1558be2..a66d652 100644 --- a/src/playlist.vala +++ b/src/playlist.vala @@ -117,6 +117,7 @@ namespace Xfmpc { this.filter_entry = new Entry (); this.filter_entry.set_icon_from_stock (EntryIconPosition.PRIMARY, Gtk.Stock.FIND); this.filter_entry.set_icon_activatable (EntryIconPosition.PRIMARY, false); + this.filter_entry.set_icon_activatable (EntryIconPosition.SECONDARY, true); scrolled.add (this.treeview); pack_start (scrolled, true, true, 0); @@ -135,6 +136,7 @@ namespace Xfmpc { this.filter_entry.activate.connect (cb_filter_entry_activated); this.filter_entry.key_release_event.connect (cb_filter_entry_key_released); this.filter_entry.changed.connect (cb_filter_entry_changed); + this.filter_entry.icon_release.connect (cb_filter_entry_icon_activated); this.preferences.notify["song-format"].connect (cb_playlist_changed); this.preferences.notify["song-format-custom"].connect (cb_playlist_changed); @@ -347,9 +349,21 @@ namespace Xfmpc { } private void cb_filter_entry_changed () { + if (filter_entry.get_text () != "") { + filter_entry.set_icon_from_stock (EntryIconPosition.SECONDARY, Gtk.Stock.CLEAR); + } + else { + filter_entry.set_icon_from_stock (EntryIconPosition.SECONDARY, null); + } this.filter.refilter (); } + private void cb_filter_entry_icon_activated (Gtk.EntryIconPosition icon_pos, Gdk.Event event) { + if (icon_pos != Gtk.EntryIconPosition.SECONDARY) + return; + filter_entry.set_text (""); + } + /* * Public */ _______________________________________________ Xfce4-commits mailing list Xfce4-commits@xfce.org https://mail.xfce.org/mailman/listinfo/xfce4-commits