X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fui%2Fgui%2Fpsppire-data-editor.c;h=b1526ac95af529f0c875208f061caf181cf4f8fe;hb=563b6160d2ed20120fbb62410a65e03c28537383;hp=26c375640580d527a0e435291f5a1b345c9b45f5;hpb=bea8b007855970c07083dbec5b5cc90f33990957;p=pspp diff --git a/src/ui/gui/psppire-data-editor.c b/src/ui/gui/psppire-data-editor.c index 26c3756405..b1526ac95a 100644 --- a/src/ui/gui/psppire-data-editor.c +++ b/src/ui/gui/psppire-data-editor.c @@ -32,6 +32,7 @@ #include "ui/gui/psppire-value-entry.h" #include "ui/gui/psppire-var-sheet.h" #include "ui/gui/psppire.h" +#include "ui/gui/psppire-conf.h" #include #define _(msgid) gettext (msgid) @@ -224,7 +225,11 @@ psppire_data_editor_get_property (GObject *object, static void psppire_data_editor_switch_page (GtkNotebook *notebook, +#if GTK_DISABLE_DEPRECATED && GTK_CHECK_VERSION(2,20,0) + gpointer page, +#else GtkNotebookPage *page, +#endif guint page_num) { GTK_NOTEBOOK_CLASS (parent_class)->switch_page (notebook, page, page_num); @@ -339,7 +344,7 @@ on_var_sheet_var_double_clicked (PsppireVarSheet *var_sheet, gint dict_index, PSPPIRE_DATA_EDITOR_DATA_VIEW); data_sheet = psppire_data_editor_get_active_data_sheet (de); - psppire_data_sheet_show_variable (data_sheet, dict_index); + psppire_data_sheet_goto_variable (data_sheet, dict_index); return TRUE; } @@ -564,13 +569,16 @@ disconnect_data_sheets (PsppireDataEditor *de) } static GtkWidget * -make_data_sheet (PsppireDataEditor *de, GtkTreeViewGridLines grid_lines) +make_data_sheet (PsppireDataEditor *de, GtkTreeViewGridLines grid_lines, + gboolean show_value_labels) { PsppSheetSelection *selection; GtkWidget *ds; ds = psppire_data_sheet_new (); pspp_sheet_view_set_grid_lines (PSPP_SHEET_VIEW (ds), grid_lines); + psppire_data_sheet_set_value_labels (PSPPIRE_DATA_SHEET (ds), + show_value_labels); g_signal_connect_swapped (ds, "notify::value-labels", G_CALLBACK (refresh_entry), de); @@ -585,11 +593,12 @@ make_data_sheet (PsppireDataEditor *de, GtkTreeViewGridLines grid_lines) } static GtkWidget * -make_single_datasheet (PsppireDataEditor *de, GtkTreeViewGridLines grid_lines) +make_single_datasheet (PsppireDataEditor *de, GtkTreeViewGridLines grid_lines, + gboolean show_value_labels) { GtkWidget *data_sheet_scroller; - de->data_sheets[0] = make_data_sheet (de, grid_lines); + de->data_sheets[0] = make_data_sheet (de, grid_lines, show_value_labels); de->data_sheets[1] = de->data_sheets[2] = de->data_sheets[3] = NULL; /* Put data sheet in scroller. */ @@ -602,7 +611,8 @@ make_single_datasheet (PsppireDataEditor *de, GtkTreeViewGridLines grid_lines) } static GtkWidget * -make_split_datasheet (PsppireDataEditor *de, GtkTreeViewGridLines grid_lines) +make_split_datasheet (PsppireDataEditor *de, GtkTreeViewGridLines grid_lines, + gboolean show_value_labels) { /* Panes, in the order in which we want to create them. */ enum @@ -625,7 +635,7 @@ make_split_datasheet (PsppireDataEditor *de, GtkTreeViewGridLines grid_lines) GtkPolicyType hpolicy, vpolicy; GtkWidget *scroller; - de->data_sheets[i] = make_data_sheet (de, grid_lines); + de->data_sheets[i] = make_data_sheet (de, grid_lines, show_value_labels); ds[i] = PSPP_SHEET_VIEW (de->data_sheets[i]); if (i == BL) @@ -688,11 +698,14 @@ make_split_datasheet (PsppireDataEditor *de, GtkTreeViewGridLines grid_lines) return GTK_WIDGET (xpaned); } +static void set_font_recursively (GtkWidget *w, gpointer data); + static void psppire_data_editor_init (PsppireDataEditor *de) { GtkWidget *var_sheet_scroller; GtkWidget *hbox; + gchar *fontname = NULL; de->font = NULL; de->ui_manager = NULL; @@ -714,7 +727,7 @@ psppire_data_editor_init (PsppireDataEditor *de) de->split = FALSE; de->datasheet_vbox_widget - = make_single_datasheet (de, GTK_TREE_VIEW_GRID_LINES_BOTH); + = make_single_datasheet (de, GTK_TREE_VIEW_GRID_LINES_BOTH, FALSE); de->vbox = gtk_vbox_new (FALSE, 0); gtk_box_pack_start (GTK_BOX (de->vbox), hbox, FALSE, FALSE, 0); @@ -742,6 +755,15 @@ psppire_data_editor_init (PsppireDataEditor *de) g_object_set (de, "can-focus", FALSE, NULL); + if (psppire_conf_get_string (psppire_conf_new (), + "Data Editor", "font", + &fontname) ) + { + de->font = pango_font_description_from_string (fontname); + g_free (fontname); + set_font_recursively (GTK_WIDGET (de), de->font); + } + psppire_data_editor_update_ui_manager (de); } @@ -793,11 +815,18 @@ set_font_recursively (GtkWidget *w, gpointer data) void psppire_data_editor_set_font (PsppireDataEditor *de, PangoFontDescription *font_desc) { + gchar *font_name; set_font_recursively (GTK_WIDGET (de), font_desc); if (de->font) pango_font_description_free (de->font); de->font = pango_font_description_copy (font_desc); + font_name = pango_font_description_to_string (de->font); + + psppire_conf_set_string (psppire_conf_new (), + "Data Editor", "font", + font_name); + } /* If SPLIT is TRUE, splits DE's data sheet into four panes. @@ -806,6 +835,7 @@ void psppire_data_editor_split_window (PsppireDataEditor *de, gboolean split) { GtkTreeViewGridLines grid_lines; + gboolean labels; if (split == de->split) return; @@ -813,6 +843,8 @@ psppire_data_editor_split_window (PsppireDataEditor *de, gboolean split) grid_lines = pspp_sheet_view_get_grid_lines ( PSPP_SHEET_VIEW (de->data_sheets[0])); + labels = psppire_data_sheet_get_value_labels (PSPPIRE_DATA_SHEET ( + de->data_sheets[0])); disconnect_data_sheets (de); if (de->old_vbox_widget) @@ -825,9 +857,9 @@ psppire_data_editor_split_window (PsppireDataEditor *de, gboolean split) gtk_container_remove (GTK_CONTAINER (de->vbox), de->datasheet_vbox_widget); if (split) - de->datasheet_vbox_widget = make_split_datasheet (de, grid_lines); + de->datasheet_vbox_widget = make_split_datasheet (de, grid_lines, labels); else - de->datasheet_vbox_widget = make_single_datasheet (de, grid_lines); + de->datasheet_vbox_widget = make_single_datasheet (de, grid_lines, labels); psppire_data_editor_refresh_model (de); @@ -854,7 +886,7 @@ psppire_data_editor_goto_variable (PsppireDataEditor *de, gint dict_index) { case PSPPIRE_DATA_EDITOR_DATA_VIEW: data_sheet = psppire_data_editor_get_active_data_sheet (de); - psppire_data_sheet_show_variable (data_sheet, dict_index); + psppire_data_sheet_goto_variable (data_sheet, dict_index); break; case PSPPIRE_DATA_EDITOR_VARIABLE_VIEW: