From 0c63ba89a507f817dcd7b54cf60af8951e14e2c9 Mon Sep 17 00:00:00 2001 From: Jabier Arraiza Date: Sat, 22 Sep 2018 13:17:10 +0200 Subject: Allow ask for SVG dragged import method. Also split ask question from one to 2 (Bitmap and SVG) --- src/extension/internal/svg.cpp | 10 +++++----- src/extension/system.cpp | 3 ++- src/preferences-skeleton.h | 2 +- src/ui/dialog/inkscape-preferences.cpp | 5 ++++- src/ui/dialog/inkscape-preferences.h | 1 + src/ui/interface.cpp | 6 ++++++ 6 files changed, 19 insertions(+), 8 deletions(-) (limited to 'src') diff --git a/src/extension/internal/svg.cpp b/src/extension/internal/svg.cpp index 3f6a342de..d392d6bf0 100644 --- a/src/extension/internal/svg.cpp +++ b/src/extension/internal/svg.cpp @@ -149,7 +149,7 @@ Svg::init() "<_option value='optimizeSpeed' >" N_("Blocky (optimizeSpeed)") "\n" "\n" - "false\n" + "%s\n" "\n" ".svg\n" "image/svg+xml\n" @@ -158,7 +158,7 @@ Svg::init() "" SP_MODULE_KEY_OUTPUT_SVG_INKSCAPE "\n" "\n" "", new Svg()); - + /* SVG out Inkscape */ Inkscape::Extension::build_from_mem( "\n" @@ -205,10 +205,10 @@ Svg::open (Inkscape::Extension::Input *mod, const gchar *uri) auto file = Gio::File::create_for_uri(uri); const auto path = file->get_path(); Inkscape::Preferences *prefs = Inkscape::Preferences::get(); - bool ask = prefs->getBool("/dialogs/import/ask"); + bool ask_svg = prefs->getBool("/dialogs/import/ask_svg"); Glib::ustring import_mode_svg = prefs->getString("/dialogs/import/import_mode_svg"); Glib::ustring scale = prefs->getString("/dialogs/import/scale"); - if(mod->get_gui() && ask) { + if(mod->get_gui() && ask_svg) { Glib::ustring mod_import_mode_svg = mod->get_param_optiongroup("import_mode_svg"); Glib::ustring mod_scale = mod->get_param_optiongroup("scale"); if( import_mode_svg.compare( mod_import_mode_svg) != 0 ) { @@ -219,7 +219,7 @@ Svg::open (Inkscape::Extension::Input *mod, const gchar *uri) scale = mod_scale; } prefs->setString("/dialogs/import/scale", scale ); - prefs->setBool("/dialogs/import/ask", !mod->get_param_bool("do_not_ask") ); + prefs->setBool("/dialogs/import/ask_svg", !mod->get_param_bool("do_not_ask") ); } SPDocument * doc = SPDocument::createNewDoc (nullptr, TRUE, TRUE); if (prefs->getBool("/options/onimport", false) && import_mode_svg.compare("include") != 0) { diff --git a/src/extension/system.cpp b/src/extension/system.cpp index daad169aa..f000e88f0 100644 --- a/src/extension/system.cpp +++ b/src/extension/system.cpp @@ -98,9 +98,10 @@ SPDocument *open(Extension *key, gchar const *filename) if (strlen(imod->get_id()) > 21) { Inkscape::Preferences *prefs = Inkscape::Preferences::get(); bool ask = prefs->getBool("/dialogs/import/ask"); + bool ask_svg = prefs->getBool("/dialogs/import/ask_svg"); Glib::ustring id = Glib::ustring(imod->get_id(), 22); if (id.compare("org.inkscape.input.svg") == 0) { - if (ask && prefs->getBool("/options/onimport", false)) { + if (ask_svg && prefs->getBool("/options/onimport", false)) { show = true; imod->set_gui(true); } else { diff --git a/src/preferences-skeleton.h b/src/preferences-skeleton.h index 2fb76923c..16095cdad 100644 --- a/src/preferences-skeleton.h +++ b/src/preferences-skeleton.h @@ -201,7 +201,7 @@ static char const preferences_skeleton[] = " \n" " \n" " \n" -" \n" +" \n" " \n" " \n" " \n" diff --git a/src/ui/dialog/inkscape-preferences.cpp b/src/ui/dialog/inkscape-preferences.cpp index a1aae3cde..02dcb4187 100644 --- a/src/ui/dialog/inkscape-preferences.cpp +++ b/src/ui/dialog/inkscape-preferences.cpp @@ -1731,9 +1731,12 @@ void InkscapePreferences::initPageBitmaps() _("Resolution used by the Create Bitmap Copy command"), false); _page_bitmaps.add_group_header( _("Import")); - _bitmap_ask.init(_("Ask about linking and scaling when importing"), "/dialogs/import/ask", true); + _bitmap_ask.init(_("Ask about linking and scaling when importing bitmap images"), "/dialogs/import/ask", true); _page_bitmaps.add_line( true, "", _bitmap_ask, "", _("Pop-up linking and scaling dialog when importing bitmap image.")); + _svg_ask.init(_("Ask about linking and scaling when importing SVG images"), "/dialogs/import/ask_svg", true); + _page_bitmaps.add_line( true, "", _svg_ask, "", + _("Pop-up linking and scaling dialog when importing SVG image.")); { Glib::ustring labels[] = {_("Embed"), _("Link")}; diff --git a/src/ui/dialog/inkscape-preferences.h b/src/ui/dialog/inkscape-preferences.h index d0b51fa83..adcfca358 100644 --- a/src/ui/dialog/inkscape-preferences.h +++ b/src/ui/dialog/inkscape-preferences.h @@ -401,6 +401,7 @@ protected: UI::Widget::PrefCheckButton _misc_bitmap_autoreload; UI::Widget::PrefSpinButton _bitmap_copy_res; UI::Widget::PrefCheckButton _bitmap_ask; + UI::Widget::PrefCheckButton _svg_ask; UI::Widget::PrefCombo _bitmap_link; UI::Widget::PrefCombo _svg_link; UI::Widget::PrefCombo _bitmap_scale; diff --git a/src/ui/interface.cpp b/src/ui/interface.cpp index 35723af04..5edaab193 100644 --- a/src/ui/interface.cpp +++ b/src/ui/interface.cpp @@ -1246,6 +1246,8 @@ sp_ui_drag_data_received(GtkWidget *widget, case SVG_DATA: case SVG_XML_DATA: { + Inkscape::Preferences *prefs = Inkscape::Preferences::get(); + prefs->setBool("/options/onimport", true); gchar *svgdata = (gchar *)gtk_selection_data_get_data (data); Inkscape::XML::Document *rnewdoc = sp_repr_read_mem(svgdata, gtk_selection_data_get_length (data), SP_SVG_NS_URI); @@ -1291,12 +1293,16 @@ sp_ui_drag_data_received(GtkWidget *widget, Inkscape::GC::release(newgroup); DocumentUndo::done( doc, SP_VERB_NONE, _("Drop SVG") ); + prefs->setBool("/options/onimport", false); break; } case URI_LIST: { + Inkscape::Preferences *prefs = Inkscape::Preferences::get(); + prefs->setBool("/options/onimport", true); gchar *uri = (gchar *)gtk_selection_data_get_data (data); sp_ui_import_files(uri); + prefs->setBool("/options/onimport", false); break; } -- cgit v1.2.3