[gthumb: 4/9] disable drag&drop when the file list is used in a dialog



commit 06a13e5e29759c4350080224ea89906784f8ced9
Author: Paolo Bacchilega <paobac src gnome org>
Date:   Sun Apr 25 19:12:18 2010 +0200

    disable drag&drop when the file list is used in a dialog

 extensions/catalogs/gth-organize-task.c          |    2 +-
 extensions/facebook/dlg-export-to-facebook.c     |    2 +-
 extensions/flicker/dlg-export-to-flickr.c        |    2 +-
 extensions/flicker/dlg-import-from-flickr.c      |    2 +-
 extensions/photo_importer/dlg-photo-importer.c   |    2 +-
 extensions/picasaweb/dlg-export-to-picasaweb.c   |    2 +-
 extensions/picasaweb/dlg-import-from-picasaweb.c |    2 +-
 gthumb/gth-browser.c                             |    4 +-
 gthumb/gth-file-list.c                           |   51 ++++++++++++----------
 gthumb/gth-file-list.h                           |    3 +-
 10 files changed, 39 insertions(+), 33 deletions(-)
---
diff --git a/extensions/catalogs/gth-organize-task.c b/extensions/catalogs/gth-organize-task.c
index ff28633..6c43532 100644
--- a/extensions/catalogs/gth-organize-task.c
+++ b/extensions/catalogs/gth-organize-task.c
@@ -595,7 +595,7 @@ gth_organize_task_init (GthOrganizeTask *self)
 						      gtk_icon_theme_get_for_screen (gtk_widget_get_screen (GET_WIDGET ("organization_treeview"))));
 	g_object_unref (icon);
 
-	self->priv->file_list = gth_file_list_new (GTH_FILE_LIST_TYPE_NORMAL);
+	self->priv->file_list = gth_file_list_new (GTH_FILE_LIST_TYPE_NORMAL, FALSE);
 	gth_file_list_set_caption (GTH_FILE_LIST (self->priv->file_list), "standard::display-name");
 	gtk_widget_show (self->priv->file_list);
 	gtk_box_pack_start (GTK_BOX (GET_WIDGET ("preview_box")), self->priv->file_list, TRUE, TRUE, 0);
diff --git a/extensions/facebook/dlg-export-to-facebook.c b/extensions/facebook/dlg-export-to-facebook.c
index efb47b5..e736da3 100644
--- a/extensions/facebook/dlg-export-to-facebook.c
+++ b/extensions/facebook/dlg-export-to-facebook.c
@@ -533,7 +533,7 @@ dlg_export_to_facebook (GthBrowser *browser,
 
 	/* Set the widget data */
 
-	list_view = gth_file_list_new (GTH_FILE_LIST_TYPE_NO_SELECTION);
+	list_view = gth_file_list_new (GTH_FILE_LIST_TYPE_NO_SELECTION, FALSE);
 	gth_file_list_set_thumb_size (GTH_FILE_LIST (list_view), 112);
 	gth_file_view_set_spacing (GTH_FILE_VIEW (gth_file_list_get_view (GTH_FILE_LIST (list_view))), 0);
 	gth_file_list_enable_thumbs (GTH_FILE_LIST (list_view), TRUE);
diff --git a/extensions/flicker/dlg-export-to-flickr.c b/extensions/flicker/dlg-export-to-flickr.c
index 2601a2f..9f7bf92 100644
--- a/extensions/flicker/dlg-export-to-flickr.c
+++ b/extensions/flicker/dlg-export-to-flickr.c
@@ -527,7 +527,7 @@ dlg_export_to_flickr (FlickrServer *server,
 
 	/* Set the widget data */
 
-	list_view = gth_file_list_new (GTH_FILE_LIST_TYPE_NO_SELECTION);
+	list_view = gth_file_list_new (GTH_FILE_LIST_TYPE_NO_SELECTION, FALSE);
 	gth_file_list_set_thumb_size (GTH_FILE_LIST (list_view), 112);
 	gth_file_view_set_spacing (GTH_FILE_VIEW (gth_file_list_get_view (GTH_FILE_LIST (list_view))), 0);
 	gth_file_list_enable_thumbs (GTH_FILE_LIST (list_view), TRUE);
diff --git a/extensions/flicker/dlg-import-from-flickr.c b/extensions/flicker/dlg-import-from-flickr.c
index 7658405..bb7304b 100644
--- a/extensions/flicker/dlg-import-from-flickr.c
+++ b/extensions/flicker/dlg-import-from-flickr.c
@@ -552,7 +552,7 @@ dlg_import_from_flickr (FlickrServer *server,
 
 	/* Set the widget data */
 
-	data->file_list = gth_file_list_new (GTH_FILE_LIST_TYPE_NORMAL);
+	data->file_list = gth_file_list_new (GTH_FILE_LIST_TYPE_NORMAL, FALSE);
 	thumb_loader = gth_file_list_get_thumb_loader (GTH_FILE_LIST (data->file_list));
 	gth_thumb_loader_use_cache (thumb_loader, FALSE);
 	gth_thumb_loader_set_loader (thumb_loader, flickr_thumbnail_loader);
diff --git a/extensions/photo_importer/dlg-photo-importer.c b/extensions/photo_importer/dlg-photo-importer.c
index 42e81ac..8f9cb76 100644
--- a/extensions/photo_importer/dlg-photo-importer.c
+++ b/extensions/photo_importer/dlg-photo-importer.c
@@ -525,7 +525,7 @@ dlg_photo_importer (GthBrowser *browser,
 					"text", SOURCE_LIST_COLUMN_NAME,
 					NULL);
 
-	data->file_list = gth_file_list_new (GTH_FILE_LIST_TYPE_NORMAL);
+	data->file_list = gth_file_list_new (GTH_FILE_LIST_TYPE_NORMAL, FALSE);
 	sort_type = gth_main_get_sort_type ("file::mtime");
 	gth_file_list_set_sort_func (GTH_FILE_LIST (data->file_list), sort_type->cmp_func, FALSE);
 	gth_file_list_enable_thumbs (GTH_FILE_LIST (data->file_list), TRUE);
diff --git a/extensions/picasaweb/dlg-export-to-picasaweb.c b/extensions/picasaweb/dlg-export-to-picasaweb.c
index f34c00b..e5c4d60 100644
--- a/extensions/picasaweb/dlg-export-to-picasaweb.c
+++ b/extensions/picasaweb/dlg-export-to-picasaweb.c
@@ -868,7 +868,7 @@ dlg_export_to_picasaweb (GthBrowser *browser,
 
 	/* Set the widget data */
 
-	list_view = gth_file_list_new (GTH_FILE_LIST_TYPE_NO_SELECTION);
+	list_view = gth_file_list_new (GTH_FILE_LIST_TYPE_NO_SELECTION, FALSE);
 	gth_file_list_set_thumb_size (GTH_FILE_LIST (list_view), 112);
 	gth_file_view_set_spacing (GTH_FILE_VIEW (gth_file_list_get_view (GTH_FILE_LIST (list_view))), 0);
 	gth_file_list_enable_thumbs (GTH_FILE_LIST (list_view), TRUE);
diff --git a/extensions/picasaweb/dlg-import-from-picasaweb.c b/extensions/picasaweb/dlg-import-from-picasaweb.c
index 5108896..5cd9420 100644
--- a/extensions/picasaweb/dlg-import-from-picasaweb.c
+++ b/extensions/picasaweb/dlg-import-from-picasaweb.c
@@ -945,7 +945,7 @@ dlg_import_from_picasaweb (GthBrowser *browser)
 
 	/* Set the widget data */
 
-	data->file_list = gth_file_list_new (GTH_FILE_LIST_TYPE_NORMAL);
+	data->file_list = gth_file_list_new (GTH_FILE_LIST_TYPE_NORMAL, FALSE);
 	thumb_loader = gth_file_list_get_thumb_loader (GTH_FILE_LIST (data->file_list));
 	gth_thumb_loader_use_cache (thumb_loader, FALSE);
 	gth_thumb_loader_set_loader (thumb_loader, picasa_web_thumbnail_loader);
diff --git a/gthumb/gth-browser.c b/gthumb/gth-browser.c
index 459d506..5d675b7 100644
--- a/gthumb/gth-browser.c
+++ b/gthumb/gth-browser.c
@@ -3531,7 +3531,7 @@ _gth_browser_construct (GthBrowser *browser)
 	gtk_widget_set_size_request (browser->priv->viewer_sidebar, MAX (eel_gconf_get_integer (PREF_UI_VIEWER_SIDEBAR_WIDTH, DEF_VIEWER_SIDEBAR_WIDTH), DEF_VIEWER_SIDEBAR_WIDTH), -1);
 	gtk_paned_pack2 (GTK_PANED (browser->priv->viewer_sidebar_pane), browser->priv->viewer_sidebar, FALSE, TRUE);
 
-	browser->priv->thumbnail_list = gth_file_list_new (GTH_FILE_LIST_TYPE_THUMBNAIL);
+	browser->priv->thumbnail_list = gth_file_list_new (GTH_FILE_LIST_TYPE_THUMBNAIL, TRUE);
 	gth_file_list_set_caption (GTH_FILE_LIST (browser->priv->thumbnail_list), "none");
 	gth_file_view_set_spacing (GTH_FILE_VIEW (gth_file_list_get_view (GTH_FILE_LIST (browser->priv->thumbnail_list))), 0);
 	gth_file_list_set_thumb_size (GTH_FILE_LIST (browser->priv->thumbnail_list), 95);
@@ -3687,7 +3687,7 @@ _gth_browser_construct (GthBrowser *browser)
 
 	/* the file list */
 
-	browser->priv->file_list = gth_file_list_new (GTH_FILE_LIST_TYPE_NORMAL);
+	browser->priv->file_list = gth_file_list_new (GTH_FILE_LIST_TYPE_NORMAL, TRUE);
 	gth_browser_set_sort_order (browser,
 				    gth_main_get_sort_type (eel_gconf_get_string (PREF_SORT_TYPE, "file::mtime")),
 				    FALSE);
diff --git a/gthumb/gth-file-list.c b/gthumb/gth-file-list.c
index e202225..420f0a7 100644
--- a/gthumb/gth-file-list.c
+++ b/gthumb/gth-file-list.c
@@ -516,15 +516,13 @@ checkbox_toggled_cb (GtkCellRendererToggle *cell_renderer,
 
 static void
 gth_file_list_construct (GthFileList     *file_list,
-			 GthFileListType  list_type)
+			 GthFileListType  list_type,
+			 gboolean         enable_drag_drop)
 {
 	GtkWidget       *scrolled;
 	GtkWidget       *viewport;
 	GtkCellRenderer *renderer;
 	GthFileStore    *model;
-	GtkTargetList   *target_list;
-	GtkTargetEntry  *targets;
-	int              n_targets;
 
 	file_list->priv->type = list_type;
 
@@ -582,23 +580,29 @@ gth_file_list_construct (GthFileList     *file_list,
 	else
 		gth_file_selection_set_selection_mode (GTH_FILE_SELECTION (file_list->priv->view), GTK_SELECTION_MULTIPLE);
 
-	target_list = gtk_target_list_new (NULL, 0);
-	gtk_target_list_add_uri_targets (target_list, 0);
-	gtk_target_list_add_text_targets (target_list, 0);
-	targets = gtk_target_table_new_from_list (target_list, &n_targets);
-	gth_file_view_enable_drag_source (GTH_FILE_VIEW (file_list->priv->view),
-					  GDK_BUTTON1_MASK,
-					  targets,
-					  n_targets,
-					  GDK_ACTION_MOVE | GDK_ACTION_COPY);
-
-	gtk_target_list_unref (target_list);
-	gtk_target_table_free (targets, n_targets);
-
-	g_signal_connect (G_OBJECT (file_list->priv->view),
-			  "drag-data-get",
-			  G_CALLBACK (file_view_drag_data_get_cb),
-			  file_list);
+	if (enable_drag_drop) {
+		GtkTargetList   *target_list;
+		GtkTargetEntry  *targets;
+		int              n_targets;
+
+		target_list = gtk_target_list_new (NULL, 0);
+		gtk_target_list_add_uri_targets (target_list, 0);
+		gtk_target_list_add_text_targets (target_list, 0);
+		targets = gtk_target_table_new_from_list (target_list, &n_targets);
+		gth_file_view_enable_drag_source (GTH_FILE_VIEW (file_list->priv->view),
+						  GDK_BUTTON1_MASK,
+						  targets,
+						  n_targets,
+						  GDK_ACTION_MOVE | GDK_ACTION_COPY);
+
+		gtk_target_list_unref (target_list);
+		gtk_target_table_free (targets, n_targets);
+
+		g_signal_connect (G_OBJECT (file_list->priv->view),
+				  "drag-data-get",
+				  G_CALLBACK (file_view_drag_data_get_cb),
+				  file_list);
+	}
 
 	/* checkbox */
 
@@ -711,12 +715,13 @@ gth_file_list_get_type (void)
 
 
 GtkWidget*
-gth_file_list_new (GthFileListType list_type)
+gth_file_list_new (GthFileListType list_type,
+		   gboolean        enable_drag_drop)
 {
 	GtkWidget *widget;
 
 	widget = GTK_WIDGET (g_object_new (GTH_TYPE_FILE_LIST, NULL));
-	gth_file_list_construct (GTH_FILE_LIST (widget), list_type);
+	gth_file_list_construct (GTH_FILE_LIST (widget), list_type, enable_drag_drop);
 
 	return widget;
 }
diff --git a/gthumb/gth-file-list.h b/gthumb/gth-file-list.h
index 353d626..f01556e 100644
--- a/gthumb/gth-file-list.h
+++ b/gthumb/gth-file-list.h
@@ -61,7 +61,8 @@ struct _GthFileListClass {
 };
 
 GType             gth_file_list_get_type         (void);
-GtkWidget *       gth_file_list_new              (GthFileListType       list_type);
+GtkWidget *       gth_file_list_new              (GthFileListType       list_type,
+						  gboolean              enable_drag_drop);
 void              gth_file_list_cancel           (GthFileList          *file_list,
 					          DataFunc              done_func,
 					          gpointer              user_data);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]