summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJabier Arraiza <jabier.arraiza@marker.es>2018-09-22 11:17:10 +0000
committerJabier Arraiza <jabier.arraiza@marker.es>2018-09-22 11:17:10 +0000
commit0c63ba89a507f817dcd7b54cf60af8951e14e2c9 (patch)
treed97f5ff77162216ee8948ef3893f6af1eabb1e12 /src
parentFix problems on dialogs with extensions. TODO: Add dialog on drag&drop a SVG (diff)
downloadinkscape-0c63ba89a507f817dcd7b54cf60af8951e14e2c9.tar.gz
inkscape-0c63ba89a507f817dcd7b54cf60af8951e14e2c9.zip
Allow ask for SVG dragged import method. Also split ask question from one to 2 (Bitmap and SVG)
Diffstat (limited to 'src')
-rw-r--r--src/extension/internal/svg.cpp10
-rw-r--r--src/extension/system.cpp3
-rw-r--r--src/preferences-skeleton.h2
-rw-r--r--src/ui/dialog/inkscape-preferences.cpp5
-rw-r--r--src/ui/dialog/inkscape-preferences.h1
-rw-r--r--src/ui/interface.cpp6
6 files changed, 19 insertions, 8 deletions
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)") "</_option>\n"
"</param>\n"
- "<param name=\"do_not_ask\" _gui-description='" N_("Hide the dialog next time and always apply the same actions.") "' _gui-text=\"" N_("Don't ask again") "\" type=\"boolean\" >false</param>\n"
+ "<param name=\"do_not_ask\" _gui-description='" N_("Hide the dialog next time and always apply the same actions.") "' _gui-text=\"" N_("Don't ask again") "\" type=\"boolean\" >%s</param>\n"
"<input>\n"
"<extension>.svg</extension>\n"
"<mimetype>image/svg+xml</mimetype>\n"
@@ -158,7 +158,7 @@ Svg::init()
"<output_extension>" SP_MODULE_KEY_OUTPUT_SVG_INKSCAPE "</output_extension>\n"
"</input>\n"
"</inkscape-extension>", new Svg());
-
+
/* SVG out Inkscape */
Inkscape::Extension::build_from_mem(
"<inkscape-extension xmlns=\"" INKSCAPE_EXTENSION_URI "\">\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[] =
" <group id=\"save_as\" default=\"\" append_extension=\"1\" enable_preview=\"1\" path=\"\" use_current_dir=\"1\"/>\n"
" <group id=\"save_copy\" default=\"\" append_extension=\"1\" enable_preview=\"1\" path=\"\"/>\n"
" <group id=\"open\" enable_preview=\"1\" path=\"\"/>\n"
-" <group id=\"import\" enable_preview=\"1\" path=\"\" ask=\"1\" link=\"link\" scale=\"optimizeSpeed\"/>\n"
+" <group id=\"import\" enable_preview=\"1\" path=\"\" ask=\"1\" ask_svg=\"1\" link=\"link\" scale=\"optimizeSpeed\"/>\n"
" <group id=\"debug\" redirect=\"0\"/>\n"
" <group id=\"clonetiler\" />\n"
" <group id=\"gridtiler\" />\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;
}