static void account_chooser_update_iter (EmpathyAccountChooser *chooser, GtkTreeIter *iter) { EmpathyAccountChooserPriv *priv; GtkListStore *store; GtkComboBox *combobox; TpAccount *account; FilterResultCallbackData *data; priv = GET_PRIV (chooser); combobox = GTK_COMBO_BOX (chooser); store = GTK_LIST_STORE (gtk_combo_box_get_model (combobox)); gtk_tree_model_get (GTK_TREE_MODEL (store), iter, COL_ACCOUNT_POINTER, &account, -1); /* Skip rows without account associated */ if (account == NULL) return; data = filter_result_callback_data_new (chooser, account, iter); if (priv->filter) priv->filter (account, account_chooser_filter_ready_cb, (gpointer) data, priv->filter_data); else account_chooser_filter_ready_cb (TRUE, (gpointer) data); g_object_unref (account); }
static void account_chooser_update_iter (EmpathyAccountChooser *chooser, GtkTreeIter *iter) { EmpathyAccountChooserPriv *priv; GtkListStore *store; GtkComboBox *combobox; EmpathyAccount *account; const gchar *icon_name; gboolean is_enabled = TRUE; priv = GET_PRIV (chooser); combobox = GTK_COMBO_BOX (chooser); store = GTK_LIST_STORE (gtk_combo_box_get_model (combobox)); gtk_tree_model_get (GTK_TREE_MODEL (store), iter, COL_ACCOUNT_POINTER, &account, -1); icon_name = empathy_icon_name_from_account (account); if (priv->filter) { is_enabled = priv->filter (account, priv->filter_data); } gtk_list_store_set (store, iter, COL_ACCOUNT_IMAGE, icon_name, COL_ACCOUNT_TEXT, empathy_account_get_display_name (account), COL_ACCOUNT_ENABLED, is_enabled, -1); /* set first connected account as active account */ if (priv->set_active_item == FALSE && is_enabled) { priv->set_active_item = TRUE; gtk_combo_box_set_active_iter (combobox, iter); } g_object_unref (account); }