[network-manager-applet/lr/import: 2/5] export



commit a7c8e067111c32fe7df38b6adfe791392fd9c237
Author: Lubomir Rintel <lkundrak v3 sk>
Date:   Thu Oct 20 18:27:52 2016 +0200

    export

 src/connection-editor/nm-connection-editor.c |  134 ++++++++++++++++++++++++++
 src/connection-editor/vpn-helpers.c          |  134 --------------------------
 src/connection-editor/vpn-helpers.h          |    2 -
 3 files changed, 134 insertions(+), 136 deletions(-)
---
diff --git a/src/connection-editor/nm-connection-editor.c b/src/connection-editor/nm-connection-editor.c
index 45a95b0..e7f0f1e 100644
--- a/src/connection-editor/nm-connection-editor.c
+++ b/src/connection-editor/nm-connection-editor.c
@@ -1003,6 +1003,140 @@ ok_button_clicked_cb (GtkWidget *widget, gpointer user_data)
 }
 
 static void
+export_vpn_to_file_cb (GtkWidget *dialog, gint response, gpointer user_data)
+{
+       NMConnection *connection = NM_CONNECTION (user_data);
+       char *filename = NULL;
+       GError *error = NULL;
+       NMVpnEditorPlugin *plugin;
+       NMSettingConnection *s_con = NULL;
+       NMSettingVpn *s_vpn = NULL;
+       const char *service_type;
+       const char *id = NULL;
+       gboolean success = FALSE;
+
+       if (response != GTK_RESPONSE_ACCEPT)
+               goto out;
+
+       filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog));
+       if (!filename) {
+               g_set_error (&error, NMA_ERROR, NMA_ERROR_GENERIC, "no filename");
+               goto done;
+       }
+
+       if (g_file_test (filename, G_FILE_TEST_EXISTS)) {
+               int replace_response;
+               GtkWidget *replace_dialog;
+               char *bname;
+
+               bname = g_path_get_basename (filename);
+               replace_dialog = gtk_message_dialog_new (NULL,
+                                                        GTK_DIALOG_DESTROY_WITH_PARENT,
+                                                        GTK_MESSAGE_QUESTION,
+                                                        GTK_BUTTONS_CANCEL,
+                                                        _("A file named “%s” already exists."),
+                                                        bname);
+               gtk_dialog_add_buttons (GTK_DIALOG (replace_dialog), _("_Replace"), GTK_RESPONSE_OK, NULL);
+               gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (replace_dialog),
+                                                         _("Do you want to replace %s with the VPN 
connection you are saving?"), bname);
+               g_free (bname);
+               replace_response = gtk_dialog_run (GTK_DIALOG (replace_dialog));
+               gtk_widget_destroy (replace_dialog);
+               if (replace_response != GTK_RESPONSE_OK)
+                       goto out;
+       }
+
+       s_con = nm_connection_get_setting_connection (connection);
+       id = s_con ? nm_setting_connection_get_id (s_con) : NULL;
+       if (!id) {
+               g_set_error (&error, NMA_ERROR, NMA_ERROR_GENERIC, "connection setting invalid");
+               goto done;
+       }
+
+       s_vpn = nm_connection_get_setting_vpn (connection);
+       service_type = s_vpn ? nm_setting_vpn_get_service_type (s_vpn) : NULL;
+
+       if (!service_type) {
+               g_set_error (&error, NMA_ERROR, NMA_ERROR_GENERIC, "VPN setting invalid");
+               goto done;
+       }
+
+       plugin = vpn_get_plugin_by_service (service_type);
+       if (plugin)
+               success = nm_vpn_editor_plugin_export (plugin, filename, connection, &error);
+
+done:
+       if (!success) {
+               GtkWidget *err_dialog;
+               char *bname = filename ? g_path_get_basename (filename) : g_strdup ("(none)");
+
+               err_dialog = gtk_message_dialog_new (NULL,
+                                                    GTK_DIALOG_DESTROY_WITH_PARENT,
+                                                    GTK_MESSAGE_ERROR,
+                                                    GTK_BUTTONS_OK,
+                                                    _("Cannot export VPN connection"));
+               gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (err_dialog),
+                                                _("The VPN connection “%s” could not be exported to 
%s.\n\nError: %s."),
+                                                id ? id : "(unknown)", bname, error ? error->message : 
"unknown error");
+               g_free (bname);
+               g_signal_connect (err_dialog, "delete-event", G_CALLBACK (gtk_widget_destroy), NULL);
+               g_signal_connect (err_dialog, "response", G_CALLBACK (gtk_widget_destroy), NULL);
+               gtk_widget_show_all (err_dialog);
+               gtk_window_present (GTK_WINDOW (err_dialog));
+       }
+
+out:
+       if (error)
+               g_error_free (error);
+       g_object_unref (connection);
+
+       gtk_widget_hide (dialog);
+       gtk_widget_destroy (dialog);
+}
+
+static void
+vpn_export (NMConnection *connection)
+{
+       GtkWidget *dialog;
+       NMVpnEditorPlugin *plugin;
+       NMSettingVpn *s_vpn = NULL;
+       const char *service_type;
+       const char *home_folder;
+
+       s_vpn = nm_connection_get_setting_vpn (connection);
+       service_type = s_vpn ? nm_setting_vpn_get_service_type (s_vpn) : NULL;
+
+       if (!service_type) {
+               g_warning ("%s: invalid VPN connection!", __func__);
+               return;
+       }
+
+       dialog = gtk_file_chooser_dialog_new (_("Export VPN connection…"),
+                                             NULL,
+                                             GTK_FILE_CHOOSER_ACTION_SAVE,
+                                             GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
+                                             GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT,
+                                             NULL);
+       home_folder = g_get_home_dir ();
+       gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (dialog), home_folder);
+
+       plugin = vpn_get_plugin_by_service (service_type);
+       if (plugin) {
+               char *suggested = NULL;
+
+               suggested = nm_vpn_editor_plugin_get_suggested_filename (plugin, connection);
+               if (suggested) {
+                       gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (dialog), suggested);
+                       g_free (suggested);
+               }
+       }
+
+       g_signal_connect (G_OBJECT (dialog), "response", G_CALLBACK (export_vpn_to_file_cb), g_object_ref 
(connection));
+       gtk_widget_show_all (dialog);
+       gtk_window_present (GTK_WINDOW (dialog));
+}
+
+static void
 vpn_export_get_secrets_cb (GObject *object,
                            GAsyncResult *result,
                            gpointer user_data)
diff --git a/src/connection-editor/vpn-helpers.c b/src/connection-editor/vpn-helpers.c
index a444d0d..0d81247 100644
--- a/src/connection-editor/vpn-helpers.c
+++ b/src/connection-editor/vpn-helpers.c
@@ -183,140 +183,6 @@ vpn_import (VpnImportSuccessCallback callback, gpointer user_data)
        gtk_window_present (GTK_WINDOW (dialog));
 }
 
-static void
-export_vpn_to_file_cb (GtkWidget *dialog, gint response, gpointer user_data)
-{
-       NMConnection *connection = NM_CONNECTION (user_data);
-       char *filename = NULL;
-       GError *error = NULL;
-       NMVpnEditorPlugin *plugin;
-       NMSettingConnection *s_con = NULL;
-       NMSettingVpn *s_vpn = NULL;
-       const char *service_type;
-       const char *id = NULL;
-       gboolean success = FALSE;
-
-       if (response != GTK_RESPONSE_ACCEPT)
-               goto out;
-
-       filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog));
-       if (!filename) {
-               g_set_error (&error, NMA_ERROR, NMA_ERROR_GENERIC, "no filename");
-               goto done;
-       }
-
-       if (g_file_test (filename, G_FILE_TEST_EXISTS)) {
-               int replace_response;
-               GtkWidget *replace_dialog;
-               char *bname;
-
-               bname = g_path_get_basename (filename);
-               replace_dialog = gtk_message_dialog_new (NULL,
-                                                        GTK_DIALOG_DESTROY_WITH_PARENT,
-                                                        GTK_MESSAGE_QUESTION,
-                                                        GTK_BUTTONS_CANCEL,
-                                                        _("A file named “%s” already exists."),
-                                                        bname);
-               gtk_dialog_add_buttons (GTK_DIALOG (replace_dialog), _("_Replace"), GTK_RESPONSE_OK, NULL);
-               gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (replace_dialog),
-                                                         _("Do you want to replace %s with the VPN 
connection you are saving?"), bname);
-               g_free (bname);
-               replace_response = gtk_dialog_run (GTK_DIALOG (replace_dialog));
-               gtk_widget_destroy (replace_dialog);
-               if (replace_response != GTK_RESPONSE_OK)
-                       goto out;
-       }
-
-       s_con = nm_connection_get_setting_connection (connection);
-       id = s_con ? nm_setting_connection_get_id (s_con) : NULL;
-       if (!id) {
-               g_set_error (&error, NMA_ERROR, NMA_ERROR_GENERIC, "connection setting invalid");
-               goto done;
-       }
-
-       s_vpn = nm_connection_get_setting_vpn (connection);
-       service_type = s_vpn ? nm_setting_vpn_get_service_type (s_vpn) : NULL;
-
-       if (!service_type) {
-               g_set_error (&error, NMA_ERROR, NMA_ERROR_GENERIC, "VPN setting invalid");
-               goto done;
-       }
-
-       plugin = vpn_get_plugin_by_service (service_type);
-       if (plugin)
-               success = nm_vpn_editor_plugin_export (plugin, filename, connection, &error);
-
-done:
-       if (!success) {
-               GtkWidget *err_dialog;
-               char *bname = filename ? g_path_get_basename (filename) : g_strdup ("(none)");
-
-               err_dialog = gtk_message_dialog_new (NULL,
-                                                    GTK_DIALOG_DESTROY_WITH_PARENT,
-                                                    GTK_MESSAGE_ERROR,
-                                                    GTK_BUTTONS_OK,
-                                                    _("Cannot export VPN connection"));
-               gtk_message_dialog_format_secondary_text (GTK_MESSAGE_DIALOG (err_dialog),
-                                                _("The VPN connection “%s” could not be exported to 
%s.\n\nError: %s."),
-                                                id ? id : "(unknown)", bname, error ? error->message : 
"unknown error");
-               g_free (bname);
-               g_signal_connect (err_dialog, "delete-event", G_CALLBACK (gtk_widget_destroy), NULL);
-               g_signal_connect (err_dialog, "response", G_CALLBACK (gtk_widget_destroy), NULL);
-               gtk_widget_show_all (err_dialog);
-               gtk_window_present (GTK_WINDOW (err_dialog));
-       }
-
-out:
-       if (error)
-               g_error_free (error);
-       g_object_unref (connection);
-
-       gtk_widget_hide (dialog);
-       gtk_widget_destroy (dialog);
-}
-
-void
-vpn_export (NMConnection *connection)
-{
-       GtkWidget *dialog;
-       NMVpnEditorPlugin *plugin;
-       NMSettingVpn *s_vpn = NULL;
-       const char *service_type;
-       const char *home_folder;
-
-       s_vpn = nm_connection_get_setting_vpn (connection);
-       service_type = s_vpn ? nm_setting_vpn_get_service_type (s_vpn) : NULL;
-
-       if (!service_type) {
-               g_warning ("%s: invalid VPN connection!", __func__);
-               return;
-       }
-
-       dialog = gtk_file_chooser_dialog_new (_("Export VPN connection…"),
-                                             NULL,
-                                             GTK_FILE_CHOOSER_ACTION_SAVE,
-                                             GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
-                                             GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT,
-                                             NULL);
-       home_folder = g_get_home_dir ();
-       gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (dialog), home_folder);
-
-       plugin = vpn_get_plugin_by_service (service_type);
-       if (plugin) {
-               char *suggested = NULL;
-
-               suggested = nm_vpn_editor_plugin_get_suggested_filename (plugin, connection);
-               if (suggested) {
-                       gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER (dialog), suggested);
-                       g_free (suggested);
-               }
-       }
-
-       g_signal_connect (G_OBJECT (dialog), "response", G_CALLBACK (export_vpn_to_file_cb), g_object_ref 
(connection));
-       gtk_widget_show_all (dialog);
-       gtk_window_present (GTK_WINDOW (dialog));
-}
-
 gboolean
 vpn_supports_ipv6 (NMConnection *connection)
 {
diff --git a/src/connection-editor/vpn-helpers.h b/src/connection-editor/vpn-helpers.h
index 2c70d32..2b180ce 100644
--- a/src/connection-editor/vpn-helpers.h
+++ b/src/connection-editor/vpn-helpers.h
@@ -35,8 +35,6 @@ NMVpnEditorPlugin *vpn_get_plugin_by_service (const char *service);
 typedef void (*VpnImportSuccessCallback) (NMConnection *connection, gpointer user_data);
 void vpn_import (VpnImportSuccessCallback callback, gpointer user_data);
 
-void vpn_export (NMConnection *connection);
-
 gboolean vpn_supports_ipv6 (NMConnection *connection);
 
 #endif  /* _VPN_HELPERS_H_ */


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