network: Convert WirelessSecurity objects into GtkTemplates

This commit is contained in:
Robert Ancell 2019-12-03 09:47:46 +13:00 committed by Georges Basile Stavracas Neto
parent d4ec8a570b
commit 7d9d4d4289
19 changed files with 84 additions and 218 deletions

View file

@ -40,7 +40,6 @@ struct _CEPage8021xSecurity {
GtkLabel *security_label;
NMConnection *connection;
GtkWidget *security_widget;
WirelessSecurityWPAEAP *security;
GtkSizeGroup *group;
gboolean initial_have_8021x;
@ -54,7 +53,7 @@ G_DEFINE_TYPE_WITH_CODE (CEPage8021xSecurity, ce_page_8021x_security, GTK_TYPE_G
static void
enable_toggled (CEPage8021xSecurity *self)
{
gtk_widget_set_sensitive (self->security_widget, gtk_switch_get_active (self->enable_8021x_switch));
gtk_widget_set_sensitive (GTK_WIDGET (self->security), gtk_switch_get_active (self->enable_8021x_switch));
ce_page_changed (CE_PAGE (self));
}
@ -81,19 +80,18 @@ finish_setup (CEPage8021xSecurity *self, gpointer unused, GError *error, gpointe
}
g_signal_connect_object (WIRELESS_SECURITY (self->security), "changed", G_CALLBACK (security_item_changed_cb), self, G_CONNECT_SWAPPED);
self->security_widget = wireless_security_get_widget (WIRELESS_SECURITY (self->security));
parent = gtk_widget_get_parent (self->security_widget);
parent = gtk_widget_get_parent (GTK_WIDGET (self->security));
if (parent)
gtk_container_remove (GTK_CONTAINER (parent), self->security_widget);
gtk_container_remove (GTK_CONTAINER (parent), GTK_WIDGET (self->security));
gtk_switch_set_active (self->enable_8021x_switch, self->initial_have_8021x);
g_signal_connect_swapped (self->enable_8021x_switch, "notify::active", G_CALLBACK (enable_toggled), self);
gtk_widget_set_sensitive (self->security_widget, self->initial_have_8021x);
gtk_widget_set_sensitive (GTK_WIDGET (self->security), self->initial_have_8021x);
gtk_size_group_add_widget (self->group, GTK_WIDGET (self->security_label));
wireless_security_add_to_size_group (WIRELESS_SECURITY (self->security), self->group);
gtk_container_add (GTK_CONTAINER (self->box), self->security_widget);
gtk_container_add (GTK_CONTAINER (self->box), GTK_WIDGET (self->security));
}

View file

@ -160,19 +160,16 @@ security_combo_changed (CEPageSecurity *self)
sec = security_combo_get_active (self);
if (sec) {
GtkWidget *sec_widget;
GtkWidget *parent;
sec_widget = wireless_security_get_widget (sec);
g_assert (sec_widget);
parent = gtk_widget_get_parent (sec_widget);
parent = gtk_widget_get_parent (GTK_WIDGET (sec));
if (parent)
gtk_container_remove (GTK_CONTAINER (parent), sec_widget);
gtk_container_remove (GTK_CONTAINER (parent), GTK_WIDGET (sec));
gtk_size_group_add_widget (self->group, GTK_WIDGET (self->security_label));
wireless_security_add_to_size_group (sec, self->group);
gtk_container_add (GTK_CONTAINER (self->box), sec_widget);
gtk_container_add (GTK_CONTAINER (self->box), g_object_ref (GTK_WIDGET (sec)));
}
ce_page_changed (CE_PAGE (self));

View file

@ -50,14 +50,6 @@ wireless_security_default_init (WirelessSecurityInterface *iface)
G_TYPE_NONE, 0);
}
GtkWidget *
wireless_security_get_widget (WirelessSecurity *self)
{
g_return_val_if_fail (WIRELESS_IS_SECURITY (self), NULL);
return WIRELESS_SECURITY_GET_IFACE (self)->get_widget (self);
}
void
wireless_security_notify_changed (WirelessSecurity *self)
{

View file

@ -36,11 +36,8 @@ struct _WirelessSecurityInterface {
void (*fill_connection) (WirelessSecurity *sec, NMConnection *connection);
gboolean (*validate) (WirelessSecurity *sec, GError **error);
gboolean (*adhoc_compatible) (WirelessSecurity *sec);
GtkWidget* (*get_widget) (WirelessSecurity *sec);
};
GtkWidget *wireless_security_get_widget (WirelessSecurity *sec);
gboolean wireless_security_validate (WirelessSecurity *sec, GError **error);
void wireless_security_add_to_size_group (WirelessSecurity *sec,

View file

@ -33,13 +33,11 @@
#include "ws-dynamic-wep.h"
struct _WirelessSecurityDynamicWEP {
GObject parent;
GtkGrid parent;
GtkBuilder *builder;
GtkComboBox *auth_combo;
GtkLabel *auth_label;
GtkListStore *auth_model;
GtkGrid *grid;
GtkBox *method_box;
EAPMethodTLS *em_tls;
@ -52,7 +50,7 @@ struct _WirelessSecurityDynamicWEP {
static void wireless_security_iface_init (WirelessSecurityInterface *);
G_DEFINE_TYPE_WITH_CODE (WirelessSecurityDynamicWEP, ws_dynamic_wep, G_TYPE_OBJECT,
G_DEFINE_TYPE_WITH_CODE (WirelessSecurityDynamicWEP, ws_dynamic_wep, GTK_TYPE_GRID,
G_IMPLEMENT_INTERFACE (wireless_security_get_type (), wireless_security_iface_init));
#define AUTH_NAME_COLUMN 0
@ -84,23 +82,6 @@ get_eap (WirelessSecurityDynamicWEP *self)
return NULL;
}
static void
ws_dynamic_wep_dispose (GObject *object)
{
WirelessSecurityDynamicWEP *self = WS_DYNAMIC_WEP (object);
g_clear_object (&self->builder);
G_OBJECT_CLASS (ws_dynamic_wep_parent_class)->dispose (object);
}
static GtkWidget *
get_widget (WirelessSecurity *security)
{
WirelessSecurityDynamicWEP *self = WS_DYNAMIC_WEP (security);
return GTK_WIDGET (self->grid);
}
static gboolean
validate (WirelessSecurity *security, GError **error)
{
@ -190,20 +171,25 @@ auth_combo_changed_cb (WirelessSecurityDynamicWEP *self)
void
ws_dynamic_wep_init (WirelessSecurityDynamicWEP *self)
{
gtk_widget_init_template (GTK_WIDGET (self));
}
void
ws_dynamic_wep_class_init (WirelessSecurityDynamicWEPClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
object_class->dispose = ws_dynamic_wep_dispose;
gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/ControlCenter/network/ws-dynamic-wep.ui");
gtk_widget_class_bind_template_child (widget_class, WirelessSecurityDynamicWEP, auth_combo);
gtk_widget_class_bind_template_child (widget_class, WirelessSecurityDynamicWEP, auth_label);
gtk_widget_class_bind_template_child (widget_class, WirelessSecurityDynamicWEP, auth_model);
gtk_widget_class_bind_template_child (widget_class, WirelessSecurityDynamicWEP, method_box);
}
static void
wireless_security_iface_init (WirelessSecurityInterface *iface)
{
iface->get_widget = get_widget;
iface->validate = validate;
iface->add_to_size_group = add_to_size_group;
iface->fill_connection = fill_connection;
@ -219,22 +205,9 @@ ws_dynamic_wep_new (NMConnection *connection,
const gchar *default_method = NULL;
EAPMethodSimpleFlags simple_flags = EAP_METHOD_SIMPLE_FLAG_NONE;
GtkTreeIter iter;
g_autoptr(GError) error = NULL;
self = g_object_new (ws_dynamic_wep_get_type (), NULL);
self->builder = gtk_builder_new ();
if (!gtk_builder_add_from_resource (self->builder, "/org/gnome/ControlCenter/network/ws-dynamic-wep.ui", &error)) {
g_warning ("Couldn't load UI builder resource: %s", error->message);
return NULL;
}
self->auth_combo = GTK_COMBO_BOX (gtk_builder_get_object (self->builder, "auth_combo"));
self->auth_label = GTK_LABEL (gtk_builder_get_object (self->builder, "auth_label"));
self->auth_model = GTK_LIST_STORE (gtk_builder_get_object (self->builder, "auth_model"));
self->grid = GTK_GRID (gtk_builder_get_object (self->builder, "grid"));
self->method_box = GTK_BOX (gtk_builder_get_object (self->builder, "method_box"));
/* Grab the default EAP method out of the security object */
if (connection) {
NMSetting8021x *s_8021x;

View file

@ -22,11 +22,12 @@
#pragma once
#include <gtk/gtk.h>
#include <NetworkManager.h>
G_BEGIN_DECLS
G_DECLARE_FINAL_TYPE (WirelessSecurityDynamicWEP, ws_dynamic_wep, WS, DYNAMIC_WEP, GObject)
G_DECLARE_FINAL_TYPE (WirelessSecurityDynamicWEP, ws_dynamic_wep, WS, DYNAMIC_WEP, GtkGrid)
WirelessSecurityDynamicWEP *ws_dynamic_wep_new (NMConnection *connection,
gboolean is_editor,

View file

@ -43,7 +43,7 @@
</row>
</data>
</object>
<object class="GtkGrid" id="grid">
<template class="WirelessSecurityDynamicWEP" parent="GtkGrid">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="column_spacing">6</property>
@ -96,5 +96,5 @@
<property name="top_attach">1</property>
</packing>
</child>
</object>
</template>
</interface>

View file

@ -29,10 +29,8 @@
#include "ws-leap.h"
struct _WirelessSecurityLEAP {
GObject parent;
GtkGrid parent;
GtkBuilder *builder;
GtkGrid *grid;
GtkEntry *password_entry;
GtkLabel *password_label;
GtkCheckButton *show_password_check;
@ -45,19 +43,9 @@ struct _WirelessSecurityLEAP {
static void wireless_security_iface_init (WirelessSecurityInterface *);
G_DEFINE_TYPE_WITH_CODE (WirelessSecurityLEAP, ws_leap, G_TYPE_OBJECT,
G_DEFINE_TYPE_WITH_CODE (WirelessSecurityLEAP, ws_leap, GTK_TYPE_GRID,
G_IMPLEMENT_INTERFACE (wireless_security_get_type (), wireless_security_iface_init));
static void
ws_leap_dispose (GObject *object)
{
WirelessSecurityLEAP *self = WS_LEAP (object);
g_clear_object (&self->builder);
G_OBJECT_CLASS (ws_leap_parent_class)->dispose (object);
}
static void
show_toggled_cb (WirelessSecurityLEAP *self)
{
@ -67,13 +55,6 @@ show_toggled_cb (WirelessSecurityLEAP *self)
gtk_entry_set_visibility (self->password_entry, visible);
}
static GtkWidget *
get_widget (WirelessSecurity *security)
{
WirelessSecurityLEAP *self = WS_LEAP (security);
return GTK_WIDGET (self->grid);
}
static gboolean
validate (WirelessSecurity *security, GError **error)
{
@ -158,20 +139,26 @@ changed_cb (WirelessSecurityLEAP *self)
void
ws_leap_init (WirelessSecurityLEAP *self)
{
gtk_widget_init_template (GTK_WIDGET (self));
}
void
ws_leap_class_init (WirelessSecurityLEAPClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
object_class->dispose = ws_leap_dispose;
gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/ControlCenter/network/ws-leap.ui");
gtk_widget_class_bind_template_child (widget_class, WirelessSecurityLEAP, password_entry);
gtk_widget_class_bind_template_child (widget_class, WirelessSecurityLEAP, password_label);
gtk_widget_class_bind_template_child (widget_class, WirelessSecurityLEAP, show_password_check);
gtk_widget_class_bind_template_child (widget_class, WirelessSecurityLEAP, username_entry);
gtk_widget_class_bind_template_child (widget_class, WirelessSecurityLEAP, username_label);
}
static void
wireless_security_iface_init (WirelessSecurityInterface *iface)
{
iface->get_widget = get_widget;
iface->validate = validate;
iface->add_to_size_group = add_to_size_group;
iface->fill_connection = fill_connection;
@ -183,7 +170,6 @@ ws_leap_new (NMConnection *connection, gboolean secrets_only)
{
WirelessSecurityLEAP *self;
NMSettingWirelessSecurity *wsec = NULL;
g_autoptr(GError) error = NULL;
self = g_object_new (ws_leap_get_type (), NULL);
@ -202,19 +188,6 @@ ws_leap_new (NMConnection *connection, gboolean secrets_only)
self->editing_connection = secrets_only ? FALSE : TRUE;
self->password_flags_name = NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD;
self->builder = gtk_builder_new ();
if (!gtk_builder_add_from_resource (self->builder, "/org/gnome/ControlCenter/network/ws-leap.ui", &error)) {
g_warning ("Couldn't load UI builder resource: %s", error->message);
return NULL;
}
self->grid = GTK_GRID (gtk_builder_get_object (self->builder, "grid"));
self->password_entry = GTK_ENTRY (gtk_builder_get_object (self->builder, "password_entry"));
self->password_label = GTK_LABEL (gtk_builder_get_object (self->builder, "password_label"));
self->show_password_check = GTK_CHECK_BUTTON (gtk_builder_get_object (self->builder, "show_password_check"));
self->username_entry = GTK_ENTRY (gtk_builder_get_object (self->builder, "username_entry"));
self->username_label = GTK_LABEL (gtk_builder_get_object (self->builder, "username_label"));
g_signal_connect_swapped (self->password_entry, "changed", G_CALLBACK (changed_cb), self);
/* Create password-storage popup menu for password entry under entry's secondary icon */

View file

@ -22,11 +22,12 @@
#pragma once
#include <gtk/gtk.h>
#include <NetworkManager.h>
G_BEGIN_DECLS
G_DECLARE_FINAL_TYPE (WirelessSecurityLEAP, ws_leap, WS, LEAP, GObject)
G_DECLARE_FINAL_TYPE (WirelessSecurityLEAP, ws_leap, WS, LEAP, GtkGrid)
WirelessSecurityLEAP * ws_leap_new (NMConnection *connection, gboolean secrets_only);

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<requires lib="gtk+" version="3.4"/>
<object class="GtkGrid" id="grid">
<template class="WirelessSecurityLEAP" parent="GtkGrid">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="valign">start</property>
@ -78,5 +78,5 @@
<property name="top_attach">0</property>
</packing>
</child>
</object>
</template>
</interface>

View file

@ -29,12 +29,10 @@
#include "wireless-security.h"
struct _WirelessSecurityWEPKey {
GObject parent;
GtkGrid parent;
GtkBuilder *builder;
GtkComboBox *auth_method_combo;
GtkLabel *auth_method_label;
GtkGrid *grid;
GtkEntry *key_entry;
GtkComboBox *key_index_combo;
GtkLabel *key_index_label;
@ -51,7 +49,7 @@ struct _WirelessSecurityWEPKey {
static void wireless_security_iface_init (WirelessSecurityInterface *);
G_DEFINE_TYPE_WITH_CODE (WirelessSecurityWEPKey, ws_wep_key, G_TYPE_OBJECT,
G_DEFINE_TYPE_WITH_CODE (WirelessSecurityWEPKey, ws_wep_key, GTK_TYPE_GRID,
G_IMPLEMENT_INTERFACE (wireless_security_get_type (), wireless_security_iface_init));
static void
@ -93,20 +91,12 @@ ws_wep_key_dispose (GObject *object)
WirelessSecurityWEPKey *self = WS_WEP_KEY (object);
int i;
g_clear_object (&self->builder);
for (i = 0; i < 4; i++)
memset (self->keys[i], 0, sizeof (self->keys[i]));
G_OBJECT_CLASS (ws_wep_key_parent_class)->dispose (object);
}
static GtkWidget *
get_widget (WirelessSecurity *security)
{
WirelessSecurityWEPKey *self = WS_WEP_KEY (security);
return GTK_WIDGET (self->grid);
}
static gboolean
validate (WirelessSecurity *security, GError **error)
{
@ -260,20 +250,31 @@ changed_cb (WirelessSecurityWEPKey *self)
void
ws_wep_key_init (WirelessSecurityWEPKey *self)
{
gtk_widget_init_template (GTK_WIDGET (self));
}
void
ws_wep_key_class_init (WirelessSecurityWEPKeyClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
object_class->dispose = ws_wep_key_dispose;
gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/ControlCenter/network/ws-wep-key.ui");
gtk_widget_class_bind_template_child (widget_class, WirelessSecurityWEPKey, auth_method_combo);
gtk_widget_class_bind_template_child (widget_class, WirelessSecurityWEPKey, auth_method_label);
gtk_widget_class_bind_template_child (widget_class, WirelessSecurityWEPKey, key_entry);
gtk_widget_class_bind_template_child (widget_class, WirelessSecurityWEPKey, key_index_combo);
gtk_widget_class_bind_template_child (widget_class, WirelessSecurityWEPKey, key_index_label);
gtk_widget_class_bind_template_child (widget_class, WirelessSecurityWEPKey, key_label);
gtk_widget_class_bind_template_child (widget_class, WirelessSecurityWEPKey, show_key_check);
}
static void
wireless_security_iface_init (WirelessSecurityInterface *iface)
{
iface->get_widget = get_widget;
iface->validate = validate;
iface->add_to_size_group = add_to_size_group;
iface->fill_connection = fill_connection;
@ -291,25 +292,9 @@ ws_wep_key_new (NMConnection *connection,
guint8 default_key_idx = 0;
gboolean is_adhoc = adhoc_create;
gboolean is_shared_key = FALSE;
g_autoptr(GError) error = NULL;
self = g_object_new (ws_wep_key_get_type (), NULL);
self->builder = gtk_builder_new ();
if (!gtk_builder_add_from_resource (self->builder, "/org/gnome/ControlCenter/network/ws-wep-key.ui", &error)) {
g_warning ("Couldn't load UI builder resource: %s", error->message);
return NULL;
}
self->auth_method_combo = GTK_COMBO_BOX (gtk_builder_get_object (self->builder, "auth_method_combo"));
self->auth_method_label = GTK_LABEL (gtk_builder_get_object (self->builder, "auth_method_label"));
self->grid = GTK_GRID (gtk_builder_get_object (self->builder, "grid"));
self->key_entry = GTK_ENTRY (gtk_builder_get_object (self->builder, "key_entry"));
self->key_index_combo = GTK_COMBO_BOX (gtk_builder_get_object (self->builder, "key_index_combo"));
self->key_index_label = GTK_LABEL (gtk_builder_get_object (self->builder, "key_index_label"));
self->key_label = GTK_LABEL (gtk_builder_get_object (self->builder, "key_label"));
self->show_key_check = GTK_CHECK_BUTTON (gtk_builder_get_object (self->builder, "show_key_check"));
self->editing_connection = secrets_only ? FALSE : TRUE;
self->password_flags_name = NM_SETTING_WIRELESS_SECURITY_WEP_KEY0;
self->type = type;

View file

@ -22,11 +22,12 @@
#pragma once
#include <gtk/gtk.h>
#include <NetworkManager.h>
G_BEGIN_DECLS
G_DECLARE_FINAL_TYPE (WirelessSecurityWEPKey, ws_wep_key, WS, WEP_KEY, GObject)
G_DECLARE_FINAL_TYPE (WirelessSecurityWEPKey, ws_wep_key, WS, WEP_KEY, GtkGrid)
WirelessSecurityWEPKey *ws_wep_key_new (NMConnection *connection,
NMWepKeyType type,

View file

@ -35,7 +35,7 @@
</row>
</data>
</object>
<object class="GtkGrid" id="grid">
<template class="WirelessSecurityWEPKey" parent="GtkGrid">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="column_spacing">6</property>
@ -158,5 +158,5 @@
<property name="top_attach">2</property>
</packing>
</child>
</object>
</template>
</interface>

View file

@ -33,13 +33,11 @@
#include "eap-method-ttls.h"
struct _WirelessSecurityWPAEAP {
GObject parent;
GtkGrid parent;
GtkBuilder *builder;
GtkComboBox *auth_combo;
GtkLabel *auth_label;
GtkListStore *auth_model;
GtkGrid *grid;
GtkBox *method_box;
EAPMethodSimple *em_md5;
@ -53,7 +51,7 @@ struct _WirelessSecurityWPAEAP {
static void wireless_security_iface_init (WirelessSecurityInterface *);
G_DEFINE_TYPE_WITH_CODE (WirelessSecurityWPAEAP, ws_wpa_eap, G_TYPE_OBJECT,
G_DEFINE_TYPE_WITH_CODE (WirelessSecurityWPAEAP, ws_wpa_eap, GTK_TYPE_GRID,
G_IMPLEMENT_INTERFACE (wireless_security_get_type (), wireless_security_iface_init));
#define AUTH_NAME_COLUMN 0
@ -87,23 +85,6 @@ get_eap (WirelessSecurityWPAEAP *self)
return NULL;
}
static void
ws_wpa_eap_dispose (GObject *object)
{
WirelessSecurityWPAEAP *self = WS_WPA_EAP (object);
g_clear_object (&self->builder);
G_OBJECT_CLASS (ws_wpa_eap_parent_class)->dispose (object);
}
static GtkWidget *
get_widget (WirelessSecurity *security)
{
WirelessSecurityWPAEAP *self = WS_WPA_EAP (security);
return GTK_WIDGET (self->grid);
}
static gboolean
validate (WirelessSecurity *security, GError **error)
{
@ -205,20 +186,25 @@ auth_combo_changed_cb (WirelessSecurityWPAEAP *self)
void
ws_wpa_eap_init (WirelessSecurityWPAEAP *self)
{
gtk_widget_init_template (GTK_WIDGET (self));
}
void
ws_wpa_eap_class_init (WirelessSecurityWPAEAPClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
object_class->dispose = ws_wpa_eap_dispose;
gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/ControlCenter/network/ws-wpa-eap.ui");
gtk_widget_class_bind_template_child (widget_class, WirelessSecurityWPAEAP, auth_combo);
gtk_widget_class_bind_template_child (widget_class, WirelessSecurityWPAEAP, auth_label);
gtk_widget_class_bind_template_child (widget_class, WirelessSecurityWPAEAP, auth_model);
gtk_widget_class_bind_template_child (widget_class, WirelessSecurityWPAEAP, method_box);
}
static void
wireless_security_iface_init (WirelessSecurityInterface *iface)
{
iface->get_widget = get_widget;
iface->validate = validate;
iface->add_to_size_group = add_to_size_group;
iface->fill_connection = fill_connection;
@ -235,22 +221,9 @@ ws_wpa_eap_new (NMConnection *connection,
gboolean wired = FALSE;
EAPMethodSimpleFlags simple_flags = EAP_METHOD_SIMPLE_FLAG_NONE;
GtkTreeIter iter;
g_autoptr(GError) error = NULL;
self = g_object_new (ws_wpa_eap_get_type (), NULL);
self->builder = gtk_builder_new ();
if (!gtk_builder_add_from_resource (self->builder, "/org/gnome/ControlCenter/network/ws-wpa-eap.ui", &error)) {
g_warning ("Couldn't load UI builder resource: %s", error->message);
return NULL;
}
self->auth_combo = GTK_COMBO_BOX (gtk_builder_get_object (self->builder, "auth_combo"));
self->auth_label = GTK_LABEL (gtk_builder_get_object (self->builder, "auth_label"));
self->auth_model = GTK_LIST_STORE (gtk_builder_get_object (self->builder, "auth_model"));
self->grid = GTK_GRID (gtk_builder_get_object (self->builder, "grid"));
self->method_box = GTK_BOX (gtk_builder_get_object (self->builder, "method_box"));
/* Grab the default EAP method out of the security object */
if (connection) {
NMSettingConnection *s_con;

View file

@ -22,11 +22,12 @@
#pragma once
#include <gtk/gtk.h>
#include <NetworkManager.h>
G_BEGIN_DECLS
G_DECLARE_FINAL_TYPE (WirelessSecurityWPAEAP, ws_wpa_eap, WS, WPA_EAP, GObject)
G_DECLARE_FINAL_TYPE (WirelessSecurityWPAEAP, ws_wpa_eap, WS, WPA_EAP, GtkGrid)
WirelessSecurityWPAEAP *ws_wpa_eap_new (NMConnection *connection,
gboolean is_editor,

View file

@ -48,7 +48,7 @@
</row>
</data>
</object>
<object class="GtkGrid" id="grid">
<template class="WirelessSecurityWPAEAP" parent="GtkGrid">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="column_spacing">6</property>
@ -100,5 +100,5 @@
<property name="top_attach">1</property>
</packing>
</child>
</object>
</template>
</interface>

View file

@ -32,10 +32,8 @@
#define WPA_PMK_LEN 32
struct _WirelessSecurityWPAPSK {
GObject parent;
GtkGrid parent;
GtkBuilder *builder;
GtkGrid *grid;
GtkEntry *password_entry;
GtkLabel *password_label;
GtkCheckButton *show_password_check;
@ -48,26 +46,9 @@ struct _WirelessSecurityWPAPSK {
static void wireless_security_iface_init (WirelessSecurityInterface *);
G_DEFINE_TYPE_WITH_CODE (WirelessSecurityWPAPSK, ws_wpa_psk, G_TYPE_OBJECT,
G_DEFINE_TYPE_WITH_CODE (WirelessSecurityWPAPSK, ws_wpa_psk, GTK_TYPE_GRID,
G_IMPLEMENT_INTERFACE (wireless_security_get_type (), wireless_security_iface_init));
static void
ws_wpa_psk_dispose (GObject *object)
{
WirelessSecurityWPAPSK *self = WS_WPA_PSK (object);
g_clear_object (&self->builder);
G_OBJECT_CLASS (ws_wpa_psk_parent_class)->dispose (object);
}
static GtkWidget *
get_widget (WirelessSecurity *security)
{
WirelessSecurityWPAPSK *self = WS_WPA_PSK (security);
return GTK_WIDGET (self->grid);
}
static void
show_toggled_cb (WirelessSecurityWPAPSK *self)
{
@ -188,20 +169,26 @@ changed_cb (WirelessSecurityWPAPSK *self)
void
ws_wpa_psk_init (WirelessSecurityWPAPSK *self)
{
gtk_widget_init_template (GTK_WIDGET (self));
}
void
ws_wpa_psk_class_init (WirelessSecurityWPAPSKClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
object_class->dispose = ws_wpa_psk_dispose;
gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/ControlCenter/network/ws-wpa-psk.ui");
gtk_widget_class_bind_template_child (widget_class, WirelessSecurityWPAPSK, password_entry);
gtk_widget_class_bind_template_child (widget_class, WirelessSecurityWPAPSK, password_label);
gtk_widget_class_bind_template_child (widget_class, WirelessSecurityWPAPSK, show_password_check);
gtk_widget_class_bind_template_child (widget_class, WirelessSecurityWPAPSK, type_combo);
gtk_widget_class_bind_template_child (widget_class, WirelessSecurityWPAPSK, type_label);
}
static void
wireless_security_iface_init (WirelessSecurityInterface *iface)
{
iface->get_widget = get_widget;
iface->validate = validate;
iface->add_to_size_group = add_to_size_group;
iface->fill_connection = fill_connection;
@ -213,23 +200,9 @@ ws_wpa_psk_new (NMConnection *connection, gboolean secrets_only)
{
WirelessSecurityWPAPSK *self;
NMSetting *setting = NULL;
g_autoptr(GError) error = NULL;
self = g_object_new (ws_wpa_psk_get_type (), NULL);
self->builder = gtk_builder_new ();
if (!gtk_builder_add_from_resource (self->builder, "/org/gnome/ControlCenter/network/ws-wpa-psk.ui", &error)) {
g_warning ("Couldn't load UI builder resource: %s", error->message);
return NULL;
}
self->grid = GTK_GRID (gtk_builder_get_object (self->builder, "grid"));
self->password_entry = GTK_ENTRY (gtk_builder_get_object (self->builder, "password_entry"));
self->password_label = GTK_LABEL (gtk_builder_get_object (self->builder, "password_label"));
self->show_password_check = GTK_CHECK_BUTTON (gtk_builder_get_object (self->builder, "show_password_check"));
self->type_combo = GTK_COMBO_BOX (gtk_builder_get_object (self->builder, "type_combo"));
self->type_label = GTK_LABEL (gtk_builder_get_object (self->builder, "type_label"));
self->editing_connection = secrets_only ? FALSE : TRUE;
self->password_flags_name = NM_SETTING_WIRELESS_SECURITY_PSK;

View file

@ -22,11 +22,12 @@
#pragma once
#include <gtk/gtk.h>
#include <NetworkManager.h>
G_BEGIN_DECLS
G_DECLARE_FINAL_TYPE (WirelessSecurityWPAPSK, ws_wpa_psk, WS, WPA_PSK, GObject)
G_DECLARE_FINAL_TYPE (WirelessSecurityWPAPSK, ws_wpa_psk, WS, WPA_PSK, GtkGrid)
WirelessSecurityWPAPSK * ws_wpa_psk_new (NMConnection *connection, gboolean secrets_only);

View file

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<requires lib="gtk+" version="3.4"/>
<object class="GtkGrid" id="grid">
<template class="WirelessSecurityWPAPSK" parent="GtkGrid">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="column_spacing">6</property>
@ -85,5 +85,5 @@
<property name="top_attach">2</property>
</packing>
</child>
</object>
</template>
</interface>