diff options
| author | Jabier Arraiza <jabier.arraiza@marker.es> | 2018-09-22 01:23:04 +0000 |
|---|---|---|
| committer | Jabier Arraiza <jabier.arraiza@marker.es> | 2018-09-22 01:23:04 +0000 |
| commit | 7cd9900d0d7ff692a6cf0a0fbfa3651413c27ca8 (patch) | |
| tree | 733ddd2e985d44d1ebc3318dee89a8658424aaa9 /src | |
| parent | fix CTRL+button2 rotation direction (diff) | |
| download | inkscape-7cd9900d0d7ff692a6cf0a0fbfa3651413c27ca8.tar.gz inkscape-7cd9900d0d7ff692a6cf0a0fbfa3651413c27ca8.zip | |
Fix problems on dialogs with extensions. TODO: Add dialog on drag&drop a SVG
Diffstat (limited to 'src')
| -rw-r--r-- | src/extension/extension.h | 1 | ||||
| -rw-r--r-- | src/extension/internal/svg.cpp | 24 | ||||
| -rw-r--r-- | src/extension/system.cpp | 14 | ||||
| -rw-r--r-- | src/main.cpp | 7 | ||||
| -rw-r--r-- | src/ui/dialog/inkscape-preferences.cpp | 2 | ||||
| -rw-r--r-- | src/ui/interface.cpp | 5 | ||||
| -rw-r--r-- | src/verbs.cpp | 12 |
7 files changed, 22 insertions, 43 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) { diff --git a/src/main.cpp b/src/main.cpp index 290579a01..43c2a11d0 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -1100,7 +1100,6 @@ static int sp_main_shell(char const* command_name) { int retval = 0; Inkscape::Preferences *prefs = Inkscape::Preferences::get(); - prefs->setString("/options/openmethod/value", "shell"); const unsigned int buffer_size = 4096; gchar *command_line = g_strnfill(buffer_size, 0); g_strlcpy(command_line, command_name, buffer_size); @@ -1166,7 +1165,6 @@ static int sp_main_shell(char const* command_name) } while (linedata && (retval == 0)); g_free(command_line); - prefs->setString("/options/openmethod/value", "done"); return retval; } @@ -1174,7 +1172,6 @@ int sp_main_console(int argc, char const **argv) { /* We are started in text mode */ Inkscape::Preferences *prefs = Inkscape::Preferences::get(); -prefs->setString("/options/openmethod/value", "shell"); #if !GLIB_CHECK_VERSION(2,36,0) /* Do this g_type_init(), so that we can use Xft/Freetype2 (Pango) * in a non-Gtk environment. Used in libnrtype's @@ -1197,7 +1194,6 @@ prefs->setString("/options/openmethod/value", "shell"); #endif // WITH_DBUS ) { do_print_message("Nothing to do!\n"); - prefs->setString("/options/openmethod/value", "done"); exit(0); } @@ -1206,16 +1202,13 @@ prefs->setString("/options/openmethod/value", "shell"); if (sp_shell) { int retVal = sp_main_shell(argv[0]); // Run as interactive shell - prefs->setString("/options/openmethod/value", "done"); exit((retVal < 0) ? 1 : 0); } else { int retVal = sp_process_file_list(fl); // Normal command line invocation if (retVal){ - prefs->setString("/options/openmethod/value", "done"); exit(1); } } - prefs->setString("/options/openmethod/value", "done"); return 0; } diff --git a/src/ui/dialog/inkscape-preferences.cpp b/src/ui/dialog/inkscape-preferences.cpp index c52d4f93c..a1aae3cde 100644 --- a/src/ui/dialog/inkscape-preferences.cpp +++ b/src/ui/dialog/inkscape-preferences.cpp @@ -1745,7 +1745,7 @@ void InkscapePreferences::initPageBitmaps() { Glib::ustring labels[] = {_("Include"), _("Embed"), _("Link")}; Glib::ustring values[] = {"include", "embed", "link"}; - _svg_link.init("/dialogs/import/link_svg", labels, values, G_N_ELEMENTS(values), "include"); + _svg_link.init("/dialogs/import/import_mode_svg", labels, values, G_N_ELEMENTS(values), "include"); _page_bitmaps.add_line( false, _("SVG import mode:"), _svg_link, "", "", false); } diff --git a/src/ui/interface.cpp b/src/ui/interface.cpp index b19b10221..35723af04 100644 --- a/src/ui/interface.cpp +++ b/src/ui/interface.cpp @@ -750,8 +750,6 @@ static void sp_recent_open(GtkRecentChooser *recent_menu, gpointer /*user_data*/) { // dealing with the bizarre filename convention in Inkscape for now - Inkscape::Preferences *prefs = Inkscape::Preferences::get(); - prefs->setString("/options/openmethod/value", "open"); gchar *uri = gtk_recent_chooser_get_current_uri(GTK_RECENT_CHOOSER(recent_menu)); gchar *local_fn = g_filename_from_uri(uri, nullptr, nullptr); gchar *utf8_fn = g_filename_to_utf8(local_fn, -1, nullptr, nullptr, nullptr); @@ -759,7 +757,6 @@ sp_recent_open(GtkRecentChooser *recent_menu, gpointer /*user_data*/) g_free(utf8_fn); g_free(local_fn); g_free(uri); - prefs->setString("/options/openmethod/value", "done"); } static void @@ -1293,7 +1290,7 @@ sp_ui_drag_data_received(GtkWidget *widget, Inkscape::GC::release(newgroup); DocumentUndo::done( doc, SP_VERB_NONE, - _("Drop SVG") ); + _("Drop SVG") ); break; } diff --git a/src/verbs.cpp b/src/verbs.cpp index fd3febc2c..4834f02d0 100644 --- a/src/verbs.cpp +++ b/src/verbs.cpp @@ -889,14 +889,10 @@ void FileVerb::perform(SPAction *action, void *data) sp_file_new_default(); break; case SP_VERB_FILE_OPEN: - prefs->setString("/options/openmethod/value", "open"); sp_file_open_dialog(*parent, nullptr, nullptr); - prefs->setString("/options/openmethod/value", "done"); break; case SP_VERB_FILE_REVERT: - prefs->setString("/options/openmethod/value", "revert"); sp_file_revert_dialog(); - prefs->setString("/options/openmethod/value", "done"); break; case SP_VERB_FILE_SAVE: sp_file_save(*parent, nullptr, nullptr); @@ -914,17 +910,15 @@ void FileVerb::perform(SPAction *action, void *data) sp_file_print(*parent); break; case SP_VERB_FILE_IMPORT: - prefs->setString("/options/openmethod/value","import"); + prefs->setBool("/options/onimport",true); sp_file_import(*parent); - prefs->setString("/options/openmethod/value", "done"); + prefs->setBool("/options/onimport",false); break; // case SP_VERB_FILE_EXPORT: // sp_file_export_dialog(*parent); // break; case SP_VERB_FILE_IMPORT_FROM_OCAL: - prefs->setString("/options/openmethod/value", "ocal"); sp_file_import_from_ocal(*parent); - prefs->setString("/options/openmethod/value", "done"); break; // case SP_VERB_FILE_EXPORT_TO_OCAL: // sp_file_export_to_ocal(*parent); @@ -939,9 +933,7 @@ void FileVerb::perform(SPAction *action, void *data) sp_ui_close_view(nullptr); break; case SP_VERB_FILE_TEMPLATES: - prefs->setString("/options/openmethod/value", "template"); Inkscape::UI::NewFromTemplate::load_new_from_template(); - prefs->setString("/options/openmethod/value", "done"); break; default: break; |
