static void slaves_changed (GObject *object, GParamSpec *pspec, gpointer user_data) { NmtPageBond *bond = NMT_PAGE_BOND (user_data); NmtPageBondPrivate *priv = NMT_PAGE_BOND_GET_PRIVATE (bond); GPtrArray *slaves; g_object_get (object, "connections", &slaves, NULL); if (slaves->len == 0) { if (priv->slave_type == G_TYPE_NONE) return; priv->slave_type = G_TYPE_NONE; } else { NMConnection *slave = slaves->pdata[0]; if (priv->slave_type != G_TYPE_NONE) return; if (nm_connection_is_type (slave, NM_SETTING_INFINIBAND_SETTING_NAME)) priv->slave_type = NM_TYPE_SETTING_INFINIBAND; else priv->slave_type = NM_TYPE_SETTING_WIRED; } if (priv->slave_type == NM_TYPE_SETTING_INFINIBAND) { nmt_newt_popup_set_active_id (priv->mode, "active-backup"); nmt_newt_component_set_sensitive (NMT_NEWT_COMPONENT (priv->mode), FALSE); } else nmt_newt_component_set_sensitive (NMT_NEWT_COMPONENT (priv->mode), TRUE); }
static void nmt_newt_popup_set_property (GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec) { NmtNewtPopup *popup = NMT_NEWT_POPUP (object); switch (prop_id) { case PROP_ACTIVE: nmt_newt_popup_set_active (popup, g_value_get_uint (value)); break; case PROP_ACTIVE_ID: nmt_newt_popup_set_active_id (popup, g_value_get_string (value)); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); break; } }
static void bond_options_changed (GObject *object, GParamSpec *pspec, gpointer user_data) { NMSettingBond *s_bond = NM_SETTING_BOND (object); NmtPageBond *bond = NMT_PAGE_BOND (user_data); NmtPageBondPrivate *priv = NMT_PAGE_BOND_GET_PRIVATE (bond); const char *val; char **ips; if (priv->updating) return; priv->updating = TRUE; val = nm_setting_bond_get_option_by_name (s_bond, NM_SETTING_BOND_OPTION_MODE); nmt_newt_popup_set_active_id (priv->mode, val); if (!strcmp (val, "active-backup")) { nmt_newt_widget_set_visible (NMT_NEWT_WIDGET (priv->primary), TRUE); val = nm_setting_bond_get_option_by_name (s_bond, NM_SETTING_BOND_OPTION_PRIMARY); nmt_newt_entry_set_text (priv->primary, val); } else nmt_newt_widget_set_visible (NMT_NEWT_WIDGET (priv->primary), FALSE); if (priv->monitoring_mode == NMT_PAGE_BOND_MONITORING_UNKNOWN) { val = nm_setting_bond_get_option_by_name (s_bond, NM_SETTING_BOND_OPTION_ARP_INTERVAL); if (val && strcmp (val, "0") != 0) priv->monitoring_mode = NMT_PAGE_BOND_MONITORING_ARP; else priv->monitoring_mode = NMT_PAGE_BOND_MONITORING_MII; } nmt_newt_popup_set_active (priv->monitoring, priv->monitoring_mode); if (priv->monitoring_mode == NMT_PAGE_BOND_MONITORING_MII) { nmt_newt_widget_set_visible (NMT_NEWT_WIDGET (priv->miimon), TRUE); val = nm_setting_bond_get_option_by_name (s_bond, NM_SETTING_BOND_OPTION_MIIMON); nmt_newt_entry_set_text (priv->miimon, val); nmt_newt_widget_set_visible (NMT_NEWT_WIDGET (priv->updelay), TRUE); val = nm_setting_bond_get_option_by_name (s_bond, NM_SETTING_BOND_OPTION_UPDELAY); nmt_newt_entry_set_text (priv->updelay, val); nmt_newt_widget_set_visible (NMT_NEWT_WIDGET (priv->downdelay), TRUE); val = nm_setting_bond_get_option_by_name (s_bond, NM_SETTING_BOND_OPTION_DOWNDELAY); nmt_newt_entry_set_text (priv->downdelay, val); nmt_newt_widget_set_visible (NMT_NEWT_WIDGET (priv->arp_interval), FALSE); nmt_newt_widget_set_visible (NMT_NEWT_WIDGET (priv->arp_ip_target), FALSE); } else { nmt_newt_widget_set_visible (NMT_NEWT_WIDGET (priv->arp_interval), TRUE); val = nm_setting_bond_get_option_by_name (s_bond, NM_SETTING_BOND_OPTION_ARP_INTERVAL); nmt_newt_entry_set_text (priv->arp_interval, val); nmt_newt_widget_set_visible (NMT_NEWT_WIDGET (priv->arp_ip_target), TRUE); val = nm_setting_bond_get_option_by_name (s_bond, NM_SETTING_BOND_OPTION_ARP_IP_TARGET); ips = g_strsplit (val, ",", -1); g_object_set (G_OBJECT (priv->arp_ip_target), "strings", ips, NULL); g_strfreev (ips); nmt_newt_widget_set_visible (NMT_NEWT_WIDGET (priv->miimon), FALSE); nmt_newt_widget_set_visible (NMT_NEWT_WIDGET (priv->updelay), FALSE); nmt_newt_widget_set_visible (NMT_NEWT_WIDGET (priv->downdelay), FALSE); } priv->updating = FALSE; }