[tracker/search-bar] TrackerResultsWindow: show a "no results" label if no results are available.
- From: Carlos Garnacho <carlosg src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [tracker/search-bar] TrackerResultsWindow: show a "no results" label if no results are available.
- Date: Thu, 24 Sep 2009 15:32:15 +0000 (UTC)
commit 7dcd23f021a0faeab4490327acab35647f3853b2
Author: Carlos Garnacho <carlos lanedo com>
Date: Thu Sep 24 17:09:42 2009 +0200
TrackerResultsWindow: show a "no results" label if no results are available.
src/tracker-search-bar/tracker-results-window.c | 37 +++++++++++++++++-----
1 files changed, 28 insertions(+), 9 deletions(-)
---
diff --git a/src/tracker-search-bar/tracker-results-window.c b/src/tracker-search-bar/tracker-results-window.c
index 48a2ba9..bfb3926 100644
--- a/src/tracker-search-bar/tracker-results-window.c
+++ b/src/tracker-search-bar/tracker-results-window.c
@@ -74,8 +74,11 @@ static gboolean search_get (TrackerResultsWindow *window,
typedef struct {
GtkWidget *frame;
GtkWidget *treeview;
+ GtkWidget *scrolled_window;
GObject *store;
+ GtkWidget *label;
+
GtkIconTheme *icon_theme;
TrackerClient *client;
@@ -220,7 +223,6 @@ tracker_results_window_init (TrackerResultsWindow *window)
{
TrackerResultsWindowPrivate *priv;
GtkWidget *vbox;
- GtkWidget *scrolled_window;
priv = TRACKER_RESULTS_WINDOW_GET_PRIVATE (window);
@@ -230,29 +232,32 @@ tracker_results_window_init (TrackerResultsWindow *window)
gtk_container_add (GTK_CONTAINER (window), priv->frame);
gtk_frame_set_shadow_type (GTK_FRAME (priv->frame), GTK_SHADOW_IN);
gtk_widget_set_size_request (priv->frame, 500, 300);
+ gtk_widget_show (priv->frame);
vbox = gtk_vbox_new (FALSE, 12);
gtk_container_add (GTK_CONTAINER (priv->frame), vbox);
gtk_container_set_border_width (GTK_CONTAINER (vbox), 2);
+ gtk_widget_show (vbox);
- scrolled_window = gtk_scrolled_window_new (NULL, NULL);
- gtk_container_add (GTK_CONTAINER (vbox), scrolled_window);
- gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
+ priv->scrolled_window = gtk_scrolled_window_new (NULL, NULL);
+ gtk_container_add (GTK_CONTAINER (vbox), priv->scrolled_window);
+ gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (priv->scrolled_window),
GTK_POLICY_AUTOMATIC,
GTK_POLICY_AUTOMATIC);
priv->treeview = gtk_tree_view_new ();
- gtk_container_add (GTK_CONTAINER (scrolled_window), priv->treeview);
+ gtk_container_add (GTK_CONTAINER (priv->scrolled_window), priv->treeview);
+ gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (priv->treeview), FALSE);
g_signal_connect (priv->treeview, "row-activated",
G_CALLBACK (tree_view_row_activated_cb), window);
- gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (priv->treeview), FALSE);
+ priv->label = gtk_label_new (NULL);
+ gtk_widget_set_sensitive (priv->label, FALSE);
+ gtk_container_add (GTK_CONTAINER (vbox), priv->label);
priv->icon_theme = gtk_icon_theme_get_default ();
model_set_up (window);
-
- gtk_widget_show_all (priv->frame);
}
static void
@@ -260,6 +265,7 @@ results_window_constructed (GObject *object)
{
TrackerResultsWindowPrivate *priv;
TrackerResultsWindow *window;
+ GtkTreeIter iter;
gchar *sparql;
window = TRACKER_RESULTS_WINDOW (object);
@@ -284,6 +290,18 @@ results_window_constructed (GObject *object)
sparql = g_strdup_printf (FOLDER_SEARCH, priv->query);
search_get (window, sparql);
g_free (sparql);
+
+ if (!gtk_tree_model_get_iter_first (GTK_TREE_MODEL (priv->store), &iter)) {
+ gchar *str;
+
+ str = g_strdup_printf (_("No results found for «%s»"), priv->query);
+ gtk_label_set_text (GTK_LABEL (priv->label), str);
+ g_free (str);
+
+ gtk_widget_show (priv->label);
+ } else {
+ gtk_widget_show_all (priv->scrolled_window);
+ }
}
static void
@@ -1125,7 +1143,7 @@ grab_popup_window (TrackerResultsWindow *window)
}
if (status == GDK_GRAB_SUCCESS) {
- gtk_widget_grab_focus (priv->treeview);
+ gtk_widget_grab_focus (widget);
} else if (status == GDK_GRAB_NOT_VIEWABLE) {
/* window is not viewable yet, retry */
return TRUE;
@@ -1141,6 +1159,7 @@ tracker_results_window_popup (TrackerResultsWindow *window)
{
g_return_if_fail (TRACKER_IS_RESULTS_WINDOW (window));
+ gtk_widget_realize (GTK_WIDGET (window));
gtk_widget_show (GTK_WIDGET (window));
g_idle_add ((GSourceFunc) grab_popup_window, window);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]