diff options
| author | Eduard Braun <eduard.braun2@gmx.de> | 2017-04-30 15:40:28 +0000 |
|---|---|---|
| committer | Eduard Braun <eduard.braun2@gmx.de> | 2017-04-30 15:40:28 +0000 |
| commit | 957df000b3fe2c65d773ef5117a4a3dd376d42aa (patch) | |
| tree | b613c4afd9c7efefb406c85f765f4cd59fe52867 /src/extension/internal/cdr-input.cpp | |
| parent | cmake: do not intalls header files generated by i18n.py (filters.svg.h, palle... (diff) | |
| download | inkscape-957df000b3fe2c65d773ef5117a4a3dd376d42aa.tar.gz inkscape-957df000b3fe2c65d773ef5117a4a3dd376d42aa.zip | |
CDR/VSD input: Avoid crash when preview image can not be rendered and show a placeholder instead
(bzr r15653)
Diffstat (limited to 'src/extension/internal/cdr-input.cpp')
| -rw-r--r-- | src/extension/internal/cdr-input.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/extension/internal/cdr-input.cpp b/src/extension/internal/cdr-input.cpp index 70bf84ef4..b94408b36 100644 --- a/src/extension/internal/cdr-input.cpp +++ b/src/extension/internal/cdr-input.cpp @@ -210,6 +210,19 @@ void CdrImportDialog::_setPreviewPage() } SPDocument *doc = SPDocument::createNewDocFromMem(_vec[_current_page-1].cstr(), strlen(_vec[_current_page-1].cstr()), 0); + if(!doc) { + g_warning("CDR import: Could not create preview for page %d", _current_page); + gchar const *no_preview_template = + "<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'>" + " <path style='fill:none;stroke:#ff0000;stroke-width:2px;' d='M 82,10 18,74 m 0,-64 64,64' />" + " <rect style='fill:none;stroke:#000000;stroke-width:1.5px;' width='64' height='64' x='18' y='10' />" + " <text x='50' y='92' style='font-size:10px;text-anchor:middle;font-family:sans-serif;'>%s</text>" + "</svg>"; + gchar * no_preview = g_strdup_printf(no_preview_template, _("No preview")); + doc = SPDocument::createNewDocFromMem(no_preview, strlen(no_preview), 0); + g_free(no_preview); + } + Gtk::Widget * tmpPreviewArea = Glib::wrap(sp_svg_view_widget_new(doc)); std::swap(_previewArea, tmpPreviewArea); delete tmpPreviewArea; |
