transformations_pending);
}
- if ( transformations_pending)
+ if (transformations_pending)
gtk_label_set_text (GTK_LABEL (status_label),
_("Transformations Pending"));
else
GtkWidget *filter_status_area =
get_widget_assert (de->builder, "filter-use-status-area");
- if ( filter_index == -1 )
+ if (filter_index == -1)
{
gtk_label_set_text (GTK_LABEL (filter_status_area), _("Filter off"));
}
GtkWidget *split_status_area =
get_widget_assert (de->builder, "split-file-status-area");
- if ( n_split_vars == 0 )
+ if (n_split_vars == 0)
{
gtk_label_set_text (GTK_LABEL (split_status_area), _("No Split"));
}
text = g_string_new (_("Split by "));
- for (i = 0 ; i < n_split_vars - 1; ++i )
+ for (i = 0 ; i < n_split_vars - 1; ++i)
{
g_string_append_printf (text, "%s, ", var_get_name (split_vars[i]));
}
GtkWidget *weight_status_area =
get_widget_assert (de->builder, "weight-status-area");
- if ( weight_index == -1 )
+ if (weight_index == -1)
{
gtk_label_set_text (GTK_LABEL (weight_status_area), _("Weights off"));
}
gtk_recent_info_get_mime_type (ri),
gtk_recent_info_get_description (ri),
gtk_recent_info_get_uri (ri)
- );
+ );
gtk_recent_info_unref (ri);
fnx = g_string_new (file_name);
- if ( ! name_has_suffix (fnx->str))
+ if (! name_has_suffix (fnx->str))
g_string_append (fnx, psppire_data_window_format_to_string (de->format));
ds_init_empty (&filename);
{
GtkWidget *dialog = psppire_window_file_chooser_dialog (PSPPIRE_WINDOW (de));
- if ( GTK_RESPONSE_ACCEPT == gtk_dialog_run (GTK_DIALOG (dialog)))
+ if (GTK_RESPONSE_ACCEPT == gtk_dialog_run (GTK_DIALOG (dialog)))
{
struct string filename;
gchar *file_name =
g_string_new
(
gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog))
- );
+ );
GtkTreeIter iter;
int format;
-1);
de->format = format;
- if ( ! name_has_suffix (filename->str))
+ if (! name_has_suffix (filename->str))
g_string_append (filename,
psppire_data_window_format_to_string (format));
gtk_window_set_transient_for (GTK_WINDOW (dialog),
GTK_WINDOW (toplevel));
- if ( GTK_RESPONSE_OK == gtk_dialog_run (GTK_DIALOG (dialog)) )
+ if (GTK_RESPONSE_OK == gtk_dialog_run (GTK_DIALOG (dialog)))
{
PangoFontDescription* font_desc = gtk_font_chooser_get_font_desc (GTK_FONT_CHOOSER (dialog));
se = psppire_syntax_window_new (encoding);
- free (encoding);
-
- if ( psppire_window_load (PSPPIRE_WINDOW (se), file, encoding, NULL) )
+ if (psppire_window_load (PSPPIRE_WINDOW (se), file, encoding, NULL))
gtk_widget_show (se);
else
gtk_widget_destroy (se);
+ g_free (encoding);
g_free (file);
}
modify the menu as part of the "filename" property_set() function and end up
with a Gtk-CRITICAL since 'menu' is NULL. */
static void
-psppire_data_window_init (PsppireDataWindow *de)
+psppire_data_window_init (PsppireDataWindow *dw)
{
- de->builder = builder_new ("data-editor.ui");
+ dw->dispose_has_run = FALSE;
+
+ dw->builder = builder_new ("data-editor.ui");
}
static void
static void
-set_data_page (PsppireDataWindow *dw)
+on_realize (PsppireDataWindow *dw)
{
gtk_notebook_set_current_page (GTK_NOTEBOOK (dw->data_editor), 1);
- gtk_notebook_set_current_page (GTK_NOTEBOOK (dw->data_editor), 0);
}
if (p == PSPPIRE_DATA_EDITOR_DATA_VIEW)
{
SswRange *range = SSW_SHEET(de->data_sheet)->selection;
+ g_return_if_fail (range->start_y >= 0);
psppire_data_store_delete_cases (de->data_store, range->start_y,
range->end_y - range->start_y + 1);
gtk_widget_queue_draw (GTK_WIDGET (de->data_sheet));
else
{
SswRange *range = SSW_SHEET(de->var_sheet)->selection;
- psppire_data_editor_insert_new_variable_at_posn (de, range->start_y);
+ PsppireDict *dict = NULL;
+ g_object_get (de->var_sheet, "data-model", &dict, NULL);
+ psppire_dict_insert_variable (dict, range->start_y, NULL);
+ gtk_widget_queue_draw (GTK_WIDGET (de->var_sheet));
}
}
}
GtkWidget *open = gtk_menu_item_new_with_mnemonic (_("_Open"));
- connect_action_to_menuitem (G_ACTION_MAP (dw), "open", open, "<Ctrl>O");
+ connect_action_to_menuitem (G_ACTION_MAP (dw), "open", open, "<Primary>O");
GtkWidget *import = gtk_menu_item_new_with_mnemonic (_("_Import Data..."));
connect_action_to_menuitem (G_ACTION_MAP (dw), "file-import", import, 0);
gtk_menu_attach (GTK_MENU (menu), gtk_separator_menu_item_new (), 0, 1, 3, 4);
GtkWidget *save = gtk_menu_item_new_with_mnemonic (_("_Save..."));
- connect_action_to_menuitem (G_ACTION_MAP (dw), "save", save, "<Ctrl>S");
+ connect_action_to_menuitem (G_ACTION_MAP (dw), "save", save, "<Primary>S");
GtkWidget *save_as = gtk_menu_item_new_with_mnemonic (_("Save _As..."));
- connect_action_to_menuitem (G_ACTION_MAP (dw), "save-as", save_as, "<Shift><Ctrl>S");
+ connect_action_to_menuitem (G_ACTION_MAP (dw), "save-as", save_as, "<Shift><Primary>S");
GtkWidget *rename_dataset = gtk_menu_item_new_with_mnemonic (_("_Rename Dataset..."));
connect_action_to_menuitem (G_ACTION_MAP (dw), "rename-dataset", rename_dataset, 0);
gtk_menu_attach (GTK_MENU (menu), quit, 0, 1, 13, 14);
connect_action_to_menuitem (G_ACTION_MAP (g_application_get_default ()),
- "quit", quit, "<Ctrl>Q");
+ "quit", quit, "<Primary>Q");
}
g_object_set (menuitem, "submenu", menu, NULL);
{
GtkAccelGroup *ag = gtk_accel_group_new ();
+ guint key;
+ GdkModifierType modifier;
dw->mi_edit_separator = gtk_separator_menu_item_new ();
gtk_menu_attach (GTK_MENU (menu), dw->mi_edit_separator, 0, 1, i, i + 1); ++i;
g_signal_connect_swapped (dw->mi_cut, "activate", G_CALLBACK (on_cut), dw);
gtk_window_add_accel_group (GTK_WINDOW (dw), ag);
+ gtk_accelerator_parse ("<Primary>X", &key, &modifier);
gtk_widget_add_accelerator (dw->mi_cut, "activate", ag,
- 'X', GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE);
+ key, modifier, GTK_ACCEL_VISIBLE);
dw->mi_copy = gtk_menu_item_new_with_mnemonic (_("_Copy"));
gtk_menu_attach (GTK_MENU (menu), dw->mi_copy, 0, 1, i, i + 1); ++i;
g_signal_connect_swapped (dw->mi_copy, "activate", G_CALLBACK (on_copy), dw);
+ gtk_accelerator_parse ("<Primary>C", &key, &modifier);
gtk_widget_add_accelerator (dw->mi_copy, "activate", ag,
- 'C', GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE);
+ key, modifier, GTK_ACCEL_VISIBLE);
dw->mi_paste = gtk_menu_item_new_with_mnemonic (_("_Paste"));
gtk_menu_attach (GTK_MENU (menu), dw->mi_paste, 0, 1, i, i + 1); ++i;
g_signal_connect_swapped (dw->mi_paste, "activate", G_CALLBACK (on_paste), dw);
+ gtk_accelerator_parse ("<Primary>V", &key, &modifier);
gtk_widget_add_accelerator (dw->mi_paste, "activate", ag,
- 'V', GDK_CONTROL_MASK, GTK_ACCEL_VISIBLE);
+ key, modifier, GTK_ACCEL_VISIBLE);
dw->mi_clear_variables = gtk_menu_item_new_with_mnemonic (_("Clear _Variables"));
gtk_menu_attach (GTK_MENU (menu), dw->mi_clear_variables, 0, 1, i, i + 1); ++i;
dw->mi_clear_cases = gtk_menu_item_new_with_mnemonic (_("Cl_ear Cases"));
gtk_menu_attach (GTK_MENU (menu), dw->mi_clear_cases, 0, 1, i, i + 1); ++i;
g_signal_connect_swapped (dw->mi_clear_cases, "activate", G_CALLBACK (on_clear_cases), dw);
+ g_object_unref (ag);
}
{
PSPPIRE_DATA_EDITOR (psppire_data_editor_new (de->dict, de->data_store));
g_signal_connect (de, "realize",
- G_CALLBACK (set_data_page), de);
+ G_CALLBACK (on_realize), de);
g_signal_connect_swapped (de->data_store, "case-changed",
G_CALLBACK (set_unsaved), de);
{
PsppireDataWindow *dw = PSPPIRE_DATA_WINDOW (object);
- if (dw->builder != NULL)
- {
- g_object_unref (dw->builder);
- dw->builder = NULL;
- }
+ if (dw->dispose_has_run)
+ return;
+ dw->dispose_has_run = TRUE;
+
+ g_object_unref (dw->builder);
if (dw->dict)
{
G_CALLBACK (on_split_change), dw);
g_object_unref (dw->dict);
- dw->dict = NULL;
}
- if (dw->data_store)
- {
- g_object_unref (dw->data_store);
- dw->data_store = NULL;
- }
-
- if (dw->ll.next != NULL)
- {
- ll_remove (&dw->ll);
- dw->ll.next = NULL;
- }
+ g_object_unref (dw->data_store);
if (G_OBJECT_CLASS (parent_class)->dispose)
G_OBJECT_CLASS (parent_class)->dispose (object);
dataset_destroy (dataset);
}
+ if (dw->ll.next != NULL)
+ {
+ ll_remove (&dw->ll);
+ dw->ll.next = NULL;
+ }
+
if (G_OBJECT_CLASS (parent_class)->finalize)
G_OBJECT_CLASS (parent_class)->finalize (object);
}
&& psppire_data_window_is_empty (PSPPIRE_DATA_WINDOW (victim)))
{
window = GTK_WIDGET (victim);
- gtk_widget_hide (GTK_WIDGET (PSPPIRE_DATA_WINDOW (window)->data_editor));
}
else
window = psppire_data_window_new (NULL);
psppire_window_load (PSPPIRE_WINDOW (window), file_name, encoding, hint);
- gtk_widget_show_all (window);
return GTK_WINDOW (window);
}