static void set_initial_selection (ETableClickToAdd *etcta) { e_selection_model_do_something ( E_SELECTION_MODEL (etcta->selection), 0, e_table_header_prioritized_column (etcta->eth), 0); }
static gint model_changed_idle (ETableSelectionModel *etsm) { ETableModel *etm = etsm->model; e_selection_model_clear (E_SELECTION_MODEL (etsm)); if (etsm->cursor_id && etm && e_table_model_has_save_id (etm)) { gint row_count = e_table_model_row_count (etm); gint cursor_row = -1; gint cursor_col = -1; gint i; e_selection_model_array_confirm_row_count (E_SELECTION_MODEL_ARRAY (etsm)); for (i = 0; i < row_count; i++) { gchar *save_id = e_table_model_get_save_id (etm, i); if (g_hash_table_lookup (etsm->hash, save_id)) e_selection_model_change_one_row (E_SELECTION_MODEL (etsm), i, TRUE); if (etsm->cursor_id && !strcmp (etsm->cursor_id, save_id)) { cursor_row = i; cursor_col = e_selection_model_cursor_col (E_SELECTION_MODEL (etsm)); if (cursor_col == -1) { if (etsm->eth) { cursor_col = e_table_header_prioritized_column (etsm->eth); } else cursor_col = 0; } e_selection_model_change_cursor (E_SELECTION_MODEL (etsm), cursor_row, cursor_col); g_free (etsm->cursor_id); etsm->cursor_id = NULL; } g_free (save_id); } free_hash (etsm); e_selection_model_cursor_changed (E_SELECTION_MODEL (etsm), cursor_row, cursor_col); e_selection_model_selection_changed (E_SELECTION_MODEL (etsm)); } etsm->model_changed_idle_id = 0; return FALSE; }