[network-manager-applet/lr/import: 2/5] export
- From: Lubomir Rintel <lkundrak src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [network-manager-applet/lr/import: 2/5] export
- Date: Fri, 21 Oct 2016 15:32:32 +0000 (UTC)
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]