Author: pollux
Date: 2006-07-30 21:26:02 +0000 (Sun, 30 Jul 2006)
New Revision: 22576

Modified:
   xfburn/trunk/xfburn/xfburn-file-browser.c
   xfburn/trunk/xfburn/xfburn-fs-browser.c
Log:
fix browsing

Modified: xfburn/trunk/xfburn/xfburn-file-browser.c
===================================================================
--- xfburn/trunk/xfburn/xfburn-file-browser.c   2006-07-30 21:19:30 UTC (rev 
22575)
+++ xfburn/trunk/xfburn/xfburn-file-browser.c   2006-07-30 21:26:02 UTC (rev 
22576)
@@ -21,6 +21,10 @@
 #include <config.h>
 #endif /* !HAVE_CONFIG_H */
 
+#ifdef HAVE_STRING_H
+#include <string.h>
+#endif
+
 #include <gtk/gtk.h>
 #include <libxfce4util/libxfce4util.h>
 #include <libxfcegui4/libxfcegui4.h>
@@ -120,16 +124,17 @@
 {
   GtkTreeSelection *selection_dir, *selection_fs;
   GtkTreeModel *model_dir, *model_fs;
-  GtkTreeIter iter_dir, iter_fs, iter;
+  GtkTreeIter iter_dir, iter_fs;
 
   selection_dir = gtk_tree_view_get_selection (GTK_TREE_VIEW (treeview));
   selection_fs = gtk_tree_view_get_selection (GTK_TREE_VIEW 
(browser->fs_browser));
   if (gtk_tree_selection_count_selected_rows (selection_dir) == 1 &&
-      gtk_tree_selection_get_selected (selection_fs, &model_fs, &iter_fs) &&
-      gtk_tree_model_iter_children (model_fs, &iter, &iter_fs)) {
+      gtk_tree_selection_get_selected (selection_fs, &model_fs, &iter_fs)) {
     GtkTreePath *path_fs, *path_dir;
-    GList *selected_row;
-    gchar *directory;
+    GList *selected_row = NULL;
+    GtkTreeIter iter;
+    gchar *directory = NULL;
+    gboolean found = FALSE;
 
     selected_row = gtk_tree_selection_get_selected_rows (selection_dir, 
&model_dir);
     path_dir = (GtkTreePath *) selected_row->data;
@@ -143,20 +148,27 @@
     path_fs = gtk_tree_model_get_path (model_fs, &iter_fs);
     gtk_tree_view_expand_row (GTK_TREE_VIEW (browser->fs_browser), path_fs, 
FALSE);
 
-    do {
-      gchar *temp;
+    if (gtk_tree_model_iter_children (model_fs, &iter, &iter_fs)) {
+      do {
+        gchar *temp = NULL;
 
-      gtk_tree_model_get (model_fs, &iter, FS_BROWSER_COLUMN_DIRECTORY, &temp, 
-1);
-
-      if (!g_ascii_strcasecmp (temp, directory))
-        break;
-
-      g_free (temp);
-    } while (gtk_tree_model_iter_next (model_fs, &iter));
-
+        gtk_tree_model_get (model_fs, &iter, FS_BROWSER_COLUMN_DIRECTORY, 
&temp, -1);
+        
+        if (temp && !strcmp (temp, directory)) {
+          found = TRUE;
+          g_free (temp);
+          break;
+        }
+      
+        g_free (temp);
+      } while (gtk_tree_model_iter_next (model_fs, &iter));
+    }
+        
     /* select the current directory in the FS browser */
-    //gtk_tree_selection_select_iter (selection_fs, &iter);
-    //gtk_tree_view_scroll_to_cell (GTK_TREE_VIEW (browser->fs_browser), 
path_fs, NULL, FALSE, 0, 0);
+    if (found) {
+      gtk_tree_selection_select_iter (selection_fs, &iter);
+      gtk_tree_view_scroll_to_cell (GTK_TREE_VIEW (browser->fs_browser), 
path_fs, NULL, FALSE, 0, 0);
+    }
 
     gtk_tree_path_free (path_fs);
     g_free (directory);

Modified: xfburn/trunk/xfburn/xfburn-fs-browser.c
===================================================================
--- xfburn/trunk/xfburn/xfburn-fs-browser.c     2006-07-30 21:19:30 UTC (rev 
22575)
+++ xfburn/trunk/xfburn/xfburn-fs-browser.c     2006-07-30 21:26:02 UTC (rev 
22576)
@@ -37,6 +37,7 @@
 static void xfburn_fs_browser_init (XfburnFsBrowser * sp);
 
 static void cb_browser_row_expanded (GtkTreeView *, GtkTreeIter *, GtkTreePath 
*, gpointer);
+static void cb_browser_row_activated (GtkTreeView *tree_view, GtkTreePath 
*path, GtkTreeViewColumn *column, gpointer user_data);
 static void cb_browser_drag_data_get (GtkWidget *, GdkDragContext *, 
GtkSelectionData *, guint, guint, gpointer);
 
 /* globals */
@@ -83,8 +84,6 @@
 
   GtkTargetEntry gte[] = { {"text/plain", 0, 
DATA_COMPOSITION_DND_TARGET_TEXT_PLAIN} };
 
-  //  gtk_widget_set_size_request (GTK_WIDGET (browser), 200, 300);
-
   model = gtk_tree_store_new (FS_BROWSER_N_COLUMNS, GDK_TYPE_PIXBUF, 
G_TYPE_STRING, G_TYPE_STRING);
   gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (model), 
FS_BROWSER_COLUMN_DIRECTORY, GTK_SORT_ASCENDING);
   gtk_tree_view_set_model (GTK_TREE_VIEW (browser), GTK_TREE_MODEL (model));
@@ -109,7 +108,8 @@
   gtk_tree_selection_set_mode (selection, GTK_SELECTION_BROWSE);
 
   g_signal_connect (G_OBJECT (browser), "row-expanded", G_CALLBACK 
(cb_browser_row_expanded), browser);
-
+  g_signal_connect (G_OBJECT (browser), "row-activated", G_CALLBACK 
(cb_browser_row_activated), browser);
+  
   /* load the directory list */
   xfburn_fs_browser_refresh (browser);
 
@@ -196,6 +196,12 @@
 }
 
 static void
+cb_browser_row_activated (GtkTreeView *treeview, GtkTreePath *path, 
GtkTreeViewColumn *column, gpointer user_data)
+{
+  gtk_tree_view_expand_row (treeview, path, FALSE);
+}
+
+static void
 cb_browser_drag_data_get (GtkWidget * widget, GdkDragContext * dc,
                           GtkSelectionData * data, guint info, guint time, 
gpointer user_data)
 {

_______________________________________________
Xfce4-commits mailing list
[email protected]
http://foo-projects.org/mailman/listinfo/xfce4-commits

Reply via email to