From 5d085e3326530983f7c2f3843dd2a1eebc0a6e73 Mon Sep 17 00:00:00 2001 From: John Darrington Date: Tue, 29 Dec 2015 12:31:46 +0100 Subject: [PATCH] Comments dialog: convert to PsppireDialogAction --- src/ui/gui/automake.mk | 4 +- src/ui/gui/comments-dialog.c | 247 ------------------- src/ui/gui/comments-dialog.h | 25 -- src/ui/gui/data-editor.ui | 3 +- src/ui/gui/psppire-data-window.c | 2 - src/ui/gui/psppire-dialog-action-comments.c | 254 ++++++++++++++++++++ src/ui/gui/psppire-dialog-action-comments.h | 75 ++++++ src/ui/gui/psppire-dialog-action.c | 7 +- src/ui/gui/widgets.c | 2 + 9 files changed, 339 insertions(+), 280 deletions(-) delete mode 100644 src/ui/gui/comments-dialog.c delete mode 100644 src/ui/gui/comments-dialog.h create mode 100644 src/ui/gui/psppire-dialog-action-comments.c create mode 100644 src/ui/gui/psppire-dialog-action-comments.h diff --git a/src/ui/gui/automake.mk b/src/ui/gui/automake.mk index c2577cb845..9903fd229b 100644 --- a/src/ui/gui/automake.mk +++ b/src/ui/gui/automake.mk @@ -151,8 +151,6 @@ src_ui_gui_psppire_SOURCES = \ src/ui/gui/psppire-import-assistant.h \ src/ui/gui/builder-wrapper.c \ src/ui/gui/builder-wrapper.h \ - src/ui/gui/comments-dialog.c \ - src/ui/gui/comments-dialog.h \ src/ui/gui/dialog-common.c \ src/ui/gui/dialog-common.h \ src/ui/gui/dict-display.h \ @@ -205,6 +203,8 @@ src_ui_gui_psppire_SOURCES = \ src/ui/gui/psppire-dialog-action-chisquare.h \ src/ui/gui/psppire-dialog-action-compute.c \ src/ui/gui/psppire-dialog-action-compute.h \ + src/ui/gui/psppire-dialog-action-comments.c \ + src/ui/gui/psppire-dialog-action-comments.h \ src/ui/gui/psppire-dialog-action-count.c \ src/ui/gui/psppire-dialog-action-count.h \ src/ui/gui/psppire-dialog-action-correlation.c \ diff --git a/src/ui/gui/comments-dialog.c b/src/ui/gui/comments-dialog.c deleted file mode 100644 index 58cf7e7f2a..0000000000 --- a/src/ui/gui/comments-dialog.c +++ /dev/null @@ -1,247 +0,0 @@ -/* PSPPIRE - a graphical user interface for PSPP. - Copyright (C) 2007, 2010, 2011, 2012, 2013 Free Software Foundation - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . */ - -#include - -#include "psppire-dialog.h" -#include "builder-wrapper.h" -#include "psppire-data-window.h" -#include "psppire-data-editor.h" -#include "executor.h" -#include "helper.h" -#include - -#include "comments-dialog.h" - -#include "dialog-common.h" - -#include - -#include - -#define _(msgid) gettext (msgid) -#define N_(msgid) msgid - - -struct comment_dialog -{ - GtkBuilder *xml; - PsppireDict *dict; -}; - -static void refresh (PsppireDialog *dialog, const struct comment_dialog *); -static char *generate_syntax (const struct comment_dialog *); - -static void -set_column_number (GtkTextBuffer *textbuffer, - GtkTextIter *iter, - GtkTextMark *mark, - gpointer data) -{ - GtkLabel *label = data; - gchar *text ; - - text = g_strdup_printf ( _("Column Number: %d"), - 1 + gtk_text_iter_get_line_offset (iter)); - - gtk_label_set_text (label, text); - - g_free (text); -} - -static void -wrap_line (GtkTextBuffer *buffer, - GtkTextIter *iter, - gchar *text, - gint count, - gpointer data) -{ - gint chars = gtk_text_iter_get_chars_in_line (iter); - - if ( chars > DOC_LINE_LENGTH ) - { - GtkTextIter line_fold = *iter; - - gtk_text_iter_set_line_offset (&line_fold, DOC_LINE_LENGTH); - - gtk_text_buffer_insert (buffer, &line_fold, "\r\n", 2); - } - -} - - -void -comments_dialog (PsppireDataWindow *de) -{ - GtkTextIter iter; - gint response ; - struct comment_dialog cd; - - GtkBuilder *xml = builder_new ("comments.ui"); - - GtkWidget *dialog = get_widget_assert (xml, "comments-dialog"); - GtkWidget *textview = get_widget_assert (xml, "comments-textview1"); - GtkWidget *label = get_widget_assert (xml, "column-number-label"); - GtkTextBuffer *buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (textview)); - - - gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (de)); - - { - PangoContext * context ; - PangoLayout * layout ; - PangoRectangle rect; - - /* Since we're going to truncate lines to 80 chars, - we need a monospaced font otherwise it'll look silly */ - PangoFontDescription *font_desc = - pango_font_description_from_string ("monospace"); - - gtk_widget_override_font (textview, font_desc); - - /* and let's just make sure that a complete line fits into the - widget's width */ - context = gtk_widget_create_pango_context (textview); - layout = pango_layout_new (context); - - pango_layout_set_text (layout, "M", 1); - - pango_layout_set_font_description (layout, font_desc); - - pango_layout_get_extents (layout, NULL, &rect); - - g_object_set (textview, "width-request", - PANGO_PIXELS (rect.width) * DOC_LINE_LENGTH + 20, NULL); - - g_object_unref (G_OBJECT (layout)); - g_object_unref (G_OBJECT (context)); - - pango_font_description_free (font_desc); - } - - cd.xml = xml; - g_object_get (de->data_editor, "dictionary", &cd.dict, NULL); - - g_signal_connect (buffer, "mark-set", - G_CALLBACK (set_column_number), label); - - g_signal_connect_after (buffer, "insert-text", - G_CALLBACK (wrap_line), NULL); - - gtk_text_buffer_get_iter_at_offset (buffer, &iter, 0); - gtk_text_buffer_place_cursor (buffer, &iter); - - - g_signal_connect (dialog, "refresh", G_CALLBACK (refresh), &cd); - - - response = psppire_dialog_run (PSPPIRE_DIALOG (dialog)); - - switch (response) - { - case GTK_RESPONSE_OK: - g_free (execute_syntax_string (de, generate_syntax (&cd))); - break; - case PSPPIRE_RESPONSE_PASTE: - g_free (paste_syntax_to_window (generate_syntax (&cd))); - break; - default: - break; - } - - - g_object_unref (xml); -} - - -static void -add_line_to_buffer (GtkTextBuffer *buffer, const char *line) -{ - gtk_text_buffer_insert_at_cursor (buffer, line, -1); - - gtk_text_buffer_insert_at_cursor (buffer, "\n", 1); -} - -static void -refresh (PsppireDialog *dialog, const struct comment_dialog *cd) -{ - gint i; - GtkWidget *tv = get_widget_assert (cd->xml, "comments-textview1"); - GtkTextBuffer *buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (tv)); - - gtk_text_buffer_set_text (buffer, "", 0); - - for ( i = 0 ; i < dict_get_document_line_cnt (cd->dict->dict); ++i ) - add_line_to_buffer (buffer, dict_get_document_line (cd->dict->dict, i)); -} - - - -static char * -generate_syntax (const struct comment_dialog *cd) -{ - gint i; - - GString *str; - gchar *text; - GtkWidget *tv = get_widget_assert (cd->xml, "comments-textview1"); - GtkWidget *check = get_widget_assert (cd->xml, "comments-checkbutton1"); - GtkTextBuffer *buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (tv)); - - str = g_string_new ("\n* Data File Comments.\n\n"); - - if (dict_get_documents (cd->dict->dict) != NULL) - g_string_append (str, "DROP DOCUMENTS.\n"); - - g_string_append (str, "ADD DOCUMENT\n"); - - for (i = 0 ; i < gtk_text_buffer_get_line_count (buffer) ; ++i ) - { - struct string tmp; - GtkTextIter start; - char *line; - - gtk_text_buffer_get_iter_at_line (buffer, &start, i); - if (gtk_text_iter_ends_line (&start)) - line = g_strdup (""); - else - { - GtkTextIter end = start; - gtk_text_iter_forward_to_line_end (&end); - line = gtk_text_buffer_get_text (buffer, &start, &end, FALSE); - } - - ds_init_empty (&tmp); - syntax_gen_string (&tmp, ss_cstr (line)); - g_free (line); - - g_string_append_printf (str, " %s\n", ds_cstr (&tmp)); - - ds_destroy (&tmp); - } - g_string_append (str, " .\n"); - - - - if ( gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (check))) - g_string_append (str, "DISPLAY DOCUMENTS.\n"); - - text = str->str; - - g_string_free (str, FALSE); - - return text; -} diff --git a/src/ui/gui/comments-dialog.h b/src/ui/gui/comments-dialog.h deleted file mode 100644 index 9295d4c3a2..0000000000 --- a/src/ui/gui/comments-dialog.h +++ /dev/null @@ -1,25 +0,0 @@ -/* PSPPIRE - a graphical user interface for PSPP. - Copyright (C) 2007 Free Software Foundation, Inc. - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . */ - - -#ifndef COMMENTS_DIALOG_H -#define COMMENTS_DIALOG_H - -#include "psppire-data-window.h" - -void comments_dialog (PsppireDataWindow * data); - -#endif /* COMMENTS_DIALOG_H */ diff --git a/src/ui/gui/data-editor.ui b/src/ui/gui/data-editor.ui index edca09d89c..8b0a29f9a0 100644 --- a/src/ui/gui/data-editor.ui +++ b/src/ui/gui/data-editor.ui @@ -529,7 +529,8 @@ - + + uimanager1 utilities_comments Data File _Comments... utilities-data-file-comments diff --git a/src/ui/gui/psppire-data-window.c b/src/ui/gui/psppire-data-window.c index 118387f97e..edf8783128 100644 --- a/src/ui/gui/psppire-data-window.c +++ b/src/ui/gui/psppire-data-window.c @@ -25,7 +25,6 @@ #include "libpspp/message.h" #include "libpspp/str.h" #include "ui/gui/builder-wrapper.h" -#include "ui/gui/comments-dialog.h" #include "ui/gui/entry-dialog.h" #include "ui/gui/executor.h" #include "ui/gui/help-menu.h" @@ -1046,7 +1045,6 @@ psppire_data_window_finish_init (PsppireDataWindow *de, connect_action (de, "data_select-cases", G_CALLBACK (select_cases_dialog)); connect_action (de, "data_split-file", G_CALLBACK (split_file_dialog)); - connect_action (de, "utilities_comments", G_CALLBACK (comments_dialog)); connect_action (de, "transform_recode-same", G_CALLBACK (recode_same_dialog)); connect_action (de, "transform_recode-different", G_CALLBACK (recode_different_dialog)); diff --git a/src/ui/gui/psppire-dialog-action-comments.c b/src/ui/gui/psppire-dialog-action-comments.c new file mode 100644 index 0000000000..4aad2a64f0 --- /dev/null +++ b/src/ui/gui/psppire-dialog-action-comments.c @@ -0,0 +1,254 @@ +/* PSPPIRE - a graphical user interface for PSPP. + Copyright (C) 2007, 2010, 2011, 2012, 2013, 2015 Free Software Foundation + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + + +#include + +#include "psppire-dialog-action-comments.h" +#include "psppire-selector.h" +#include "psppire-var-view.h" +#include "dict-display.h" + +#include "psppire-dialog.h" +#include "builder-wrapper.h" +#include + +#include +#define _(msgid) gettext (msgid) +#define N_(msgid) msgid + +static void psppire_dialog_action_comments_init (PsppireDialogActionComments *act); +static void psppire_dialog_action_comments_class_init (PsppireDialogActionCommentsClass *class); + +G_DEFINE_TYPE (PsppireDialogActionComments, psppire_dialog_action_comments, PSPPIRE_TYPE_DIALOG_ACTION); + +static char * +generate_syntax (PsppireDialogAction *pda) +{ + PsppireDialogActionComments *cd = PSPPIRE_DIALOG_ACTION_COMMENTS (pda); + gint i; + + GString *str; + gchar *text; + GtkTextBuffer *buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (cd->textview)); + + str = g_string_new ("\n* Data File Comments.\n\n"); + + if (dict_get_documents (pda->dict->dict) != NULL) + g_string_append (str, "DROP DOCUMENTS.\n"); + + g_string_append (str, "ADD DOCUMENT\n"); + + for (i = 0 ; i < gtk_text_buffer_get_line_count (buffer) ; ++i ) + { + struct string tmp; + GtkTextIter start; + char *line; + + gtk_text_buffer_get_iter_at_line (buffer, &start, i); + if (gtk_text_iter_ends_line (&start)) + line = g_strdup (""); + else + { + GtkTextIter end = start; + gtk_text_iter_forward_to_line_end (&end); + line = gtk_text_buffer_get_text (buffer, &start, &end, FALSE); + } + + ds_init_empty (&tmp); + syntax_gen_string (&tmp, ss_cstr (line)); + g_free (line); + + g_string_append_printf (str, " %s\n", ds_cstr (&tmp)); + + ds_destroy (&tmp); + } + g_string_append (str, " .\n"); + + + if ( gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (cd->check))) + g_string_append (str, "DISPLAY DOCUMENTS.\n"); + + text = str->str; + + g_string_free (str, FALSE); + + return text; +} + + +static gboolean +dialog_state_valid (gpointer data) +{ + return TRUE; +} + +static void +add_line_to_buffer (GtkTextBuffer *buffer, const char *line) +{ + gtk_text_buffer_insert_at_cursor (buffer, line, -1); + + gtk_text_buffer_insert_at_cursor (buffer, "\n", 1); +} + +static void +retrieve_comments (PsppireDialogAction *pda) +{ + PsppireDialogActionComments *wcd = PSPPIRE_DIALOG_ACTION_COMMENTS (pda); + gint i; + + GtkTextBuffer *buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (wcd->textview)); + + gtk_text_buffer_set_text (buffer, "", 0); + + for ( i = 0 ; i < dict_get_document_line_cnt (pda->dict->dict); ++i ) + add_line_to_buffer (buffer, dict_get_document_line (pda->dict->dict, i)); +} + + +static void +refresh (PsppireDialogAction *pda) +{ + PsppireDialogActionComments *act = PSPPIRE_DIALOG_ACTION_COMMENTS (pda); + + retrieve_comments (pda); + + gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (act->check), FALSE); +} + + +static void +set_column_number (GtkTextBuffer *textbuffer, + GtkTextIter *iter, + GtkTextMark *mark, + gpointer data) +{ + GtkLabel *label = data; + gchar *text ; + + text = g_strdup_printf ( _("Column Number: %d"), + 1 + gtk_text_iter_get_line_offset (iter)); + + gtk_label_set_text (label, text); + + g_free (text); +} + +static void +wrap_line (GtkTextBuffer *buffer, + GtkTextIter *iter, + gchar *text, + gint count, + gpointer data) +{ + gint chars = gtk_text_iter_get_chars_in_line (iter); + + if ( chars > DOC_LINE_LENGTH ) + { + GtkTextIter line_fold = *iter; + + gtk_text_iter_set_line_offset (&line_fold, DOC_LINE_LENGTH); + + gtk_text_buffer_insert (buffer, &line_fold, "\r\n", 2); + } +} + + +static void +psppire_dialog_action_comments_activate (PsppireDialogAction *pda) +{ + PsppireDialogActionComments *act = PSPPIRE_DIALOG_ACTION_COMMENTS (pda); + + GHashTable *thing = psppire_dialog_action_get_hash_table (pda); + GtkBuilder *xml = g_hash_table_lookup (thing, pda); + if (!xml) + { + GtkTextIter iter; + + xml = builder_new ("comments.ui"); + g_hash_table_insert (thing, pda, xml); + + pda->dialog = get_widget_assert (xml, "comments-dialog"); + act->textview = get_widget_assert (xml, "comments-textview1"); + GtkWidget *label = get_widget_assert (xml, "column-number-label"); + GtkTextBuffer *buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (act->textview)); + act->check = get_widget_assert (xml, "comments-checkbutton1"); + + g_signal_connect_swapped (pda->dialog, "show", G_CALLBACK (retrieve_comments), pda); + + { + PangoContext * context ; + PangoLayout * layout ; + PangoRectangle rect; + + /* Since we're going to truncate lines to 80 chars, + we need a monospaced font otherwise it'll look silly */ + PangoFontDescription *font_desc = + pango_font_description_from_string ("monospace"); + + gtk_widget_override_font (act->textview, font_desc); + + /* and let's just make sure that a complete line fits into the + widget's width */ + context = gtk_widget_create_pango_context (act->textview); + layout = pango_layout_new (context); + + pango_layout_set_text (layout, "M", 1); + + pango_layout_set_font_description (layout, font_desc); + + pango_layout_get_extents (layout, NULL, &rect); + + g_object_set (act->textview, "width-request", + PANGO_PIXELS (rect.width) * DOC_LINE_LENGTH + 20, NULL); + + g_object_unref (G_OBJECT (layout)); + g_object_unref (G_OBJECT (context)); + + pango_font_description_free (font_desc); + } + + g_signal_connect (buffer, "mark-set", + G_CALLBACK (set_column_number), label); + + g_signal_connect_after (buffer, "insert-text", + G_CALLBACK (wrap_line), NULL); + + gtk_text_buffer_get_iter_at_offset (buffer, &iter, 0); + gtk_text_buffer_place_cursor (buffer, &iter); + } + + psppire_dialog_action_set_valid_predicate (pda, dialog_state_valid); + psppire_dialog_action_set_refresh (pda, refresh); + + + + if (PSPPIRE_DIALOG_ACTION_CLASS (psppire_dialog_action_comments_parent_class)->activate) + PSPPIRE_DIALOG_ACTION_CLASS (psppire_dialog_action_comments_parent_class)->activate (pda); +} + +static void +psppire_dialog_action_comments_class_init (PsppireDialogActionCommentsClass *class) +{ + psppire_dialog_action_set_activation (class, psppire_dialog_action_comments_activate); + PSPPIRE_DIALOG_ACTION_CLASS (class)->generate_syntax = generate_syntax; +} + +static void +psppire_dialog_action_comments_init (PsppireDialogActionComments *act) +{ +} + diff --git a/src/ui/gui/psppire-dialog-action-comments.h b/src/ui/gui/psppire-dialog-action-comments.h new file mode 100644 index 0000000000..541b859ffe --- /dev/null +++ b/src/ui/gui/psppire-dialog-action-comments.h @@ -0,0 +1,75 @@ +/* PSPPIRE - a graphical user interface for PSPP. + Copyright (C) 2015 Free Software Foundation + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + + +#include +#include + +#include "psppire-dialog-action.h" + +#ifndef __PSPPIRE_DIALOG_ACTION_COMMENTS_H__ +#define __PSPPIRE_DIALOG_ACTION_COMMENTS_H__ + +G_BEGIN_DECLS + + +#define PSPPIRE_TYPE_DIALOG_ACTION_COMMENTS (psppire_dialog_action_comments_get_type ()) + +#define PSPPIRE_DIALOG_ACTION_COMMENTS(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST ((obj), \ + PSPPIRE_TYPE_DIALOG_ACTION_COMMENTS, PsppireDialogActionComments)) + +#define PSPPIRE_DIALOG_ACTION_COMMENTS_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST ((klass), \ + PSPPIRE_TYPE_DIALOG_ACTION_COMMENTS, \ + PsppireDialogActionCommentsClass)) + + +#define PSPPIRE_IS_DIALOG_ACTION_COMMENTS(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PSPPIRE_TYPE_DIALOG_ACTION_COMMENTS)) + +#define PSPPIRE_IS_DIALOG_ACTION_COMMENTS_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE ((klass), PSPPIRE_TYPE_DIALOG_ACTION_COMMENTS)) + + +#define PSPPIRE_DIALOG_ACTION_COMMENTS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), \ + PSPPIRE_TYPE_DIALOG_ACTION_COMMENTS, \ + PsppireDialogActionCommentsClass)) + +typedef struct _PsppireDialogActionComments PsppireDialogActionComments; +typedef struct _PsppireDialogActionCommentsClass PsppireDialogActionCommentsClass; + + +struct _PsppireDialogActionComments +{ + PsppireDialogAction parent; + + GtkWidget *textview; + GtkWidget *check; +}; + + +struct _PsppireDialogActionCommentsClass +{ + PsppireDialogActionClass parent_class; +}; + + +GType psppire_dialog_action_comments_get_type (void) ; + +G_END_DECLS + +#endif /* __PSPPIRE_DIALOG_ACTION_COMMENTS_H__ */ diff --git a/src/ui/gui/psppire-dialog-action.c b/src/ui/gui/psppire-dialog-action.c index 70b89ea286..6bd1645460 100644 --- a/src/ui/gui/psppire-dialog-action.c +++ b/src/ui/gui/psppire-dialog-action.c @@ -143,8 +143,8 @@ psppire_dialog_action_activate (PsppireDialogAction *act) set_toplevel (act); act->dict = PSPPIRE_DATA_WINDOW(act->toplevel)->dict; - - g_object_set (act->source, "model", act->dict, NULL); + if (act->source) + g_object_set (act->source, "model", act->dict, NULL); GSList *wl = g_object_get_data (G_OBJECT (act->toplevel), "widget-list"); wl = g_slist_prepend (wl, act->dialog); @@ -155,7 +155,8 @@ psppire_dialog_action_activate (PsppireDialogAction *act) if (GTK_ACTION_CLASS (psppire_dialog_action_parent_class)->activate) GTK_ACTION_CLASS (psppire_dialog_action_parent_class)->activate ( GTK_ACTION (act)); - gtk_widget_grab_focus (act->source); + if (act->source) + gtk_widget_grab_focus (act->source); if (first_time) psppire_dialog_reload (PSPPIRE_DIALOG (act->dialog)); diff --git a/src/ui/gui/widgets.c b/src/ui/gui/widgets.c index 7161a0d113..82e90ed88e 100644 --- a/src/ui/gui/widgets.c +++ b/src/ui/gui/widgets.c @@ -22,6 +22,7 @@ #include "psppire-dialog-action-binomial.h" #include "psppire-dialog-action-chisquare.h" #include "psppire-dialog-action-compute.h" +#include "psppire-dialog-action-comments.h" #include "psppire-dialog-action-correlation.h" #include "psppire-dialog-action-count.h" #include "psppire-dialog-action-crosstabs.h" @@ -80,6 +81,7 @@ preregister_widgets (void) psppire_dialog_action_binomial_get_type (); psppire_dialog_action_barchart_get_type (); psppire_dialog_action_chisquare_get_type (); + psppire_dialog_action_comments_get_type (); psppire_dialog_action_compute_get_type (); psppire_dialog_action_correlation_get_type (); psppire_dialog_action_count_get_type (); -- 2.30.2