static void dialog_cell_sort_load_sort_setup (SortFlowState *state, GnmSortData const *data) { int i; GnmSortClause *this = data->clauses; gint base, max, index; Sheet *sheet = state->sel->v_range.cell.a.sheet; if (sheet == NULL) sheet = state->sheet; go_locale_sel_set_locale (state->locale_selector, data->locale); gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON (state->retain_format_check), data->retain_formats); gtk_toggle_button_set_active ( GTK_TOGGLE_BUTTON (state->cell_sort_row_rb), !data->top); state->is_cols = data->top; index = (data->top ? state->sel->v_range.cell.a.row : state->sel->v_range.cell.a.col); base = (data->top ? state->sel->v_range.cell.a.col : state->sel->v_range.cell.a.row); max = (data->top ? state->sel->v_range.cell.b.col : state->sel->v_range.cell.b.row); gtk_list_store_clear (state->model); state->sort_items = 0; for (i = 0; i < data->num_clause; i++) { if (data->clauses[i].offset <= max ) { GtkTreeIter iter; gchar *str, *header; int id = data->clauses[i].offset + base; header = state->is_cols ? header_name (sheet, id, index) : header_name (sheet, index, id); str = col_row_name (sheet, id, id, FALSE, state->is_cols); gtk_list_store_append (state->model, &iter); gtk_list_store_set (state->model, &iter, ITEM_HEADER, header, ITEM_NAME, str, ITEM_DESCENDING, data->clauses[i].asc, ITEM_DESCENDING_IMAGE, !data->clauses[i].asc ? state->image_ascending : state->image_descending, ITEM_CASE_SENSITIVE, data->clauses[i].cs, ITEM_SORT_BY_VALUE, data->clauses[i].val, ITEM_MOVE_FORMAT, TRUE, ITEM_NUMBER, id, -1); state->sort_items++; } this++; } set_button_sensitivity (state); }
void stf_dialog_format_page_init (GtkBuilder *gui, StfDialogData *pagedata) { /* GtkWidget * format_hbox; */ g_return_if_fail (gui != NULL); g_return_if_fail (pagedata != NULL); /* Create/get object and fill information struct */ pagedata->format.col_import_array = NULL; pagedata->format.col_autofit_array = NULL; pagedata->format.col_import_array_len = 0; pagedata->format.col_import_count = 0; pagedata->format.col_header = _("Column %d"); pagedata->format.format_data_container = go_gtk_builder_get_widget (gui, "format_data_container"); pagedata->format.format_trim = go_gtk_builder_get_widget (gui, "format_trim"); pagedata->format.column_selection_label = go_gtk_builder_get_widget (gui, "column_selection_label"); pagedata->format.locale_selector = GO_LOCALE_SEL (go_locale_sel_new ()); if (pagedata->locale && !go_locale_sel_set_locale (pagedata->format.locale_selector, pagedata->locale)) { g_free (pagedata->locale); pagedata->locale = go_locale_sel_get_locale (pagedata->format.locale_selector); } gtk_grid_attach ( GTK_GRID (go_gtk_builder_get_widget (gui, "locale-grid")), GTK_WIDGET (pagedata->format.locale_selector), 3, 0, 1, 1); gtk_widget_show_all (GTK_WIDGET (pagedata->format.locale_selector)); gtk_widget_set_sensitive (GTK_WIDGET (pagedata->format.locale_selector), !pagedata->fixed_locale); /* Set properties */ pagedata->format.renderdata = stf_preview_new (pagedata->format.format_data_container, workbook_date_conv (wb_control_get_workbook (WORKBOOK_CONTROL (pagedata->wbcg)))); pagedata->format.formats = g_ptr_array_new (); pagedata->format.index = -1; pagedata->format.manual_change = FALSE; /* Update widgets before connecting signals, see #333407. */ gtk_combo_box_set_active (GTK_COMBO_BOX (pagedata->format.format_trim), 0); format_page_update_column_selection (pagedata); /* Connect signals */ g_signal_connect (G_OBJECT (pagedata->format.locale_selector), "locale_changed", G_CALLBACK (locale_changed_cb), pagedata); g_signal_connect (G_OBJECT (pagedata->format.format_trim), "changed", G_CALLBACK (format_page_trim_menu_changed), pagedata); g_signal_connect (G_OBJECT (pagedata->format.renderdata->tree_view), "button_press_event", G_CALLBACK (cb_treeview_button_press), pagedata); g_signal_connect (G_OBJECT (pagedata->format.renderdata->tree_view), "key_press_event", G_CALLBACK (cb_treeview_key_press), pagedata); }