From 77f8d590d64320f587907322eb2aa9f88457e8c6 Mon Sep 17 00:00:00 2001 From: Tavmjong Bah Date: Tue, 6 Nov 2018 19:25:30 +0100 Subject: C++ify SVGViewWidget. Remove unused code. --- src/extension/internal/cdr-input.cpp | 67 +++++++++++++++++++++--------------- 1 file changed, 39 insertions(+), 28 deletions(-) (limited to 'src/extension/internal/cdr-input.cpp') diff --git a/src/extension/internal/cdr-input.cpp b/src/extension/internal/cdr-input.cpp index 25fc4e704..851ca16a6 100644 --- a/src/extension/internal/cdr-input.cpp +++ b/src/extension/internal/cdr-input.cpp @@ -55,7 +55,7 @@ #include "ui/dialog-events.h" #include -#include "svg-view-widget.h" +#include "ui/view/svg-view-widget.h" #include "object/sp-root.h" @@ -84,7 +84,7 @@ private: void _onSpinButtonRelease(GdkEventButton* button_event); class Gtk::VBox * vbox1; - class Gtk::Widget * _previewArea; + class Inkscape::UI::View::SVGViewWidget * _previewArea; class Gtk::Button * cancelbutton; class Gtk::Button * okbutton; @@ -99,7 +99,10 @@ private: }; CdrImportDialog::CdrImportDialog(const std::vector &vec) - : _vec(vec), _current_page(1), _spinning(false) + : _previewArea(nullptr) + , _vec(vec) + , _current_page(1) + , _spinning(false) { int num_pages = _vec.size(); if ( num_pages <= 1 ) @@ -114,9 +117,7 @@ CdrImportDialog::CdrImportDialog(const std::vector &vec) this->property_destroy_with_parent().set_value(false); // Preview area - _previewArea = Gtk::manage(new class Gtk::VBox()); vbox1 = Gtk::manage(new class Gtk::VBox()); - vbox1->pack_start(*_previewArea, Gtk::PACK_EXPAND_WIDGET, 0); this->get_content_area()->pack_start(*vbox1); // CONTROLS @@ -208,29 +209,39 @@ void CdrImportDialog::_onSpinButtonRelease(GdkEventButton* /*button_event*/) */ void CdrImportDialog::_setPreviewPage() { - if (_spinning) { - return; - } - - 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 = - "" - " " - " " - " %s" - ""; - 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; - vbox1->pack_start(*_previewArea, Gtk::PACK_EXPAND_WIDGET, 0); - _previewArea->show_now(); + if (_spinning) { + return; + } + + 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 = R"A( + + + + %s + + )A"; + gchar * no_preview = g_strdup_printf(no_preview_template, _("No preview")); + doc = SPDocument::createNewDocFromMem(no_preview, strlen(no_preview), 0); + g_free(no_preview); + } + + if (!doc) { + std::cerr << "CdrImportDialog::_setPreviewPage: No document!" << std::endl; + return; + } + + if (_previewArea) { + _previewArea->setDocument(doc); + } else { + _previewArea = Gtk::manage(new Inkscape::UI::View::SVGViewWidget(doc)); + vbox1->pack_start(*_previewArea, Gtk::PACK_EXPAND_WIDGET, 0); + } + + _previewArea->setResize(400, 400); + _previewArea->show_all(); } SPDocument *CdrInput::open(Inkscape::Extension::Input * /*mod*/, const gchar * uri) -- cgit v1.2.3