summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCosimo Cecchi <cosimoc@gnome.org>2014-12-06 15:30:22 -0800
committerCosimo Cecchi <cosimoc@gnome.org>2014-12-06 15:30:22 -0800
commit3531861384297545f1994847705009fda5d32c6b (patch)
tree2e11d703c7d0c70bd131c8d1f42ecaa6e4f967be
parent492613abba3299d0215e02aa2083374e26e561dd (diff)
downloadnautilus-3531861384297545f1994847705009fda5d32c6b.tar.gz
application: move server saving out of NautilusApplication
This code belongs in NautilusConnectServerDialog, where utilities to load/save the bookmarks list already exist.
-rw-r--r--src/nautilus-application.c43
-rw-r--r--src/nautilus-connect-server-dialog.c37
-rw-r--r--src/nautilus-connect-server-dialog.h1
3 files changed, 33 insertions, 48 deletions
diff --git a/src/nautilus-application.c b/src/nautilus-application.c
index 391d04182..89d0c7ec1 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 6d53fc1cb..b285541e0 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 352be4d6b..cf7b66c9f 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 */