aboutsummaryrefslogtreecommitdiff
path: root/src/narrative_window.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/narrative_window.c')
-rw-r--r--src/narrative_window.c21
1 files changed, 18 insertions, 3 deletions
diff --git a/src/narrative_window.c b/src/narrative_window.c
index 42084b8..1b26b62 100644
--- a/src/narrative_window.c
+++ b/src/narrative_window.c
@@ -58,6 +58,22 @@ struct _narrative_window
};
+static void show_error(NarrativeWindow *nw, const char *err)
+{
+ GtkWidget *mw;
+
+ mw = gtk_message_dialog_new(GTK_WINDOW(nw->window),
+ GTK_DIALOG_DESTROY_WITH_PARENT,
+ GTK_MESSAGE_ERROR,
+ GTK_BUTTONS_CLOSE, err);
+
+ g_signal_connect_swapped(mw, "response",
+ G_CALLBACK(gtk_widget_destroy), mw);
+
+ gtk_widget_show(mw);
+}
+
+
static void update_toolbar(NarrativeWindow *nw)
{
int cur_para;
@@ -89,7 +105,7 @@ static gint saveas_response_sig(GtkWidget *d, gint response,
GFile *file = gtk_file_chooser_get_file(GTK_FILE_CHOOSER(d));
if ( save_presentation(nw->p, file) ) {
- //show_error(sw, "Failed to save presentation");
+ show_error(nw, "Failed to save presentation");
}
g_object_unref(file);
@@ -132,8 +148,7 @@ static void save_sig(GSimpleAction *action, GVariant *parameter, gpointer vp)
return saveas_sig(NULL, NULL, nw);
}
- /* FIXME: Do this properly with GFile */
- file = g_file_new_for_path(nw->p->filename);
+ file = g_file_new_for_uri(nw->p->filename);
save_presentation(nw->p, file);
g_object_unref(file);
}