[gtk+/places-sidebar] Implement the application-side shortcuts in GtkFileChooserDefault
- From: Federico Mena Quintero <federico src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+/places-sidebar] Implement the application-side shortcuts in GtkFileChooserDefault
- Date: Mon, 10 Dec 2012 20:08:55 +0000 (UTC)
commit 976672ad4bff61748af259dfec2eef3aad0ce362
Author: Federico Mena Quintero <federico gnome org>
Date: Mon Dec 10 13:48:42 2012 -0600
Implement the application-side shortcuts in GtkFileChooserDefault
Signed-off-by: Federico Mena Quintero <federico gnome org>
gtk/gtkfilechooserdefault.c | 174 +------------------------------------------
gtk/gtkplacessidebar.c | 2 -
2 files changed, 3 insertions(+), 173 deletions(-)
---
diff --git a/gtk/gtkfilechooserdefault.c b/gtk/gtkfilechooserdefault.c
index 7b686f8..0180709 100644
--- a/gtk/gtkfilechooserdefault.c
+++ b/gtk/gtkfilechooserdefault.c
@@ -5624,71 +5624,9 @@ gtk_file_chooser_default_add_shortcut_folder (GtkFileChooser *chooser,
GFile *file,
GError **error)
{
-#if REMOVE_FOR_PLACES_SIDEBAR
- GCancellable *cancellable;
GtkFileChooserDefault *impl = GTK_FILE_CHOOSER_DEFAULT (chooser);
- struct AddShortcutData *data;
- GSList *l;
- int pos;
-
- /* Avoid adding duplicates */
- pos = shortcut_find_position (impl, file);
- if (pos >= 0 && pos < shortcuts_get_index (impl, SHORTCUTS_BOOKMARKS_SEPARATOR))
- {
- gchar *uri;
-
- uri = g_file_get_uri (file);
- /* translators, "Shortcut" means "Bookmark" here */
- g_set_error (error,
- GTK_FILE_CHOOSER_ERROR,
- GTK_FILE_CHOOSER_ERROR_ALREADY_EXISTS,
- _("Shortcut %s already exists"),
- uri);
- g_free (uri);
-
- return FALSE;
- }
-
- for (l = impl->loading_shortcuts; l; l = l->next)
- {
- GCancellable *c = l->data;
- GFile *f;
-
- f = g_object_get_data (G_OBJECT (c), "add-shortcut-path-key");
- if (f && g_file_equal (file, f))
- {
- gchar *uri;
-
- uri = g_file_get_uri (file);
- g_set_error (error,
- GTK_FILE_CHOOSER_ERROR,
- GTK_FILE_CHOOSER_ERROR_ALREADY_EXISTS,
- _("Shortcut %s already exists"),
- uri);
- g_free (uri);
-
- return FALSE;
- }
- }
-
- data = g_new0 (struct AddShortcutData, 1);
- data->impl = g_object_ref (impl);
- data->file = g_object_ref (file);
- cancellable = _gtk_file_system_get_info (impl->file_system, file,
- "standard::type",
- add_shortcut_get_info_cb, data);
-
- if (!cancellable)
- return FALSE;
-
- impl->loading_shortcuts = g_slist_append (impl->loading_shortcuts, cancellable);
- g_object_set_data (G_OBJECT (cancellable), "add-shortcut-path-key", data->file);
-
- return TRUE;
-#else
- return FALSE;
-#endif
+ return gtk_places_sidebar_add_shortcut (GTK_PLACES_SIDEBAR (impl->places_sidebar), file, error);
}
static gboolean
@@ -5696,123 +5634,17 @@ gtk_file_chooser_default_remove_shortcut_folder (GtkFileChooser *chooser,
GFile *file,
GError **error)
{
-#if REMOVE_FOR_PLACES_SIDEBAR
GtkFileChooserDefault *impl = GTK_FILE_CHOOSER_DEFAULT (chooser);
- int pos;
- GtkTreeIter iter;
- GSList *l;
- char *uri;
- int i;
-
- for (l = impl->loading_shortcuts; l; l = l->next)
- {
- GCancellable *c = l->data;
- GFile *f;
-
- f = g_object_get_data (G_OBJECT (c), "add-shortcut-path-key");
- if (f && g_file_equal (file, f))
- {
- impl->loading_shortcuts = g_slist_remove (impl->loading_shortcuts, c);
- g_cancellable_cancel (c);
- return TRUE;
- }
- }
-
- if (impl->num_shortcuts == 0)
- goto out;
-
- pos = shortcuts_get_pos_for_shortcut_folder (impl, 0);
- if (!gtk_tree_model_iter_nth_child (GTK_TREE_MODEL (impl->shortcuts_model), &iter, NULL, pos))
- g_assert_not_reached ();
-
- for (i = 0; i < impl->num_shortcuts; i++)
- {
- gpointer col_data;
- ShortcutType shortcut_type;
- GFile *shortcut;
-
- gtk_tree_model_get (GTK_TREE_MODEL (impl->shortcuts_model), &iter,
- SHORTCUTS_COL_DATA, &col_data,
- SHORTCUTS_COL_TYPE, &shortcut_type,
- -1);
- g_assert (col_data != NULL);
- g_assert (shortcut_type == SHORTCUT_TYPE_FILE);
-
- shortcut = col_data;
- if (g_file_equal (shortcut, file))
- {
- shortcuts_remove_rows (impl, pos + i, 1);
- impl->num_shortcuts--;
- return TRUE;
- }
-
- if (!gtk_tree_model_iter_next (GTK_TREE_MODEL (impl->shortcuts_model), &iter))
- g_assert_not_reached ();
- }
-
- out:
-
- uri = g_file_get_uri (file);
- /* translators, "Shortcut" means "Bookmark" here */
- g_set_error (error,
- GTK_FILE_CHOOSER_ERROR,
- GTK_FILE_CHOOSER_ERROR_NONEXISTENT,
- _("Shortcut %s does not exist"),
- uri);
- g_free (uri);
- return FALSE;
-#else
- return FALSE;
-#endif
+ return gtk_places_sidebar_remove_shortcut (GTK_PLACES_SIDEBAR (impl->places_sidebar), file, error);
}
static GSList *
gtk_file_chooser_default_list_shortcut_folders (GtkFileChooser *chooser)
{
-#if REMOVE_FOR_PLACES_SIDEBAR
GtkFileChooserDefault *impl = GTK_FILE_CHOOSER_DEFAULT (chooser);
- int pos;
- GtkTreeIter iter;
- int i;
- GSList *list;
-
- if (impl->num_shortcuts == 0)
- return NULL;
-
- pos = shortcuts_get_pos_for_shortcut_folder (impl, 0);
- if (!gtk_tree_model_iter_nth_child (GTK_TREE_MODEL (impl->shortcuts_model), &iter, NULL, pos))
- g_assert_not_reached ();
-
- list = NULL;
-
- for (i = 0; i < impl->num_shortcuts; i++)
- {
- gpointer col_data;
- ShortcutType shortcut_type;
- GFile *shortcut;
-
- gtk_tree_model_get (GTK_TREE_MODEL (impl->shortcuts_model), &iter,
- SHORTCUTS_COL_DATA, &col_data,
- SHORTCUTS_COL_TYPE, &shortcut_type,
- -1);
- g_assert (col_data != NULL);
- g_assert (shortcut_type == SHORTCUT_TYPE_FILE);
-
- shortcut = col_data;
- list = g_slist_prepend (list, g_object_ref (shortcut));
-
- if (i != impl->num_shortcuts - 1)
- {
- if (!gtk_tree_model_iter_next (GTK_TREE_MODEL (impl->shortcuts_model), &iter))
- g_assert_not_reached ();
- }
- }
- return g_slist_reverse (list);
-#else
- return NULL;
-#endif
+ return gtk_places_sidebar_list_shortcuts (GTK_PLACES_SIDEBAR (impl->places_sidebar));
}
/* Guesses a size based upon font sizes */
diff --git a/gtk/gtkplacessidebar.c b/gtk/gtkplacessidebar.c
index 874da64..8f98d97 100644
--- a/gtk/gtkplacessidebar.c
+++ b/gtk/gtkplacessidebar.c
@@ -41,8 +41,6 @@
* suggests that this logic should be part of GtkMountOperation, which can
* have Unix-specific code for emptying trash.
*
- * * Add a way to implement gtk_file_chooser_add_shortcut_folder() and friends.
- *
* * Grep for the comment containing "machinery" in this file, and copy that machinery
* from Nautilus - it's to get symbolic icons for everything.
*
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]