summaryrefslogtreecommitdiffstats
path: root/src/extension
diff options
context:
space:
mode:
authorJabier Arraiza <jabier.arraiza@marker.es>2018-09-22 01:23:04 +0000
committerJabier Arraiza <jabier.arraiza@marker.es>2018-09-22 01:23:04 +0000
commit7cd9900d0d7ff692a6cf0a0fbfa3651413c27ca8 (patch)
tree733ddd2e985d44d1ebc3318dee89a8658424aaa9 /src/extension
parentfix CTRL+button2 rotation direction (diff)
downloadinkscape-7cd9900d0d7ff692a6cf0a0fbfa3651413c27ca8.tar.gz
inkscape-7cd9900d0d7ff692a6cf0a0fbfa3651413c27ca8.zip
Fix problems on dialogs with extensions. TODO: Add dialog on drag&drop a SVG
Diffstat (limited to 'src/extension')
-rw-r--r--src/extension/extension.h1
-rw-r--r--src/extension/internal/svg.cpp24
-rw-r--r--src/extension/system.cpp14
3 files changed, 18 insertions, 21 deletions
diff --git a/src/extension/extension.h b/src/extension/extension.h
index 6b1a2aed8..1607f606b 100644
--- a/src/extension/extension.h
+++ b/src/extension/extension.h
@@ -290,6 +290,7 @@ public:
Gtk::Widget * autogui (SPDocument * doc, Inkscape::XML::Node * node, sigc::signal<void> * changeSignal = nullptr);
void paramListString (std::list <std::string> & retlist);
void set_gui(bool s) { _gui = s; }
+ bool get_gui() { return _gui; }
/* Extension editor dialog stuff */
public:
diff --git a/src/extension/internal/svg.cpp b/src/extension/internal/svg.cpp
index 7d88ad007..3f6a342de 100644
--- a/src/extension/internal/svg.cpp
+++ b/src/extension/internal/svg.cpp
@@ -137,7 +137,7 @@ Svg::init()
"<inkscape-extension xmlns=\"" INKSCAPE_EXTENSION_URI "\">\n"
"<name>" N_("SVG Input") "</name>\n"
"<id>" SP_MODULE_KEY_INPUT_SVG "</id>\n"
- "<param name='link_svg' type='optiongroup' appearance='full' _gui-text='" N_("SVG Image Import Type:") "' >\n"
+ "<param name='import_mode_svg' type='optiongroup' appearance='full' _gui-text='" N_("SVG Image Import Type:") "' >\n"
"<_option value='include' >" N_("Include SVG image as editable object(s) in the current file") "</_option>\n"
"<_option value='embed' >" N_("Embed the SVG file in a image tag (not editable in this document)") "</_option>\n"
"<_option value='link' >" N_("Link the SVG file in a image tag (not editable in this document).") "</_option>\n"
@@ -206,21 +206,15 @@ Svg::open (Inkscape::Extension::Input *mod, const gchar *uri)
const auto path = file->get_path();
Inkscape::Preferences *prefs = Inkscape::Preferences::get();
bool ask = prefs->getBool("/dialogs/import/ask");
- Glib::ustring link_svg = prefs->getString("/dialogs/import/link_svg");
+ Glib::ustring import_mode_svg = prefs->getString("/dialogs/import/import_mode_svg");
Glib::ustring scale = prefs->getString("/dialogs/import/scale");
- bool is_import = false;
- if (strcmp(prefs->getString("/options/openmethod/value").c_str(), "done") == 0 ||
- strcmp(prefs->getString("/options/openmethod/value").c_str(), "import") == 0)
- {
- is_import = true;
- }
- if(INKSCAPE.use_gui() && is_import && ask) {
- Glib::ustring mod_link_svg = mod->get_param_optiongroup("link_svg");
+ if(mod->get_gui() && ask) {
+ Glib::ustring mod_import_mode_svg = mod->get_param_optiongroup("import_mode_svg");
Glib::ustring mod_scale = mod->get_param_optiongroup("scale");
- if( link_svg.compare( mod_link_svg) != 0 ) {
- link_svg = mod_link_svg;
+ if( import_mode_svg.compare( mod_import_mode_svg) != 0 ) {
+ import_mode_svg = mod_import_mode_svg;
}
- prefs->setString("/dialogs/import/link_svg", link_svg );
+ prefs->setString("/dialogs/import/import_mode_svg", import_mode_svg );
if( scale.compare( mod_scale ) != 0 ) {
scale = mod_scale;
}
@@ -228,8 +222,8 @@ Svg::open (Inkscape::Extension::Input *mod, const gchar *uri)
prefs->setBool("/dialogs/import/ask", !mod->get_param_bool("do_not_ask") );
}
SPDocument * doc = SPDocument::createNewDoc (nullptr, TRUE, TRUE);
- if (link_svg.compare("include") != 0 && is_import) {
- bool embed = ( link_svg.compare( "embed" ) == 0 );
+ if (prefs->getBool("/options/onimport", false) && import_mode_svg.compare("include") != 0) {
+ bool embed = ( import_mode_svg.compare( "embed" ) == 0 );
SPDocument * ret = SPDocument::createNewDoc(uri, TRUE);
SPNamedView *nv = sp_document_namedview(doc, nullptr);
Glib::ustring display_unit = nv->display_units->abbr;
diff --git a/src/extension/system.cpp b/src/extension/system.cpp
index 2a74c6b0c..daad169aa 100644
--- a/src/extension/system.cpp
+++ b/src/extension/system.cpp
@@ -99,12 +99,14 @@ SPDocument *open(Extension *key, gchar const *filename)
Inkscape::Preferences *prefs = Inkscape::Preferences::get();
bool ask = prefs->getBool("/dialogs/import/ask");
Glib::ustring id = Glib::ustring(imod->get_id(), 22);
- if (id.compare("org.inkscape.input.svg") == 0 &&
- ((strcmp(prefs->getString("/options/openmethod/value").c_str(), "done") != 0 &&
- strcmp(prefs->getString("/options/openmethod/value").c_str(), "import") != 0) ||
- !ask)) {
- show = false;
- imod->set_gui(false);
+ if (id.compare("org.inkscape.input.svg") == 0) {
+ if (ask && prefs->getBool("/options/onimport", false)) {
+ show = true;
+ imod->set_gui(true);
+ } else {
+ show = false;
+ imod->set_gui(false);
+ }
} else if(strlen(imod->get_id()) > 27) {
id = Glib::ustring(imod->get_id(), 28);
if (!ask && id.compare( "org.inkscape.input.gdkpixbuf") == 0) {