static void nmt_mtu_entry_init (NmtMtuEntry *entry) { NmtMtuEntryPrivate *priv = NMT_MTU_ENTRY_GET_PRIVATE (entry); NmtNewtGrid *grid = NMT_NEWT_GRID (entry); NmtNewtWidget *real_entry, *label; real_entry = nmt_newt_entry_numeric_new (10, 0, 65535); priv->entry = NMT_NEWT_ENTRY (real_entry); label = nmt_newt_label_new (_("bytes")); priv->label = NMT_NEWT_LABEL (label); nmt_newt_grid_add (grid, real_entry, 0, 0); nmt_newt_grid_add (grid, label, 1, 0); nmt_newt_widget_set_padding (label, 1, 0, 0, 0); nmt_newt_entry_set_validator (priv->entry, mtu_validator, entry); g_object_bind_property_full (entry, "mtu", real_entry, "text", G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE, mtu_transform_to_text, NULL, NULL, NULL); }
static void nmt_page_bridge_port_constructed (GObject *object) { NmtPageBridgePort *bridge = NMT_PAGE_BRIDGE_PORT (object); NmtEditorSection *section; NmtEditorGrid *grid; NMSettingBridgePort *s_port; NmtNewtWidget *widget; NMConnection *conn; conn = nmt_editor_page_get_connection (NMT_EDITOR_PAGE (bridge)); s_port = nm_connection_get_setting_bridge_port (conn); if (!s_port) { nm_connection_add_setting (conn, nm_setting_bridge_port_new ()); s_port = nm_connection_get_setting_bridge_port (conn); } section = nmt_editor_section_new (_("BRIDGE PORT"), NULL, TRUE); grid = nmt_editor_section_get_body (section); widget = nmt_newt_entry_numeric_new (10, 0, 63); g_object_bind_property (s_port, NM_SETTING_BRIDGE_PORT_PRIORITY, widget, "text", G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); nmt_editor_grid_append (grid, _("Priority"), widget, NULL); widget = nmt_newt_entry_numeric_new (10, 1, 65535); g_object_bind_property (s_port, NM_SETTING_BRIDGE_PORT_PATH_COST, widget, "text", G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); nmt_editor_grid_append (grid, _("Path cost"), widget, NULL); widget = nmt_newt_checkbox_new (_("Hairpin mode")); g_object_bind_property (s_port, NM_SETTING_BRIDGE_PORT_HAIRPIN_MODE, widget, "active", G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); nmt_editor_grid_append (grid, NULL, widget, NULL); nmt_editor_page_add_section (NMT_EDITOR_PAGE (bridge), section); G_OBJECT_CLASS (nmt_page_bridge_port_parent_class)->constructed (object); }
static void nmt_route_entry_constructed (GObject *object) { NmtRouteEntryPrivate *priv = NMT_ROUTE_ENTRY_GET_PRIVATE (object); NmtNewtGrid *grid = NMT_NEWT_GRID (object); NmtNewtWidget *warning_label; priv->dest = nmt_ip_entry_new (priv->ip_entry_width, priv->family, TRUE, FALSE); priv->next_hop = nmt_ip_entry_new (priv->ip_entry_width, priv->family, FALSE, TRUE); priv->metric = nmt_newt_entry_numeric_new (priv->metric_entry_width, 0, 65535); nmt_newt_grid_add (grid, priv->dest, 0, 0); warning_label = create_warning_label (priv->dest); nmt_newt_grid_add (grid, warning_label, 1, 0); nmt_newt_grid_add (grid, priv->next_hop, 2, 0); nmt_newt_widget_set_padding (priv->next_hop, 1, 0, 0, 0); warning_label = create_warning_label (priv->next_hop); nmt_newt_grid_add (grid, warning_label, 3, 0); nmt_newt_grid_add (grid, priv->metric, 4, 0); nmt_newt_widget_set_padding (priv->metric, 1, 0, 0, 0); if (priv->family == AF_INET) { nm_editor_bind_ip4_route_to_strings (object, "ip4-route", priv->dest, "text", priv->next_hop, "text", priv->metric, "text", G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); } else if (priv->family == AF_INET6) { nm_editor_bind_ip6_route_to_strings (object, "ip6-route", priv->dest, "text", priv->next_hop, "text", priv->metric, "text", G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); } else g_assert_not_reached (); G_OBJECT_CLASS (nmt_route_entry_parent_class)->constructed (object); }
static void nmt_page_bond_constructed (GObject *object) { NmtPageBond *bond = NMT_PAGE_BOND (object); NmtPageBondPrivate *priv = NMT_PAGE_BOND_GET_PRIVATE (bond); NmtEditorSection *section; NmtEditorGrid *grid; NMSettingBond *s_bond; NmtNewtWidget *widget, *label; NMConnection *conn; conn = nmt_editor_page_get_connection (NMT_EDITOR_PAGE (bond)); s_bond = nm_connection_get_setting_bond (conn); if (!s_bond) { nm_connection_add_setting (conn, nm_setting_bond_new ()); s_bond = nm_connection_get_setting_bond (conn); } priv->s_bond = s_bond; section = nmt_editor_section_new (_("BOND"), NULL, TRUE); grid = nmt_editor_section_get_body (section); widget = nmt_newt_separator_new (); nmt_editor_grid_append (grid, _("Slaves"), widget, NULL); nmt_editor_grid_set_row_flags (grid, widget, NMT_EDITOR_GRID_ROW_LABEL_ALIGN_LEFT); widget = nmt_slave_list_new (conn, bond_connection_type_filter, bond); g_signal_connect (widget, "notify::connections", G_CALLBACK (slaves_changed), bond); nmt_editor_grid_append (grid, NULL, widget, NULL); priv->slaves = NMT_SLAVE_LIST (widget); widget = nmt_newt_popup_new (bond_mode); g_signal_connect (widget, "notify::active-id", G_CALLBACK (mode_widget_changed), bond); nmt_editor_grid_append (grid, _("Mode"), widget, NULL); priv->mode = NMT_NEWT_POPUP (widget); widget = nmt_newt_entry_new (40, 0); g_signal_connect (widget, "notify::text", G_CALLBACK (primary_widget_changed), bond); nmt_editor_grid_append (grid, _("Primary"), widget, NULL); priv->primary = NMT_NEWT_ENTRY (widget); widget = nmt_newt_popup_new (bond_monitoring); g_signal_connect (widget, "notify::active", G_CALLBACK (monitoring_widget_changed), bond); nmt_editor_grid_append (grid, _("Link monitoring"), widget, NULL); priv->monitoring = NMT_NEWT_POPUP (widget); widget = nmt_newt_entry_numeric_new (10, 0, G_MAXINT); g_signal_connect (widget, "notify::text", G_CALLBACK (miimon_widget_changed), bond); label = nmt_newt_label_new (C_("milliseconds", "ms")); nmt_editor_grid_append (grid, _("Monitoring frequency"), widget, label); priv->miimon = NMT_NEWT_ENTRY (widget); widget = nmt_newt_entry_numeric_new (10, 0, G_MAXINT); g_signal_connect (widget, "notify::text", G_CALLBACK (updelay_widget_changed), bond); label = nmt_newt_label_new (C_("milliseconds", "ms")); nmt_editor_grid_append (grid, _("Link up delay"), widget, label); priv->updelay = NMT_NEWT_ENTRY (widget); widget = nmt_newt_entry_numeric_new (10, 0, G_MAXINT); g_signal_connect (widget, "notify::text", G_CALLBACK (downdelay_widget_changed), bond); label = nmt_newt_label_new (C_("milliseconds", "ms")); nmt_editor_grid_append (grid, _("Link down delay"), widget, label); priv->downdelay = NMT_NEWT_ENTRY (widget); widget = nmt_newt_entry_numeric_new (10, 0, G_MAXINT); g_signal_connect (widget, "notify::text", G_CALLBACK (arp_interval_widget_changed), bond); label = nmt_newt_label_new (C_("milliseconds", "ms")); nmt_editor_grid_append (grid, _("Monitoring frequency"), widget, label); priv->arp_interval = NMT_NEWT_ENTRY (widget); widget = nmt_address_list_new (NMT_ADDRESS_LIST_IP4); g_signal_connect (widget, "notify::strings", G_CALLBACK (arp_ip_target_widget_changed), bond); nmt_editor_grid_append (grid, _("ARP targets"), widget, NULL); priv->arp_ip_target = NMT_ADDRESS_LIST (widget); g_signal_connect (s_bond, "notify::" NM_SETTING_BOND_OPTIONS, G_CALLBACK (bond_options_changed), bond); bond_options_changed (G_OBJECT (s_bond), NULL, bond); slaves_changed (G_OBJECT (priv->slaves), NULL, bond); nmt_editor_page_add_section (NMT_EDITOR_PAGE (bond), section); G_OBJECT_CLASS (nmt_page_bond_parent_class)->constructed (object); }
static void nmt_page_wifi_constructed (GObject *object) { NmtPageWifiPrivate *priv = NMT_PAGE_WIFI_GET_PRIVATE (object); NmtPageWifi *wifi = NMT_PAGE_WIFI (object); NmtDeviceEntry *deventry; NmtEditorSection *section; NmtEditorGrid *grid; NMSettingWireless *s_wireless; NMSettingWirelessSecurity *s_wsec; NmtNewtWidget *widget, *hbox, *subgrid; NmtNewtWidget *mode, *band, *security, *entry; NmtNewtStack *stack; NMConnection *conn; conn = nmt_editor_page_get_connection (NMT_EDITOR_PAGE (wifi)); s_wireless = nm_connection_get_setting_wireless (conn); if (!s_wireless) { nm_connection_add_setting (conn, nm_setting_wireless_new ()); s_wireless = nm_connection_get_setting_wireless (conn); } s_wsec = nm_connection_get_setting_wireless_security (conn); if (!s_wsec) { /* It makes things simpler if we always have a * NMSettingWirelessSecurity; we'll hold a ref on one, and add * it to and remove it from the connection as needed. */ s_wsec = NM_SETTING_WIRELESS_SECURITY (nm_setting_wireless_security_new ()); } priv->s_wsec = g_object_ref_sink (s_wsec); deventry = nmt_editor_page_device_get_device_entry (NMT_EDITOR_PAGE_DEVICE (object)); g_object_bind_property (s_wireless, NM_SETTING_WIRELESS_MAC_ADDRESS, deventry, "mac-address", G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); section = nmt_editor_section_new (_("WI-FI"), NULL, TRUE); grid = nmt_editor_section_get_body (section); widget = nmt_newt_entry_new (40, NMT_NEWT_ENTRY_NONEMPTY); g_object_bind_property_full (s_wireless, NM_SETTING_WIRELESS_SSID, widget, "text", G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE, ssid_transform_to_entry, ssid_transform_from_entry, s_wireless, NULL); nmt_editor_grid_append (grid, _("SSID"), widget, NULL); widget = nmt_newt_popup_new (wifi_mode); g_object_bind_property (s_wireless, NM_SETTING_WIRELESS_MODE, widget, "active-id", G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); nmt_editor_grid_append (grid, _("Mode"), widget, NULL); mode = widget; hbox = nmt_newt_grid_new (); widget = nmt_newt_popup_new (wifi_band); g_object_bind_property (s_wireless, NM_SETTING_WIRELESS_BAND, widget, "active-id", G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); nmt_newt_grid_add (NMT_NEWT_GRID (hbox), widget, 0, 0); band = widget; widget = nmt_newt_entry_numeric_new (10, 0, 255); g_object_bind_property (s_wireless, NM_SETTING_WIRELESS_CHANNEL, widget, "text", G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); nmt_newt_grid_add (NMT_NEWT_GRID (hbox), widget, 1, 0); nmt_newt_widget_set_padding (widget, 1, 0, 0, 0); g_object_bind_property_full (band, "active-id", widget, "visible", G_BINDING_SYNC_CREATE, band_transform_to_channel_visibility, NULL, NULL, NULL); g_object_bind_property_full (mode, "active-id", hbox, "visible", G_BINDING_SYNC_CREATE, mode_transform_to_band_visibility, NULL, NULL, NULL); nmt_editor_grid_append (grid, _("Channel"), hbox, NULL); nmt_editor_grid_append (grid, NULL, nmt_newt_separator_new (), NULL); widget = nmt_newt_popup_new (wifi_security); nmt_editor_grid_append (grid, _("Security"), widget, NULL); security = widget; widget = nmt_newt_stack_new (); stack = NMT_NEWT_STACK (widget); /* none */ subgrid = nmt_editor_grid_new (); nmt_newt_stack_add (stack, "none", subgrid); /* wpa-personal */ subgrid = nmt_editor_grid_new (); widget = nmt_password_fields_new (40, NMT_PASSWORD_FIELDS_SHOW_PASSWORD); g_object_bind_property (s_wsec, NM_SETTING_WIRELESS_SECURITY_PSK, widget, "password", G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL); nmt_editor_grid_append (NMT_EDITOR_GRID (subgrid), _("Password"), widget, NULL); nmt_newt_stack_add (stack, "wpa-personal", subgrid); /* "wpa-enterprise" */ // FIXME widget = nmt_newt_label_new (_("(No support for wpa-enterprise yet...)")); nmt_newt_stack_add (stack, "wpa-enterprise", widget); /* wep-key */ subgrid = nmt_editor_grid_new (); widget = entry = nmt_password_fields_new (40, NMT_PASSWORD_FIELDS_SHOW_PASSWORD); nmt_editor_grid_append (NMT_EDITOR_GRID (subgrid), _("Key"), widget, NULL); widget = nmt_newt_popup_new (wep_index); nmt_editor_grid_append (NMT_EDITOR_GRID (subgrid), _("WEP index"), widget, NULL); nm_editor_bind_wireless_security_wep_key (s_wsec, entry, "password", widget, "active", G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); widget = nmt_newt_popup_new (wep_auth); nmt_editor_grid_append (NMT_EDITOR_GRID (subgrid), _("Authentication"), widget, NULL); nmt_newt_stack_add (stack, "wep-key", subgrid); /* wep-passphrase */ subgrid = nmt_editor_grid_new (); widget = entry = nmt_password_fields_new (40, NMT_PASSWORD_FIELDS_SHOW_PASSWORD); nmt_editor_grid_append (NMT_EDITOR_GRID (subgrid), _("Password"), widget, NULL); widget = nmt_newt_popup_new (wep_index); nmt_editor_grid_append (NMT_EDITOR_GRID (subgrid), _("WEP index"), widget, NULL); nm_editor_bind_wireless_security_wep_key (s_wsec, entry, "password", widget, "active", G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); widget = nmt_newt_popup_new (wep_auth); nmt_editor_grid_append (NMT_EDITOR_GRID (subgrid), _("Authentication"), widget, NULL); nmt_newt_stack_add (stack, "wep-passphrase", subgrid); /* "dynamic-wep" */ // FIXME widget = nmt_newt_label_new (_("(No support for dynamic-wep yet...)")); nmt_newt_stack_add (stack, "dynamic-wep", widget); /* leap */ subgrid = nmt_editor_grid_new (); widget = nmt_newt_entry_new (40, NMT_NEWT_ENTRY_NONEMPTY); nmt_editor_grid_append (NMT_EDITOR_GRID (subgrid), _("Username"), widget, NULL); g_object_bind_property (s_wsec, NM_SETTING_WIRELESS_SECURITY_LEAP_USERNAME, widget, "text", G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL); widget = nmt_password_fields_new (40, NMT_PASSWORD_FIELDS_SHOW_PASSWORD); g_object_bind_property (s_wsec, NM_SETTING_WIRELESS_SECURITY_LEAP_PASSWORD, widget, "password", G_BINDING_SYNC_CREATE | G_BINDING_BIDIRECTIONAL); nmt_editor_grid_append (NMT_EDITOR_GRID (subgrid), _("Password"), widget, NULL); nmt_newt_stack_add (stack, "leap", subgrid); nmt_editor_grid_append (grid, NULL, NMT_NEWT_WIDGET (stack), NULL); g_object_bind_property (security, "active-id", stack, "active-id", G_BINDING_SYNC_CREATE); nm_editor_bind_wireless_security_method (conn, s_wsec, security, "active-id", G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); nmt_editor_grid_append (grid, NULL, nmt_newt_separator_new (), NULL); widget = nmt_mac_entry_new (40, ETH_ALEN); g_object_bind_property (s_wireless, NM_SETTING_WIRELESS_BSSID, widget, "mac-address", G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); nmt_editor_grid_append (grid, _("BSSID"), widget, NULL); widget = nmt_mac_entry_new (40, ETH_ALEN); g_object_bind_property (s_wireless, NM_SETTING_WIRELESS_CLONED_MAC_ADDRESS, widget, "mac-address", G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); nmt_editor_grid_append (grid, _("Cloned MAC address"), widget, NULL); widget = nmt_mtu_entry_new (); g_object_bind_property (s_wireless, NM_SETTING_WIRELESS_MTU, widget, "mtu", G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); nmt_editor_grid_append (grid, _("MTU"), widget, NULL); nmt_editor_page_add_section (NMT_EDITOR_PAGE (wifi), section); G_OBJECT_CLASS (nmt_page_wifi_parent_class)->constructed (object); }
static void nmt_page_bridge_constructed (GObject *object) { NmtPageBridge *bridge = NMT_PAGE_BRIDGE (object); NmtDeviceEntry *deventry; NmtPageGrid *grid; NMSettingBridge *s_bridge; NmtNewtWidget *widget, *label, *stp; NMConnection *conn; conn = nmt_editor_page_get_connection (NMT_EDITOR_PAGE (bridge)); s_bridge = nm_connection_get_setting_bridge (conn); if (!s_bridge) { nm_connection_add_setting (conn, nm_setting_bridge_new ()); s_bridge = nm_connection_get_setting_bridge (conn); } deventry = nmt_page_device_get_device_entry (NMT_PAGE_DEVICE (object)); g_object_bind_property (s_bridge, NM_SETTING_BRIDGE_INTERFACE_NAME, deventry, "interface-name", G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); grid = NMT_PAGE_GRID (bridge); widget = nmt_newt_separator_new (); nmt_page_grid_append (grid, _("Slaves"), widget, NULL); nmt_page_grid_set_row_flags (grid, widget, NMT_PAGE_GRID_ROW_LABEL_ALIGN_LEFT); widget = nmt_slave_list_new (conn, bridge_connection_type_filter, bridge); nmt_page_grid_append (grid, NULL, widget, NULL); widget = nmt_newt_entry_numeric_new (10, 0, 1000000); g_object_bind_property (s_bridge, NM_SETTING_BRIDGE_AGEING_TIME, widget, "text", G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); label = nmt_newt_label_new (_("seconds")); nmt_page_grid_append (grid, _("Aging time"), widget, label); widget = stp = nmt_newt_checkbox_new (_("Enable STP (Spanning Tree Protocol)")); g_object_bind_property (s_bridge, NM_SETTING_BRIDGE_STP, widget, "active", G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); nmt_page_grid_append (grid, NULL, widget, NULL); widget = nmt_newt_entry_numeric_new (10, 0, G_MAXINT); g_object_bind_property (s_bridge, NM_SETTING_BRIDGE_PRIORITY, widget, "text", G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); g_object_bind_property (s_bridge, NM_SETTING_BRIDGE_STP, widget, "sensitive", G_BINDING_SYNC_CREATE); nmt_page_grid_append (grid, _("Priority"), widget, NULL); widget = nmt_newt_entry_numeric_new (10, 2, 30); g_object_bind_property (s_bridge, NM_SETTING_BRIDGE_FORWARD_DELAY, widget, "text", G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); g_object_bind_property (s_bridge, NM_SETTING_BRIDGE_STP, widget, "sensitive", G_BINDING_SYNC_CREATE); label = nmt_newt_label_new (_("seconds")); nmt_page_grid_append (grid, _("Forward delay"), widget, label); widget = nmt_newt_entry_numeric_new (10, 1, 10); g_object_bind_property (s_bridge, NM_SETTING_BRIDGE_HELLO_TIME, widget, "text", G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); g_object_bind_property (s_bridge, NM_SETTING_BRIDGE_STP, widget, "sensitive", G_BINDING_SYNC_CREATE); label = nmt_newt_label_new (_("seconds")); nmt_page_grid_append (grid, _("Hello time"), widget, label); widget = nmt_newt_entry_numeric_new (10, 6, 40); g_object_bind_property (s_bridge, NM_SETTING_BRIDGE_MAX_AGE, widget, "text", G_BINDING_BIDIRECTIONAL | G_BINDING_SYNC_CREATE); g_object_bind_property (s_bridge, NM_SETTING_BRIDGE_STP, widget, "sensitive", G_BINDING_SYNC_CREATE); label = nmt_newt_label_new (_("seconds")); nmt_page_grid_append (grid, _("Max age"), widget, label); G_OBJECT_CLASS (nmt_page_bridge_parent_class)->constructed (object); }