From f752c0f12b0e903eb958e48ec1b88e4bc70778f9 Mon Sep 17 00:00:00 2001 From: Miklos Vajna Date: Fri, 18 Sep 2015 10:58:24 +0200 Subject: [PATCH 152/398] gtktiledviewer: don't crash on opening non-existing files Change-Id: Ic48adaf038e8fbcc86a94b5e351d2f963fcfcd16 (cherry picked from commit 43b2103f932c92374e2ba2ab0ec1006582a0f646) --- libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx | 16 ++++++++++++++-- libreofficekit/source/gtk/lokdocview.cxx | 2 -- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx b/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx index 5a18aee50bf3..8e64972be17d 100644 --- a/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx +++ b/libreofficekit/qa/gtktiledviewer/gtktiledviewer.cxx @@ -553,8 +553,20 @@ static void openDocumentCallback (GObject* source_object, GAsyncResult* res, gpo if (!lok_doc_view_open_document_finish(pDocView, res, &error)) { - g_warning ("Error occurred while opening the document : %s", error->message); - g_error_free (error); + GtkDialogFlags eFlags = GTK_DIALOG_DESTROY_WITH_PARENT; + GtkWidget* pDialog = gtk_message_dialog_new(GTK_WINDOW(gtk_widget_get_toplevel(GTK_WIDGET(pDocView))), + eFlags, + GTK_MESSAGE_ERROR, + GTK_BUTTONS_CLOSE, + "Error occurred while opening the document: '%s'", + error->message); + gtk_dialog_run(GTK_DIALOG(pDialog)); + gtk_widget_destroy(pDialog); + + g_error_free(error); + gtk_widget_destroy(GTK_WIDGET(pDocView)); + gtk_main_quit(); + return; } populatePartSelector(pDocView); diff --git a/libreofficekit/source/gtk/lokdocview.cxx b/libreofficekit/source/gtk/lokdocview.cxx index f8202c339587..60304b4ff59c 100644 --- a/libreofficekit/source/gtk/lokdocview.cxx +++ b/libreofficekit/source/gtk/lokdocview.cxx @@ -1225,9 +1225,7 @@ openDocumentInThread (gpointer data) priv->m_pDocument = priv->m_pOffice->pClass->documentLoad( priv->m_pOffice, priv->m_aDocPath ); if ( !priv->m_pDocument ) { - // FIXME: should have a GError parameter and populate it. char *pError = priv->m_pOffice->pClass->getError( priv->m_pOffice ); - fprintf( stderr, "Error opening document '%s'\n", pError ); g_task_return_new_error(task, 0, 0, "%s", pError); } else -- 2.12.0