static gboolean import_dialog_account_id_in_list (GList *accounts, const gchar *account_id) { GList *l; for (l = accounts; l; l = l->next) { McAccount *account = l->data; gchar *value; gboolean result; if (mc_account_get_param_string (account, "account", &value) == MC_ACCOUNT_SETTING_ABSENT) continue; result = tp_strdiff (value, account_id); g_free (value); if (!result) return TRUE; } return FALSE; }
static void account_widget_setup_widget (GtkWidget *widget, McAccount *account, const gchar *param_name) { g_object_set_data_full (G_OBJECT (widget), "param_name", g_strdup (param_name), g_free); g_object_set_data_full (G_OBJECT (widget), "account", g_object_ref (account), g_object_unref); if (GTK_IS_SPIN_BUTTON (widget)) { gint value = 0; mc_account_get_param_int (account, param_name, &value); gtk_spin_button_set_value (GTK_SPIN_BUTTON (widget), value); g_signal_connect (widget, "value-changed", G_CALLBACK (account_widget_int_changed_cb), account); } else if (GTK_IS_ENTRY (widget)) { gchar *str = NULL; mc_account_get_param_string (account, param_name, &str); gtk_entry_set_text (GTK_ENTRY (widget), str ? str : ""); g_free (str); if (strstr (param_name, "password")) { gtk_entry_set_visibility (GTK_ENTRY (widget), FALSE); } g_signal_connect (widget, "focus-out-event", G_CALLBACK (account_widget_entry_focus_cb), account); } else if (GTK_IS_TOGGLE_BUTTON (widget)) { gboolean value = FALSE; mc_account_get_param_boolean (account, param_name, &value); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), value); g_signal_connect (widget, "toggled", G_CALLBACK (account_widget_checkbutton_toggled_cb), account); } else { DEBUG ("Unknown type of widget for param %s", param_name); } }
static gboolean account_widget_entry_focus_cb (GtkWidget *widget, GdkEventFocus *event, McAccount *account) { const gchar *str; const gchar *param_name; str = gtk_entry_get_text (GTK_ENTRY (widget)); param_name = g_object_get_data (G_OBJECT (widget), "param_name"); if (EMP_STR_EMPTY (str)) { gchar *value = NULL; mc_account_unset_param (account, param_name); mc_account_get_param_string (account, param_name, &value); DEBUG ("Unset %s and restore to %s", param_name, value); gtk_entry_set_text (GTK_ENTRY (widget), value ? value : ""); g_free (value); } else { McProfile *profile; const gchar *domain = NULL; gchar *dup_str = NULL; profile = mc_account_get_profile (account); if (mc_profile_get_capabilities (profile) & MC_PROFILE_CAPABILITY_SPLIT_ACCOUNT) { domain = mc_profile_get_default_account_domain (profile); } if (domain && !strstr (str, "@") && strcmp (param_name, "account") == 0) { DEBUG ("Adding @%s suffix to account", domain); str = dup_str = g_strconcat (str, "@", domain, NULL); gtk_entry_set_text (GTK_ENTRY (widget), str); } DEBUG ("Setting %s to %s", param_name, strstr (param_name, "password") ? "***" : str); mc_account_set_param_string (account, param_name, str); g_free (dup_str); g_object_unref (profile); } return FALSE; }
void empathy_account_widget_add_forget_button (McAccount *account, GtkBuilder *gui, const gchar *button, const gchar *entry) { GtkWidget *button_forget; GtkWidget *entry_password; gchar *password = NULL; button_forget = GTK_WIDGET (gtk_builder_get_object (gui, button)); entry_password = GTK_WIDGET (gtk_builder_get_object (gui, entry)); mc_account_get_param_string (account, "password", &password); gtk_widget_set_sensitive (button_forget, !EMP_STR_EMPTY (password)); g_free (password); g_signal_connect (button_forget, "clicked", G_CALLBACK (account_widget_forget_clicked_cb), entry_password); g_signal_connect (entry_password, "changed", G_CALLBACK (account_widget_password_changed_cb), button_forget); }
void empathy_account_widget_add_forget_button (McAccount *account, GladeXML *glade, const gchar *button, const gchar *entry) { GtkWidget *button_forget; GtkWidget *entry_password; gchar *password = NULL; button_forget = glade_xml_get_widget (glade, button); entry_password = glade_xml_get_widget (glade, entry); mc_account_get_param_string (account, "password", &password); gtk_widget_set_sensitive (button_forget, !G_STR_EMPTY (password)); g_free (password); g_signal_connect (button_forget, "clicked", G_CALLBACK (account_widget_forget_clicked_cb), entry_password); g_signal_connect (entry_password, "changed", G_CALLBACK (account_widget_password_changed_cb), button_forget); }
static void account_widget_irc_setup (EmpathyAccountWidgetIrc *settings) { gchar *nick = NULL; gchar *fullname = NULL; gchar *server = NULL; gint port = 6667; gchar *charset; gboolean ssl = FALSE; EmpathyIrcNetwork *network = NULL; mc_account_get_param_string (settings->account, "account", &nick); mc_account_get_param_string (settings->account, "fullname", &fullname); mc_account_get_param_string (settings->account, "server", &server); mc_account_get_param_string (settings->account, "charset", &charset); mc_account_get_param_int (settings->account, "port", &port); mc_account_get_param_boolean (settings->account, "use-ssl", &ssl); if (!nick) { nick = g_strdup (g_get_user_name ()); mc_account_set_param_string (settings->account, "account", nick); } if (!fullname) { fullname = g_strdup (g_get_real_name ()); if (!fullname) { fullname = g_strdup (nick); } mc_account_set_param_string (settings->account, "fullname", fullname); } if (server != NULL) { GtkListStore *store; network = empathy_irc_network_manager_find_network_by_address ( settings->network_manager, server); store = GTK_LIST_STORE (gtk_combo_box_get_model ( GTK_COMBO_BOX (settings->combobox_network))); if (network != NULL) { gchar *name; g_object_set (network, "charset", charset, NULL); g_object_get (network, "name", &name, NULL); DEBUG ("Account use network %s", name); g_free (name); } else { /* We don't have this network. Let's create it */ EmpathyIrcServer *srv; GtkTreeIter iter; DEBUG ("Create a network %s", server); network = empathy_irc_network_new (server); srv = empathy_irc_server_new (server, port, ssl); empathy_irc_network_append_server (network, srv); empathy_irc_network_manager_add (settings->network_manager, network); gtk_list_store_insert_with_values (store, &iter, -1, COL_NETWORK_OBJ, network, COL_NETWORK_NAME, server, -1); gtk_combo_box_set_active_iter ( GTK_COMBO_BOX (settings->combobox_network), &iter); g_object_unref (srv); g_object_unref (network); } } fill_networks_model (settings, network); g_free (nick); g_free (fullname); g_free (server); g_free (charset); }