[Xfce4-commits] <thunar:jannis/new-shortcuts-pane> Simplify the shortcuts view code a bit.

Jannis Pohlmann noreply at xfce.org
Sun Nov 6 23:56:01 CET 2011


Updating branch refs/heads/jannis/new-shortcuts-pane
         to 284ab2e30656fcb70ad74f967b175ceb4f96d9a1 (commit)
       from 79c535f5c5c76235fad98f4369d0e5bf84935f50 (commit)

commit 284ab2e30656fcb70ad74f967b175ceb4f96d9a1
Author: Jannis Pohlmann <jannis at xfce.org>
Date:   Sun Nov 6 23:55:19 2011 +0100

    Simplify the shortcuts view code a bit.

 thunar/thunar-shortcuts-view.c |  139 ++++++++++++----------------------------
 1 files changed, 40 insertions(+), 99 deletions(-)

diff --git a/thunar/thunar-shortcuts-view.c b/thunar/thunar-shortcuts-view.c
index ac55bb4..01f8026 100644
--- a/thunar/thunar-shortcuts-view.c
+++ b/thunar/thunar-shortcuts-view.c
@@ -74,12 +74,6 @@ enum
 
 
 
-typedef void (*ThunarShortcutsViewForeachGroupFunc) (ThunarShortcutsView *view,
-                                                     ThunarShortcutGroup *group,
-                                                     gpointer             user_data);
-
-
-
 static void               thunar_shortcuts_view_constructed              (GObject                            *object);
 static void               thunar_shortcuts_view_finalize                 (GObject                            *object);
 static void               thunar_shortcuts_view_get_property             (GObject                            *object,
@@ -107,15 +101,9 @@ static void               thunar_shortcuts_view_mount_added              (Thunar
 static void               thunar_shortcuts_view_volume_removed           (ThunarShortcutsView                *view,
                                                                           GVolume                            *volume,
                                                                           GVolumeMonitor                     *monitor);
-static void               thunar_shortcuts_view_remove_volume_shortcut   (ThunarShortcutsView                *view,
-                                                                          ThunarShortcutGroup                *group,
-                                                                          gpointer                            user_data);
 static void               thunar_shortcuts_view_mount_removed            (ThunarShortcutsView                *view,
                                                                           GMount                             *mount,
                                                                           GVolumeMonitor                     *monitor);
-static void               thunar_shortcuts_view_remove_mount_shortcut    (ThunarShortcutsView                *view,
-                                                                          ThunarShortcutGroup                *group,
-                                                                          gpointer                            user_data);
 static void               thunar_shortcuts_view_add_shortcut             (ThunarShortcutsView                *view,
                                                                           ThunarShortcut                     *shortcut);
 static void               thunar_shortcuts_view_shortcut_activated       (ThunarShortcutsView                *view,
@@ -126,14 +114,9 @@ static void               thunar_shortcuts_view_shortcut_state_changed   (Thunar
                                                                           GtkStateType                        previous_state,
                                                                           ThunarShortcut                     *shortcut);
 static void               thunar_shortcuts_view_unselect_shortcuts       (ThunarShortcutsView                *view,
-                                                                          ThunarShortcutGroup                *group,
-                                                                          gpointer                            user_data);
+                                                                          ThunarShortcut                     *exception);
 static void               thunar_shortcuts_view_unprelight_shortcuts     (ThunarShortcutsView                *view,
-                                                                          ThunarShortcutGroup                *group,
-                                                                          gpointer                            user_data);
-static void               thunar_shortcuts_view_foreach_group            (ThunarShortcutsView                *view,
-                                                                          ThunarShortcutsViewForeachGroupFunc func,
-                                                                          gpointer                            user_data);
+                                                                          ThunarShortcut                     *shortcut);
 static void               thunar_shortcuts_view_open                     (ThunarShortcutsView                *view,
                                                                           ThunarFile                         *file,
                                                                           gboolean                            new_window);
@@ -149,9 +132,6 @@ static void               thunar_shortcuts_view_shortcut_unmount         (Thunar
                                                                           GtkMenuItem                        *item);
 static gboolean           thunar_shortcuts_view_shortcut_context_menu    (ThunarShortcutsView              *view,
                                                                           GtkWidget                        *widget);
-static void               thunar_shortcuts_view_update_selection         (ThunarShortcutsView              *view,
-                                                                          ThunarShortcutGroup              *group,
-                                                                          gpointer                          user_data);
 
 
 
@@ -779,29 +759,19 @@ thunar_shortcuts_view_volume_removed (ThunarShortcutsView *view,
                                       GVolume             *volume,
                                       GVolumeMonitor      *monitor)
 {
+  GList *children;
+  GList *iter;
+
   _thunar_return_if_fail (THUNAR_IS_SHORTCUTS_VIEW (view));
   _thunar_return_if_fail (G_IS_VOLUME (volume));
   _thunar_return_if_fail (G_IS_VOLUME_MONITOR (monitor));
 
-  thunar_shortcuts_view_foreach_group (view,
-                                       thunar_shortcuts_view_remove_volume_shortcut,
-                                       volume);
-}
-
-
-
-static void
-thunar_shortcuts_view_remove_volume_shortcut (ThunarShortcutsView *view,
-                                              ThunarShortcutGroup *group,
-                                              gpointer             user_data)
-{
-  GVolume *volume = G_VOLUME (user_data);
+  children = gtk_container_get_children (GTK_CONTAINER (view->group_box));
 
-  _thunar_return_if_fail (THUNAR_IS_SHORTCUTS_VIEW (view));
-  _thunar_return_if_fail (THUNAR_IS_SHORTCUT_GROUP (group));
-  _thunar_return_if_fail (G_IS_VOLUME (volume));
+  for (iter = children; iter != NULL; iter = iter->next)
+    thunar_shortcut_group_remove_volume_shortcut (iter->data, volume);
 
-  thunar_shortcut_group_remove_volume_shortcut (group, volume);
+  g_list_free (children);
 }
 
 
@@ -869,29 +839,19 @@ thunar_shortcuts_view_mount_removed (ThunarShortcutsView *view,
                                      GMount              *mount,
                                      GVolumeMonitor      *monitor)
 {
+  GList *children;
+  GList *iter;
+
   _thunar_return_if_fail (THUNAR_IS_SHORTCUTS_VIEW (view));
   _thunar_return_if_fail (G_IS_MOUNT (mount));
   _thunar_return_if_fail (G_IS_VOLUME_MONITOR (monitor));
 
-  thunar_shortcuts_view_foreach_group (view,
-                                       thunar_shortcuts_view_remove_mount_shortcut,
-                                       mount);
-}
-
-
-
-static void
-thunar_shortcuts_view_remove_mount_shortcut (ThunarShortcutsView *view,
-                                             ThunarShortcutGroup *group,
-                                             gpointer             user_data)
-{
-  GMount *mount = G_MOUNT (user_data);
+  children = gtk_container_get_children (GTK_CONTAINER (view->group_box));
 
-  _thunar_return_if_fail (THUNAR_IS_SHORTCUTS_VIEW (view));
-  _thunar_return_if_fail (THUNAR_IS_SHORTCUT_GROUP (group));
-  _thunar_return_if_fail (G_IS_MOUNT (mount));
+  for (iter = children; iter != NULL; iter = iter->next)
+    thunar_shortcut_group_remove_mount_shortcut (iter->data, mount);
 
-  thunar_shortcut_group_remove_mount_shortcut (group, mount);
+  g_list_free (children);
 }
 
 
@@ -974,16 +934,12 @@ thunar_shortcuts_view_shortcut_state_changed (ThunarShortcutsView *view,
   if (gtk_widget_get_state (GTK_WIDGET (shortcut)) == GTK_STATE_SELECTED)
     {
       /* unselect all other shortcuts */
-      thunar_shortcuts_view_foreach_group (view,
-                                           thunar_shortcuts_view_unselect_shortcuts,
-                                           shortcut);
+      thunar_shortcuts_view_unselect_shortcuts (view, shortcut);
     }
   else if (gtk_widget_get_state (GTK_WIDGET (shortcut)) == GTK_STATE_PRELIGHT)
     {
       /* unprelight all other shortcuts */
-      thunar_shortcuts_view_foreach_group (view,
-                                           thunar_shortcuts_view_unprelight_shortcuts,
-                                           shortcut);
+      thunar_shortcuts_view_unprelight_shortcuts (view, shortcut);
     }
 }
 
@@ -991,44 +947,38 @@ thunar_shortcuts_view_shortcut_state_changed (ThunarShortcutsView *view,
 
 static void
 thunar_shortcuts_view_unselect_shortcuts (ThunarShortcutsView *view,
-                                          ThunarShortcutGroup *group,
-                                          gpointer             user_data)
+                                          ThunarShortcut      *exception)
 {
-  _thunar_return_if_fail (THUNAR_IS_SHORTCUTS_VIEW (view));
-  _thunar_return_if_fail (THUNAR_IS_SHORTCUT_GROUP (group));
-
-  thunar_shortcut_group_unselect_shortcuts (group, THUNAR_SHORTCUT (user_data));
-}
+  GList *children;
+  GList *iter;
 
+  _thunar_return_if_fail (THUNAR_IS_SHORTCUTS_VIEW (view));
+  _thunar_return_if_fail (THUNAR_IS_SHORTCUT (exception));
 
+  children = gtk_container_get_children (GTK_CONTAINER (view->group_box));
 
-static void
-thunar_shortcuts_view_unprelight_shortcuts (ThunarShortcutsView *view,
-                                            ThunarShortcutGroup *group,
-                                            gpointer             user_data)
-{
-  _thunar_return_if_fail (THUNAR_IS_SHORTCUTS_VIEW (view));
-  _thunar_return_if_fail (THUNAR_IS_SHORTCUT_GROUP (group));
+  for (iter = children; iter != NULL; iter = iter->next)
+    thunar_shortcut_group_unselect_shortcuts (iter->data, exception);
 
-  thunar_shortcut_group_unprelight_shortcuts (group, THUNAR_SHORTCUT (user_data));
+  g_list_free (children);
 }
 
 
 
 static void
-thunar_shortcuts_view_foreach_group (ThunarShortcutsView                *view,
-                                     ThunarShortcutsViewForeachGroupFunc func,
-                                     gpointer                            user_data)
+thunar_shortcuts_view_unprelight_shortcuts (ThunarShortcutsView *view,
+                                            ThunarShortcut      *exception)
 {
   GList *children;
   GList *iter;
 
   _thunar_return_if_fail (THUNAR_IS_SHORTCUTS_VIEW (view));
+  _thunar_return_if_fail (THUNAR_IS_SHORTCUT (exception));
 
   children = gtk_container_get_children (GTK_CONTAINER (view->group_box));
 
   for (iter = children; iter != NULL; iter = iter->next)
-    (*func) (view, THUNAR_SHORTCUT_GROUP (iter->data), user_data);
+    thunar_shortcut_group_unprelight_shortcuts (iter->data, exception);
 
   g_list_free (children);
 }
@@ -1370,22 +1320,6 @@ thunar_shortcuts_view_shortcut_context_menu (ThunarShortcutsView *view,
 
 
 
-static void
-thunar_shortcuts_view_update_selection (ThunarShortcutsView *view,
-                                        ThunarShortcutGroup *group,
-                                        gpointer             user_data)
-{
-  ThunarFile *file = THUNAR_FILE (user_data);
-
-  _thunar_return_if_fail (THUNAR_IS_SHORTCUTS_VIEW (view));
-  _thunar_return_if_fail (THUNAR_IS_SHORTCUT_GROUP (group));
-  _thunar_return_if_fail (THUNAR_IS_FILE (file));
-
-  thunar_shortcut_group_update_selection (group, file);
-}
-
-
-
 /**
  * thunar_shortcuts_view_new:
  *
@@ -1452,9 +1386,16 @@ void
 thunar_shortcuts_view_select_by_file (ThunarShortcutsView *view,
                                       ThunarFile          *file)
 {
+  GList *children;
+  GList *iter;
+
   _thunar_return_if_fail (THUNAR_IS_SHORTCUTS_VIEW (view));
   _thunar_return_if_fail (THUNAR_IS_FILE (file));
 
-  thunar_shortcuts_view_foreach_group (view, thunar_shortcuts_view_update_selection,
-                                       file);
+  children = gtk_container_get_children (GTK_CONTAINER (view->group_box));
+
+  for (iter = children; iter != NULL; iter = iter->next)
+    thunar_shortcut_group_update_selection (iter->data, file);
+
+  g_list_free (children);
 }


More information about the Xfce4-commits mailing list