|
Packit Service |
d328f3 |
// SPDX-License-Identifier: GPL-2.0+
|
|
Packit Service |
d328f3 |
/* NetworkManager Connection editor -- Connection editor for NetworkManager
|
|
Packit Service |
d328f3 |
*
|
|
Packit Service |
d328f3 |
* Lubomir Rintel <lkundrak@v3.sk>
|
|
Packit Service |
d328f3 |
*
|
|
Packit Service |
d328f3 |
* Copyright 2014 - 2017 Red Hat, Inc.
|
|
Packit Service |
d328f3 |
*/
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
#include "nm-default.h"
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
#include <string.h>
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
#include <NetworkManager.h>
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
#include "page-bluetooth.h"
|
|
Packit Service |
d328f3 |
#include "nm-connection-editor.h"
|
|
Packit Service |
d328f3 |
#include "nma-mobile-wizard.h"
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
G_DEFINE_TYPE (CEPageBluetooth, ce_page_bluetooth, CE_TYPE_PAGE)
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
#define CE_PAGE_BLUETOOTH_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), CE_TYPE_PAGE_BLUETOOTH, CEPageBluetoothPrivate))
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
typedef struct {
|
|
Packit Service |
d328f3 |
NMSettingBluetooth *setting;
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
GtkComboBoxText *bdaddr;
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
gboolean disposed;
|
|
Packit Service |
d328f3 |
} CEPageBluetoothPrivate;
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
static void
|
|
Packit Service |
d328f3 |
bluetooth_private_init (CEPageBluetooth *self)
|
|
Packit Service |
d328f3 |
{
|
|
Packit Service |
d328f3 |
CEPageBluetoothPrivate *priv = CE_PAGE_BLUETOOTH_GET_PRIVATE (self);
|
|
Packit Service |
d328f3 |
GtkBuilder *builder;
|
|
Packit Service |
d328f3 |
GtkWidget *vbox;
|
|
Packit Service |
d328f3 |
GtkLabel *label;
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
builder = CE_PAGE (self)->builder;
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
priv->bdaddr = GTK_COMBO_BOX_TEXT (gtk_combo_box_text_new_with_entry ());
|
|
Packit Service |
d328f3 |
gtk_combo_box_set_entry_text_column (GTK_COMBO_BOX (priv->bdaddr), 0);
|
|
Packit Service |
d328f3 |
gtk_widget_set_tooltip_text (GTK_WIDGET (priv->bdaddr),
|
|
Packit Service |
d328f3 |
_("MAC address of the Bluetooth device. Example: 00:11:22:33:44:55"));
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
vbox = GTK_WIDGET (gtk_builder_get_object (builder, "bluetooth_device_vbox"));
|
|
Packit Service |
d328f3 |
gtk_container_add (GTK_CONTAINER (vbox), GTK_WIDGET (priv->bdaddr));
|
|
Packit Service |
d328f3 |
gtk_widget_set_halign (GTK_WIDGET (priv->bdaddr), GTK_ALIGN_FILL);
|
|
Packit Service |
d328f3 |
gtk_widget_show_all (GTK_WIDGET (priv->bdaddr));
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
/* Set mnemonic widget for Device label */
|
|
Packit Service |
d328f3 |
label = GTK_LABEL (gtk_builder_get_object (builder, "bluetooth_device_label"));
|
|
Packit Service |
d328f3 |
gtk_label_set_mnemonic_widget (label, GTK_WIDGET (priv->bdaddr));
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
}
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
static void
|
|
Packit Service |
d328f3 |
populate_ui (CEPageBluetooth *self, NMConnection *connection)
|
|
Packit Service |
d328f3 |
{
|
|
Packit Service |
d328f3 |
CEPageBluetoothPrivate *priv = CE_PAGE_BLUETOOTH_GET_PRIVATE (self);
|
|
Packit Service |
d328f3 |
NMSettingBluetooth *setting = priv->setting;
|
|
Packit Service |
d328f3 |
const char *bdaddr;
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
bdaddr = nm_setting_bluetooth_get_bdaddr (setting);
|
|
Packit Service |
d328f3 |
ce_page_setup_device_combo (CE_PAGE (self), GTK_COMBO_BOX (priv->bdaddr),
|
|
Packit Service |
d328f3 |
NM_TYPE_DEVICE_BT, NULL,
|
|
Packit Service |
d328f3 |
bdaddr, NM_DEVICE_BT_HW_ADDRESS);
|
|
Packit Service |
d328f3 |
g_signal_connect_swapped (priv->bdaddr, "changed", G_CALLBACK (ce_page_changed), self);
|
|
Packit Service |
d328f3 |
}
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
static void
|
|
Packit Service |
d328f3 |
stuff_changed (GtkEditable *editable, gpointer user_data)
|
|
Packit Service |
d328f3 |
{
|
|
Packit Service |
d328f3 |
ce_page_changed (CE_PAGE (user_data));
|
|
Packit Service |
d328f3 |
}
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
static void
|
|
Packit Service |
d328f3 |
finish_setup (CEPageBluetooth *self, gpointer user_data)
|
|
Packit Service |
d328f3 |
{
|
|
Packit Service |
d328f3 |
CEPage *parent = CE_PAGE (self);
|
|
Packit Service |
d328f3 |
CEPageBluetoothPrivate *priv = CE_PAGE_BLUETOOTH_GET_PRIVATE (self);
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
populate_ui (self, parent->connection);
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
g_signal_connect (priv->bdaddr, "changed", G_CALLBACK (stuff_changed), self);
|
|
Packit Service |
d328f3 |
}
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
CEPage *
|
|
Packit Service |
d328f3 |
ce_page_bluetooth_new (NMConnectionEditor *editor,
|
|
Packit Service |
d328f3 |
NMConnection *connection,
|
|
Packit Service |
d328f3 |
GtkWindow *parent_window,
|
|
Packit Service |
d328f3 |
NMClient *client,
|
|
Packit Service |
d328f3 |
const char **out_secrets_setting_name,
|
|
Packit Service |
d328f3 |
GError **error)
|
|
Packit Service |
d328f3 |
{
|
|
Packit Service |
d328f3 |
CEPageBluetooth *self;
|
|
Packit Service |
d328f3 |
CEPageBluetoothPrivate *priv;
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
self = CE_PAGE_BLUETOOTH (ce_page_new (CE_TYPE_PAGE_BLUETOOTH,
|
|
Packit Service |
d328f3 |
editor,
|
|
Packit Service |
d328f3 |
connection,
|
|
Packit Service |
d328f3 |
parent_window,
|
|
Packit Service |
d328f3 |
client,
|
|
Packit Service |
d328f3 |
"/org/gnome/nm_connection_editor/ce-page-bluetooth.ui",
|
|
Packit Service |
d328f3 |
"BluetoothPage",
|
|
Packit Service |
d328f3 |
_("Bluetooth")));
|
|
Packit Service |
d328f3 |
if (!self) {
|
|
Packit Service |
d328f3 |
g_set_error_literal (error, NMA_ERROR, NMA_ERROR_GENERIC, _("Could not load Bluetooth user interface."));
|
|
Packit Service |
d328f3 |
return NULL;
|
|
Packit Service |
d328f3 |
}
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
bluetooth_private_init (self);
|
|
Packit Service |
d328f3 |
priv = CE_PAGE_BLUETOOTH_GET_PRIVATE (self);
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
priv->setting = nm_connection_get_setting_bluetooth (connection);
|
|
Packit Service |
d328f3 |
if (!priv->setting) {
|
|
Packit Service |
d328f3 |
priv->setting = NM_SETTING_BLUETOOTH (nm_setting_bluetooth_new ());
|
|
Packit Service |
d328f3 |
nm_connection_add_setting (connection, NM_SETTING (priv->setting));
|
|
Packit Service |
d328f3 |
}
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
g_signal_connect (self, CE_PAGE_INITIALIZED, G_CALLBACK (finish_setup), NULL);
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
return CE_PAGE (self);
|
|
Packit Service |
d328f3 |
}
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
static void
|
|
Packit Service |
d328f3 |
ui_to_setting (CEPageBluetooth *self)
|
|
Packit Service |
d328f3 |
{
|
|
Packit Service |
d328f3 |
CEPageBluetoothPrivate *priv = CE_PAGE_BLUETOOTH_GET_PRIVATE (self);
|
|
Packit Service |
d328f3 |
GtkWidget *entry;
|
|
Packit Service |
d328f3 |
char *bdaddr = NULL;
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
entry = gtk_bin_get_child (GTK_BIN (priv->bdaddr));
|
|
Packit Service |
d328f3 |
if (entry)
|
|
Packit Service |
d328f3 |
ce_page_device_entry_get (GTK_ENTRY (entry), ARPHRD_ETHER, FALSE, NULL, &bdaddr, NULL, NULL);
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
g_object_set (priv->setting,
|
|
Packit Service |
d328f3 |
NM_SETTING_BLUETOOTH_BDADDR, bdaddr && *bdaddr ? bdaddr : NULL,
|
|
Packit Service |
d328f3 |
NULL);
|
|
Packit Service |
d328f3 |
g_free (bdaddr);
|
|
Packit Service |
d328f3 |
}
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
static gboolean
|
|
Packit Service |
d328f3 |
ce_page_validate_v (CEPage *page, NMConnection *connection, GError **error)
|
|
Packit Service |
d328f3 |
{
|
|
Packit Service |
d328f3 |
CEPageBluetooth *self = CE_PAGE_BLUETOOTH (page);
|
|
Packit Service |
d328f3 |
CEPageBluetoothPrivate *priv = CE_PAGE_BLUETOOTH_GET_PRIVATE (self);
|
|
Packit Service |
d328f3 |
GtkWidget *entry;
|
|
Packit Service |
d328f3 |
char *bdaddr = NULL;
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
entry = gtk_bin_get_child (GTK_BIN (priv->bdaddr));
|
|
Packit Service |
d328f3 |
if (entry) {
|
|
Packit Service |
d328f3 |
ce_page_device_entry_get (GTK_ENTRY (entry), ARPHRD_ETHER, FALSE, NULL, &bdaddr, NULL, NULL);
|
|
Packit Service |
d328f3 |
if (!bdaddr || !nm_utils_hwaddr_valid (bdaddr, nm_utils_hwaddr_len (ARPHRD_ETHER))) {
|
|
Packit Service |
d328f3 |
g_set_error (error, NMA_ERROR, NMA_ERROR_GENERIC,
|
|
Packit Service |
d328f3 |
_("invalid Bluetooth device (%s)"),
|
|
Packit Service |
d328f3 |
bdaddr ? bdaddr : "null");
|
|
Packit Service |
d328f3 |
g_free (bdaddr);
|
|
Packit Service |
d328f3 |
return FALSE;
|
|
Packit Service |
d328f3 |
}
|
|
Packit Service |
d328f3 |
g_free (bdaddr);
|
|
Packit Service |
d328f3 |
}
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
ui_to_setting (self);
|
|
Packit Service |
d328f3 |
return nm_setting_verify (NM_SETTING (priv->setting), NULL, error);
|
|
Packit Service |
d328f3 |
}
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
static void
|
|
Packit Service |
d328f3 |
ce_page_bluetooth_init (CEPageBluetooth *self)
|
|
Packit Service |
d328f3 |
{
|
|
Packit Service |
d328f3 |
}
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
static void
|
|
Packit Service |
d328f3 |
ce_page_bluetooth_class_init (CEPageBluetoothClass *bluetooth_class)
|
|
Packit Service |
d328f3 |
{
|
|
Packit Service |
d328f3 |
GObjectClass *object_class = G_OBJECT_CLASS (bluetooth_class);
|
|
Packit Service |
d328f3 |
CEPageClass *parent_class = CE_PAGE_CLASS (bluetooth_class);
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
g_type_class_add_private (object_class, sizeof (CEPageBluetoothPrivate));
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
/* virtual methods */
|
|
Packit Service |
d328f3 |
parent_class->ce_page_validate_v = ce_page_validate_v;
|
|
Packit Service |
d328f3 |
}
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
typedef struct {
|
|
Packit Service |
d328f3 |
NMClient *client;
|
|
Packit Service |
d328f3 |
PageNewConnectionResultFunc result_func;
|
|
Packit Service |
d328f3 |
gpointer user_data;
|
|
Packit Service |
d328f3 |
const gchar *type;
|
|
Packit Service |
d328f3 |
NMConnection *connection;
|
|
Packit Service |
d328f3 |
} WizardInfo;
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
static void
|
|
Packit Service |
d328f3 |
new_connection_mobile_wizard_done (NMAMobileWizard *wizard,
|
|
Packit Service |
d328f3 |
gboolean canceled,
|
|
Packit Service |
d328f3 |
NMAMobileWizardAccessMethod *method,
|
|
Packit Service |
d328f3 |
gpointer user_data)
|
|
Packit Service |
d328f3 |
{
|
|
Packit Service |
d328f3 |
WizardInfo *info = user_data;
|
|
Packit Service |
d328f3 |
char *detail = NULL;
|
|
Packit Service |
d328f3 |
NMSetting *type_setting = NULL;
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
if (canceled)
|
|
Packit Service |
d328f3 |
goto out;
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
if (method) {
|
|
Packit Service |
d328f3 |
switch (method->devtype) {
|
|
Packit Service |
d328f3 |
case NM_DEVICE_MODEM_CAPABILITY_GSM_UMTS:
|
|
Packit Service |
d328f3 |
type_setting = nm_setting_gsm_new ();
|
|
Packit Service |
d328f3 |
/* De-facto standard for GSM */
|
|
Packit Service |
d328f3 |
g_object_set (type_setting,
|
|
Packit Service |
d328f3 |
NM_SETTING_GSM_NUMBER, "*99#",
|
|
Packit Service |
d328f3 |
NM_SETTING_GSM_USERNAME, method->username,
|
|
Packit Service |
d328f3 |
NM_SETTING_GSM_PASSWORD, method->password,
|
|
Packit Service |
d328f3 |
NM_SETTING_GSM_APN, method->gsm_apn,
|
|
Packit Service |
d328f3 |
NULL);
|
|
Packit Service |
d328f3 |
break;
|
|
Packit Service |
d328f3 |
case NM_DEVICE_MODEM_CAPABILITY_CDMA_EVDO:
|
|
Packit Service |
d328f3 |
type_setting = nm_setting_cdma_new ();
|
|
Packit Service |
d328f3 |
/* De-facto standard for CDMA */
|
|
Packit Service |
d328f3 |
g_object_set (type_setting,
|
|
Packit Service |
d328f3 |
NM_SETTING_CDMA_NUMBER, "#777",
|
|
Packit Service |
d328f3 |
NM_SETTING_GSM_USERNAME, method->username,
|
|
Packit Service |
d328f3 |
NM_SETTING_GSM_PASSWORD, method->password,
|
|
Packit Service |
d328f3 |
NULL);
|
|
Packit Service |
d328f3 |
break;
|
|
Packit Service |
d328f3 |
default:
|
|
Packit Service |
d328f3 |
g_assert_not_reached ();
|
|
Packit Service |
d328f3 |
break;
|
|
Packit Service |
d328f3 |
}
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
if (method->plan_name)
|
|
Packit Service |
d328f3 |
detail = g_strdup_printf ("%s %s %%d", method->provider_name, method->plan_name);
|
|
Packit Service |
d328f3 |
else
|
|
Packit Service |
d328f3 |
detail = g_strdup_printf ("%s connection %%d", method->provider_name);
|
|
Packit Service |
d328f3 |
}
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
if (!detail)
|
|
Packit Service |
d328f3 |
detail = g_strdup (_("Bluetooth connection %d"));
|
|
Packit Service |
d328f3 |
_ensure_connection_own (&info->connection);
|
|
Packit Service |
d328f3 |
ce_page_complete_connection (info->connection,
|
|
Packit Service |
d328f3 |
detail,
|
|
Packit Service |
d328f3 |
NM_SETTING_BLUETOOTH_SETTING_NAME,
|
|
Packit Service |
d328f3 |
FALSE,
|
|
Packit Service |
d328f3 |
info->client);
|
|
Packit Service |
d328f3 |
g_free (detail);
|
|
Packit Service |
d328f3 |
nm_connection_add_setting (info->connection, nm_setting_bluetooth_new ());
|
|
Packit Service |
d328f3 |
g_object_set (nm_connection_get_setting_bluetooth (info->connection),
|
|
Packit Service |
d328f3 |
NM_SETTING_BLUETOOTH_TYPE, info->type, NULL);
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
if (type_setting) {
|
|
Packit Service |
d328f3 |
nm_connection_add_setting (info->connection, type_setting);
|
|
Packit Service |
d328f3 |
nm_connection_add_setting (info->connection, nm_setting_ppp_new ());
|
|
Packit Service |
d328f3 |
}
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
out:
|
|
Packit Service |
d328f3 |
(*info->result_func) (FUNC_TAG_PAGE_NEW_CONNECTION_RESULT_CALL, info->connection, canceled, NULL, info->user_data);
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
if (wizard)
|
|
Packit Service |
d328f3 |
nma_mobile_wizard_destroy (wizard);
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
g_object_unref (info->client);
|
|
Packit Service |
d328f3 |
g_clear_object (&info->connection);
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
g_free (info);
|
|
Packit Service |
d328f3 |
}
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
void
|
|
Packit Service |
d328f3 |
bluetooth_connection_new (FUNC_TAG_PAGE_NEW_CONNECTION_IMPL,
|
|
Packit Service |
d328f3 |
GtkWindow *parent,
|
|
Packit Service |
d328f3 |
const char *detail,
|
|
Packit Service |
d328f3 |
gpointer detail_data,
|
|
Packit Service |
d328f3 |
NMConnection *connection,
|
|
Packit Service |
d328f3 |
NMClient *client,
|
|
Packit Service |
d328f3 |
PageNewConnectionResultFunc result_func,
|
|
Packit Service |
d328f3 |
gpointer user_data)
|
|
Packit Service |
d328f3 |
{
|
|
Packit Service |
d328f3 |
gint response;
|
|
Packit Service |
d328f3 |
NMAMobileWizard *wizard = NULL;
|
|
Packit Service |
d328f3 |
WizardInfo *info;
|
|
Packit Service |
d328f3 |
GtkWidget *dialog, *content, *alignment, *vbox, *label, *dun_radio, *panu_radio;
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
info = g_malloc0 (sizeof (WizardInfo));
|
|
Packit Service |
d328f3 |
info->result_func = result_func;
|
|
Packit Service |
d328f3 |
info->client = g_object_ref (client);
|
|
Packit Service |
d328f3 |
info->user_data = user_data;
|
|
Packit Service |
d328f3 |
info->type = NM_SETTING_BLUETOOTH_TYPE_PANU;
|
|
Packit Service |
d328f3 |
info->connection = nm_g_object_ref (connection);
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
dialog = gtk_dialog_new_with_buttons (_("Bluetooth Type"),
|
|
Packit Service |
d328f3 |
parent,
|
|
Packit Service |
d328f3 |
GTK_DIALOG_MODAL,
|
|
Packit Service |
d328f3 |
_("_Cancel"),
|
|
Packit Service |
d328f3 |
GTK_RESPONSE_CANCEL,
|
|
Packit Service |
d328f3 |
_("_OK"),
|
|
Packit Service |
d328f3 |
GTK_RESPONSE_OK,
|
|
Packit Service |
d328f3 |
NULL);
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
content = gtk_dialog_get_content_area (GTK_DIALOG (dialog));
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
alignment = gtk_alignment_new (0, 0, 0.5, 0.5);
|
|
Packit Service |
d328f3 |
gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 12, 12, 12, 12);
|
|
Packit Service |
d328f3 |
gtk_box_pack_start (GTK_BOX (content), alignment, TRUE, FALSE, 6);
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
|
|
Packit Service |
d328f3 |
gtk_container_add (GTK_CONTAINER (alignment), vbox);
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
label = gtk_label_new (_("Select the type of the Bluetooth connection profile."));
|
|
Packit Service |
d328f3 |
gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
|
|
Packit Service |
d328f3 |
gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);
|
|
Packit Service |
d328f3 |
gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 12);
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
panu_radio = gtk_radio_button_new_with_mnemonic (NULL, _("_Personal Area Network"));
|
|
Packit Service |
d328f3 |
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (panu_radio), TRUE);
|
|
Packit Service |
d328f3 |
gtk_box_pack_start (GTK_BOX (vbox), panu_radio, FALSE, FALSE, 6);
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
dun_radio = gtk_radio_button_new_with_mnemonic_from_widget (GTK_RADIO_BUTTON (panu_radio),
|
|
Packit Service |
d328f3 |
_("_Dial-Up Network"));
|
|
Packit Service |
d328f3 |
gtk_box_pack_start (GTK_BOX (vbox), dun_radio, FALSE, FALSE, 6);
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
gtk_widget_show_all (dialog);
|
|
Packit Service |
d328f3 |
response = gtk_dialog_run (GTK_DIALOG (dialog));
|
|
Packit Service |
d328f3 |
if (response == GTK_RESPONSE_OK) {
|
|
Packit Service |
d328f3 |
if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (dun_radio))) {
|
|
Packit Service |
d328f3 |
info->type = NM_SETTING_BLUETOOTH_TYPE_DUN;
|
|
Packit Service |
d328f3 |
wizard = nma_mobile_wizard_new (parent, NULL, NM_DEVICE_MODEM_CAPABILITY_NONE, FALSE,
|
|
Packit Service |
d328f3 |
new_connection_mobile_wizard_done, info);
|
|
Packit Service |
d328f3 |
} else {
|
|
Packit Service |
d328f3 |
info->type = NM_SETTING_BLUETOOTH_TYPE_PANU;
|
|
Packit Service |
d328f3 |
}
|
|
Packit Service |
d328f3 |
}
|
|
Packit Service |
d328f3 |
gtk_widget_destroy (dialog);
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
if (wizard)
|
|
Packit Service |
d328f3 |
nma_mobile_wizard_present (wizard);
|
|
Packit Service |
d328f3 |
else
|
|
Packit Service |
d328f3 |
new_connection_mobile_wizard_done (NULL, (response != GTK_RESPONSE_OK), NULL, info);
|
|
Packit Service |
d328f3 |
}
|