{
struct psppire_output_driver *pod = psppire_output_cast (this);
PsppireOutputWindow *window;
+ bool new;
- if (pod->window == NULL)
+ new = pod->window == NULL;
+ if (new)
{
pod->window = PSPPIRE_OUTPUT_WINDOW (psppire_output_window_new ());
- gtk_widget_show_all (GTK_WIDGET (pod->window));
pod->window->driver = pod;
}
window = pod->window;
psppire_output_view_put (window->view, item);
+ if (new)
+ {
+ /* We could have called this earlier in the previous "if (new)" block,
+ but doing it here finds, in a plain GTK+ environment, a bug that
+ otherwise only showed up on an Ubuntu Unity desktop. See bug
+ #43362. */
+ gtk_widget_show_all (GTK_WIDGET (pod->window));
+ }
+
gtk_window_set_urgency_hint (GTK_WINDOW (pod->window), TRUE);
}
FT_HTML,
FT_ODT,
FT_TXT,
+ FT_ASCII,
FT_PS,
FT_CSV,
n_FT
{N_("HTML (*.html)"), ".html"},
{N_("OpenDocument (*.odt)"), ".odt"},
{N_("Text (*.txt)"), ".txt"},
+ {N_("Text [plain] (*.txt)"), ".txt"},
{N_("PostScript (*.ps)"), ".ps"},
{N_("Comma-Separated Values (*.csv)"), ".csv"}
};
GtkWidget *dialog = gtk_file_chooser_dialog_new (_("Export Output"),
GTK_WINDOW (window),
GTK_FILE_CHOOSER_ACTION_SAVE,
- GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
- GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT,
+ _("Cancel"), GTK_RESPONSE_CANCEL,
+ _("Save"), GTK_RESPONSE_ACCEPT,
NULL);
g_object_set (dialog, "local-only", FALSE, NULL);
break;
case FT_TXT:
+ string_map_insert (&options, "box", "unicode");
+ /* Fall through */
+
+ case FT_ASCII:
string_map_insert (&options, "headers", "false");
string_map_insert (&options, "paginate", "false");
string_map_insert (&options, "squeeze", "true");
static void
psppire_output_window_init (PsppireOutputWindow *window)
{
- GtkBuilder *xml;
-
- xml = builder_new ("output-window.ui");
+ GtkBuilder *xml = builder_new ("output-window.ui");
- gtk_widget_reparent (get_widget_assert (xml, "vbox1"), GTK_WIDGET (window));
+ GtkWidget *box = get_widget_assert (xml, "box1");
+ gtk_container_add (GTK_CONTAINER (window), box);
window->dispose_has_run = FALSE;
NULL);
{
+ GtkWidget *w;
GtkUIManager *uim = GTK_UI_MANAGER (get_object_assert (xml, "uimanager1", GTK_TYPE_UI_MANAGER));
- merge_help_menu (uim);
+
+ GtkWidget *menubar = get_widget_assert (xml, "menubar");
+
+ gtk_menu_shell_append (GTK_MENU_SHELL (menubar), create_help_menu (GTK_WINDOW (window)));
+
+ w = gtk_ui_manager_get_widget (uim,"/ui/menubar/windows_menuitem/windows_minimise-all");
PSPPIRE_WINDOW (window)->menu =
- GTK_MENU_SHELL (gtk_ui_manager_get_widget (uim,"/ui/menubar/windows_menuitem/windows_minimise-all")->parent);
+ GTK_MENU_SHELL (gtk_widget_get_parent (w));
}
g_signal_connect_swapped (get_action_assert (xml, "file_export"), "activate",