[Xfce4-commits] <xfce4-appfinder:nick/xfrun4-merge> Fix selection of category in sidepane.

Nick Schermer noreply at xfce.org
Wed Jun 22 20:06:01 CEST 2011


Updating branch refs/heads/nick/xfrun4-merge
         to f5628dc5e2d2eeb1a342bdaa764b9d3b3a7666c7 (commit)
       from f8c3d3ecb578343e8e222eb299d40a81a7d360c6 (commit)

commit f5628dc5e2d2eeb1a342bdaa764b9d3b3a7666c7
Author: Nick Schermer <nick at xfce.org>
Date:   Wed Jun 22 20:03:10 2011 +0200

    Fix selection of category in sidepane.

 src/appfinder-model.c  |    8 ++++----
 src/appfinder-window.c |   36 ++++++++++++++++++++++++------------
 2 files changed, 28 insertions(+), 16 deletions(-)

diff --git a/src/appfinder-model.c b/src/appfinder-model.c
index 1613d32..4744e90 100644
--- a/src/appfinder-model.c
+++ b/src/appfinder-model.c
@@ -148,9 +148,8 @@ xfce_appfinder_model_class_init (XfceAppfinderModelClass *klass)
                   G_TYPE_FROM_CLASS (gobject_class),
                   G_SIGNAL_RUN_LAST,
                   0, NULL, NULL,
-                  g_cclosure_marshal_VOID__POINTER,
-                  G_TYPE_NONE, 1,
-                  G_TYPE_POINTER /* GSList */);
+                  g_cclosure_marshal_VOID__VOID,
+                  G_TYPE_NONE, 0);
 }
 
 
@@ -574,7 +573,7 @@ xfce_appfinder_model_collect_idle (gpointer user_data)
       model->categories = model->collect_categories;
       model->collect_categories = NULL;
 
-      g_signal_emit (G_OBJECT (model), model_signals[CATEGORIES_CHANGED], 0, model->categories);
+      g_signal_emit (G_OBJECT (model), model_signals[CATEGORIES_CHANGED], 0);
 
       g_slist_foreach (tmp, (GFunc) xfce_appfinder_model_category_free, NULL);
       g_slist_free (tmp);
@@ -935,6 +934,7 @@ xfce_appfinder_model_menu_changed (GarconMenu         *menu,
   g_return_if_fail (XFCE_IS_APPFINDER_MODEL (model));
 
   /* TODO */
+  APPFINDER_DEBUG ("menu changed");
 }
 
 
diff --git a/src/appfinder-window.c b/src/appfinder-window.c
index e62fdac..aff88e4 100644
--- a/src/appfinder-window.c
+++ b/src/appfinder-window.c
@@ -69,6 +69,7 @@ static void       xfce_appfinder_window_drag_data_get            (GtkWidget
                                                                   XfceAppfinderWindow         *window);
 static void       xfce_appfinder_window_category_changed         (GtkTreeSelection            *selection,
                                                                   XfceAppfinderWindow         *window);
+static void       xfce_appfinder_window_category_set_categories  (XfceAppfinderWindow         *window);
 static gboolean   xfce_appfinder_window_item_visible             (GtkTreeModel                *model,
                                                                   GtkTreeIter                 *iter,
                                                                   gpointer                     data);
@@ -98,6 +99,7 @@ struct _XfceAppfinderWindow
   GtkWidget                  *entry;
   GtkWidget                  *image;
   GtkWidget                  *treeview;
+  GtkWidget                  *sidepane;
 
   GdkPixbuf                  *icon_find;
 
@@ -157,12 +159,10 @@ xfce_appfinder_window_init (XfceAppfinderWindow *window)
   GtkTreeSelection   *selection;
   GtkWidget          *bbox;
   GtkWidget          *button;
-  GtkTreePath        *path;
   GtkEntryCompletion *completion;
   GtkIconTheme       *icon_theme;
   XfconfChannel      *channel;
   gint                integer;
-  GSList             *categories;
 
   channel = xfconf_channel_get ("xfce4-appfinder");
   window->last_window_height = xfconf_channel_get_int (channel, "/LastWindowHeight", DEFAULT_WINDOW_HEIGHT);
@@ -171,12 +171,11 @@ xfce_appfinder_window_init (XfceAppfinderWindow *window)
   window->model = xfce_appfinder_model_get ();
 
   /* load categories in the model */
-  categories = xfce_appfinder_model_get_categories (window->model);
-  if (categories != NULL)
-    xfce_appfinder_category_model_set_categories (window->category_model, categories);
+  if (xfce_appfinder_model_get_categories (window->model) != NULL)
+    xfce_appfinder_window_category_set_categories (window);
   g_signal_connect_swapped (G_OBJECT (window->model), "categories-changed",
-                            G_CALLBACK (xfce_appfinder_category_model_set_categories),
-                            window->category_model);
+                            G_CALLBACK (xfce_appfinder_window_category_set_categories),
+                            window);
 
   gtk_window_set_title (GTK_WINDOW (window), _("Application Finder"));
   integer = xfconf_channel_get_int (channel, "/LastWindowWidth", DEFAULT_WINDOW_WIDTH);
@@ -242,7 +241,7 @@ xfce_appfinder_window_init (XfceAppfinderWindow *window)
   gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scroll), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
   gtk_widget_show (scroll);
 
-  sidepane = gtk_tree_view_new_with_model (GTK_TREE_MODEL (window->category_model));
+  sidepane = window->sidepane = gtk_tree_view_new_with_model (GTK_TREE_MODEL (window->category_model));
   gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (sidepane), FALSE);
   gtk_tree_view_set_enable_search (GTK_TREE_VIEW (sidepane), FALSE);
   g_signal_connect_swapped (GTK_TREE_VIEW (sidepane), "start-interactive-search", G_CALLBACK (gtk_widget_grab_focus), entry);
@@ -251,10 +250,6 @@ xfce_appfinder_window_init (XfceAppfinderWindow *window)
   gtk_container_add (GTK_CONTAINER (scroll), sidepane);
   gtk_widget_show (sidepane);
 
-  path = gtk_tree_path_new_first ();
-  gtk_tree_view_set_cursor (GTK_TREE_VIEW (sidepane), path, NULL, FALSE);
-  gtk_tree_path_free (path);
-
   selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (sidepane));
   gtk_tree_selection_set_mode (selection, GTK_SELECTION_BROWSE);
   g_signal_connect (G_OBJECT (selection), "changed",
@@ -621,6 +616,23 @@ xfce_appfinder_window_category_changed (GtkTreeSelection    *selection,
 
 
 
+static void
+xfce_appfinder_window_category_set_categories (XfceAppfinderWindow *window)
+{
+  GSList      *categories;
+  GtkTreePath *path;
+
+  categories = xfce_appfinder_model_get_categories (window->model);
+  if (categories != NULL)
+    xfce_appfinder_category_model_set_categories (window->category_model, categories);
+
+  path = gtk_tree_path_new_first ();
+  gtk_tree_view_set_cursor (GTK_TREE_VIEW (window->sidepane), path, NULL, FALSE);
+  gtk_tree_path_free (path);
+}
+
+
+
 static gboolean
 xfce_appfinder_window_item_visible (GtkTreeModel *model,
                                     GtkTreeIter  *iter,



More information about the Xfce4-commits mailing list