summaryrefslogtreecommitdiff
path: root/panels/network/cc-network-panel.c
diff options
context:
space:
mode:
authorDan Winship <danw@gnome.org>2013-01-09 17:41:48 -0500
committerDan Winship <danw@gnome.org>2013-01-23 13:47:01 -0500
commitb82986e14b0e3e49041d08ef91bda31f9e79b64c (patch)
tree7d74e1f73b14c13dd4c27b09ac34dbc2912028c6 /panels/network/cc-network-panel.c
parent6db506e0497939d755dc6d9f0dcbdf729f9666ee (diff)
downloadgnome-control-center-wip/networking2.tar.gz
network: add integrated "Add New Connection"wip/networking2
New VPN connections are created within the control center; other types currently hit the nm-connection-editor fallback.
Diffstat (limited to 'panels/network/cc-network-panel.c')
-rw-r--r--panels/network/cc-network-panel.c55
1 files changed, 18 insertions, 37 deletions
diff --git a/panels/network/cc-network-panel.c b/panels/network/cc-network-panel.c
index 6526404c4..a7ba9bedc 100644
--- a/panels/network/cc-network-panel.c
+++ b/panels/network/cc-network-panel.c
@@ -46,6 +46,7 @@
#include "panel-common.h"
#include "network-dialogs.h"
+#include "connection-editor/net-connection-editor.h"
CC_PANEL_REGISTER (CcNetworkPanel, cc_network_panel)
@@ -1151,45 +1152,25 @@ panel_check_network_manager_version (CcNetworkPanel *panel)
}
static void
+editor_done (NetConnectionEditor *editor,
+ gboolean success,
+ gpointer user_data)
+{
+ g_object_unref (editor);
+}
+
+static void
add_connection_cb (GtkToolButton *button, CcNetworkPanel *panel)
{
- GtkWidget *dialog;
- gint response;
-
- dialog = GTK_WIDGET (gtk_builder_get_object (panel->priv->builder,
- "connection_type_dialog"));
- gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (panel))));
-
- response = gtk_dialog_run (GTK_DIALOG (dialog));
-
- gtk_widget_hide (dialog);
-
- if (response == GTK_RESPONSE_OK) {
- GtkComboBox *combo;
- GtkTreeModel *model;
- GtkTreeIter iter;
- gchar *type;
- gchar *cmdline;
- GError *error;
-
- combo = GTK_COMBO_BOX (gtk_builder_get_object (panel->priv->builder,
- "connection_type_combo"));
- model = gtk_combo_box_get_model (combo);
- gtk_combo_box_get_active_iter (combo, &iter);
- type = NULL;
- gtk_tree_model_get (model, &iter, 1, &type, -1);
-
- cmdline = g_strdup_printf ("nm-connection-editor --create --type %s", type);
- g_debug ("Launching '%s'\n", cmdline);
-
- error = NULL;
- if (!g_spawn_command_line_async (cmdline, &error)) {
- g_warning ("Failed to launch nm-connection-editor: %s", error->message);
- g_error_free (error);
- }
- g_free (cmdline);
- g_free (type);
- }
+ NetConnectionEditor *editor;
+ GtkWindow *toplevel;
+
+ toplevel = GTK_WINDOW (gtk_widget_get_toplevel (GTK_WIDGET (panel)));
+ editor = net_connection_editor_new (toplevel, NULL, NULL, NULL,
+ panel->priv->client,
+ panel->priv->remote_settings);
+ g_signal_connect (editor, "done", G_CALLBACK (editor_done), panel);
+ net_connection_editor_run (editor);
}
static void