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