[nautilus] application: move server saving out of NautilusApplication



commit 3531861384297545f1994847705009fda5d32c6b
Author: Cosimo Cecchi <cosimoc gnome org>
Date:   Sat Dec 6 15:30:22 2014 -0800

    application: move server saving out of NautilusApplication
    
    This code belongs in NautilusConnectServerDialog, where utilities to
    load/save the bookmarks list already exist.

 src/nautilus-application.c           |   43 +--------------------------------
 src/nautilus-connect-server-dialog.c |   37 +++++++++++++++++++++++-----
 src/nautilus-connect-server-dialog.h |    1 +
 3 files changed, 33 insertions(+), 48 deletions(-)
---
diff --git a/src/nautilus-application.c b/src/nautilus-application.c
index 391d041..89d0c7e 100644
--- a/src/nautilus-application.c
+++ b/src/nautilus-application.c
@@ -509,51 +509,12 @@ go_to_server_cb (NautilusWindow *window,
                 gpointer        user_data)
 {
        gboolean retval;
+       NautilusFile *file;
 
        if (error == NULL) {
-               GBookmarkFile *bookmarks;
-               GError *error = NULL;
-               char *datadir;
-               char *filename;
-               char *uri;
-               char *title;
-               NautilusFile *file;
-               gboolean safe_to_save = TRUE;
-
                file = nautilus_file_get_existing (location);
-
-               bookmarks = g_bookmark_file_new ();
-               datadir = g_build_filename (g_get_user_config_dir (), "nautilus", NULL);
-               filename = g_build_filename (datadir, "servers", NULL);
-               g_mkdir_with_parents (datadir, 0700);
-               g_free (datadir);
-               g_bookmark_file_load_from_file (bookmarks,
-                                               filename,
-                                               &error);
-               if (error != NULL) {
-                       if (! g_error_matches (error, G_FILE_ERROR, G_FILE_ERROR_NOENT)) {
-                               /* only warn if the file exists */
-                               g_warning ("Unable to open server bookmarks: %s", error->message);
-                               safe_to_save = FALSE;
-                       }
-                       g_error_free (error);
-               }
-
-               if (safe_to_save) {
-                       uri = nautilus_file_get_uri (file);
-                       title = nautilus_file_get_display_name (file);
-                       g_bookmark_file_set_title (bookmarks, uri, title);
-                       g_bookmark_file_set_visited (bookmarks, uri, -1);
-                       g_bookmark_file_add_application (bookmarks, uri, NULL, NULL);
-                       g_free (uri);
-                       g_free (title);
-
-                       g_bookmark_file_to_file (bookmarks, filename, NULL);
-               }
-
+               nautilus_connect_server_dialog_add_server (file);
                nautilus_file_unref (file);
-               g_free (filename);
-               g_bookmark_file_free (bookmarks);
 
                retval = TRUE;
        } else {
diff --git a/src/nautilus-connect-server-dialog.c b/src/nautilus-connect-server-dialog.c
index 6d53fc1..b285541 100644
--- a/src/nautilus-connect-server-dialog.c
+++ b/src/nautilus-connect-server-dialog.c
@@ -318,7 +318,7 @@ on_selection_changed (GtkTreeSelection            *selection,
 }
 
 static GBookmarkFile *
-server_list_load (NautilusConnectServerDialog *dialog)
+server_list_load (void)
 {
        GBookmarkFile *bookmarks;
        GError *error = NULL;
@@ -348,8 +348,7 @@ server_list_load (NautilusConnectServerDialog *dialog)
 }
 
 static void
-server_list_save (NautilusConnectServerDialog *dialog,
-                 GBookmarkFile               *bookmarks)
+server_list_save (GBookmarkFile *bookmarks)
 {
        char *filename;
 
@@ -365,7 +364,7 @@ populate_server_list (NautilusConnectServerDialog *dialog)
        char **uris;
        int i;
 
-       bookmarks = server_list_load (dialog);
+       bookmarks = server_list_load ();
        if (bookmarks == NULL) {
                return;
        }
@@ -397,13 +396,13 @@ server_list_remove (NautilusConnectServerDialog *dialog,
 {
        GBookmarkFile *bookmarks;
 
-       bookmarks = server_list_load (dialog);
+       bookmarks = server_list_load ();
        if (bookmarks == NULL) {
                return;
        }
 
        g_bookmark_file_remove_item (bookmarks, uri, NULL);
-       server_list_save (dialog, bookmarks);
+       server_list_save (bookmarks);
        g_bookmark_file_free (bookmarks);
 }
 
@@ -416,7 +415,7 @@ server_list_remove_all (NautilusConnectServerDialog *dialog)
        if (bookmarks == NULL) {
                return;
        }
-       server_list_save (dialog, bookmarks);
+       server_list_save (bookmarks);
        g_bookmark_file_free (bookmarks);
 }
 
@@ -711,3 +710,27 @@ nautilus_connect_server_dialog_new (NautilusWindow *window)
 
        return dialog;
 }
+
+void
+nautilus_connect_server_dialog_add_server (NautilusFile *file)
+{
+       GBookmarkFile *bookmarks;
+       char *uri;
+       char *title;
+
+       bookmarks = server_list_load ();
+       if (bookmarks == NULL) {
+               return;
+       }
+
+       uri = nautilus_file_get_uri (file);
+       title = nautilus_file_get_display_name (file);
+       g_bookmark_file_set_title (bookmarks, uri, title);
+       g_bookmark_file_set_visited (bookmarks, uri, -1);
+       g_bookmark_file_add_application (bookmarks, uri, NULL, NULL);
+       g_free (uri);
+       g_free (title);
+
+       server_list_save (bookmarks);
+       g_bookmark_file_free (bookmarks);
+}
diff --git a/src/nautilus-connect-server-dialog.h b/src/nautilus-connect-server-dialog.h
index 352be4d..cf7b66c 100644
--- a/src/nautilus-connect-server-dialog.h
+++ b/src/nautilus-connect-server-dialog.h
@@ -59,5 +59,6 @@ GtkWidget * nautilus_connect_server_dialog_new             (NautilusWindow *wind
 GFile *     nautilus_connect_server_dialog_get_location    (NautilusConnectServerDialog *dialog);
 void        nautilus_connect_server_dialog_set_show_browse (NautilusConnectServerDialog *dialog,
                                                            gboolean                     show);
+void        nautilus_connect_server_dialog_add_server      (NautilusFile                *file);
 
 #endif /* NAUTILUS_CONNECT_SERVER_DIALOG_H */


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