From 1602477dfd4371a17639b0b6e4f59f5a5ea9565a Mon Sep 17 00:00:00 2001 From: Tavmjong Bah Date: Fri, 15 Mar 2019 15:21:30 +0100 Subject: Make InkscapeApplication responsible for managing documents and windows. Any change from previous behavior is a bug. --- src/extension/dbus/document-interface.cpp | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'src/extension/dbus/document-interface.cpp') diff --git a/src/extension/dbus/document-interface.cpp b/src/extension/dbus/document-interface.cpp index bb888d4e2..a22585cb4 100644 --- a/src/extension/dbus/document-interface.cpp +++ b/src/extension/dbus/document-interface.cpp @@ -19,10 +19,10 @@ #include #include -#include #include //#include "2geom/svg-path-parser.h" //get_node_coordinates +#include "inkscape-application.h" // create_window() #include "application-interface.h" #include "desktop-style.h" //sp_desktop_get_style @@ -930,12 +930,21 @@ document_interface_save (DocumentInterface *doc_interface, GError **error) gboolean document_interface_load(DocumentInterface *doc_interface, gchar *filename, GError ** /*error*/) { + if (!filename) { + return false; + } + SPDesktop *desk = doc_interface->target.getDesktop(); if (desk) { desktop_ensure_active(desk); } - const Glib::ustring file(filename); - sp_file_open(file, NULL, TRUE, TRUE); + + Glib::RefPtr file = Gio::File::create_for_path(filename); + + ConcreteInkscapeApplication* app = &(ConcreteInkscapeApplication::get_instance()); + + app->create_window(file); + if (doc_interface->updates) { Inkscape::DocumentUndo::done(doc_interface->target.getDocument(), SP_VERB_FILE_OPEN, "Opened File"); } -- cgit v1.2.3