diff options
| author | Eduard Braun <eduard.braun2@gmx.de> | 2017-07-09 12:42:10 +0000 |
|---|---|---|
| committer | Eduard Braun <eduard.braun2@gmx.de> | 2017-07-09 12:42:10 +0000 |
| commit | 241554b7ad311b5868ba284c7a4e6a410432b9bd (patch) | |
| tree | 8bf6fed572d27e9b97ca60b90ae1684ba4856eeb /src/extension/internal | |
| parent | Use .xml when exporting shortcuts by default (diff) | |
| parent | Shortcuts: Fix for 7d248fbba5b0c24d9a24cda8c3f2e79f96395553 (is_user_set was ... (diff) | |
| download | inkscape-241554b7ad311b5868ba284c7a4e6a410432b9bd.tar.gz inkscape-241554b7ad311b5868ba284c7a4e6a410432b9bd.zip | |
Merge branch 'master' into shortcuts
Diffstat (limited to 'src/extension/internal')
| -rw-r--r-- | src/extension/internal/cdr-input.cpp | 1 | ||||
| -rw-r--r-- | src/extension/internal/filter/filter-file.cpp | 82 | ||||
| -rw-r--r-- | src/extension/internal/filter/filter.h | 2 | ||||
| -rw-r--r-- | src/extension/internal/pdfinput/pdf-input.cpp | 1 | ||||
| -rw-r--r-- | src/extension/internal/vsd-input.cpp | 1 |
5 files changed, 21 insertions, 66 deletions
diff --git a/src/extension/internal/cdr-input.cpp b/src/extension/internal/cdr-input.cpp index b94408b36..2b6714908 100644 --- a/src/extension/internal/cdr-input.cpp +++ b/src/extension/internal/cdr-input.cpp @@ -40,7 +40,6 @@ typedef libcdr::CDRStringVector RVNGStringVector; #endif -#include <gtkmm/alignment.h> #include <gtkmm/grid.h> #include <gtkmm/spinbutton.h> diff --git a/src/extension/internal/filter/filter-file.cpp b/src/extension/internal/filter/filter-file.cpp index b1993057d..c18879430 100644 --- a/src/extension/internal/filter/filter-file.cpp +++ b/src/extension/internal/filter/filter-file.cpp @@ -8,6 +8,7 @@ #include "filter.h" #include "io/sys.h" +#include "io/resource.h" #include "io/inkscapestream.h" /* Directory includes */ @@ -22,78 +23,26 @@ #include <glibmm/i18n.h> #include <glibmm/fileutils.h> +using namespace Inkscape::IO::Resource; + namespace Inkscape { namespace Extension { namespace Internal { namespace Filter { -void Filter::filters_all_files(void) -{ - gchar *filtersProfilePath = Inkscape::Application::profile_path("filters"); - - filters_load_dir(INKSCAPE_FILTERDIR, _("Bundled")); - filters_load_dir(filtersProfilePath, _("Personal")); - - g_free(filtersProfilePath); - filtersProfilePath = 0; -} - -#define INKSCAPE_FILTER_FILE ".svg" - void -Filter::filters_load_dir (gchar const * dirname, gchar * menuname) +filters_load_file (Glib::ustring filename, gchar * menuname) { - if (!dirname) { - g_warning("%s", _("Null external module directory name. Filters will not be loaded.")); - return; - } - - if (!Glib::file_test(std::string(dirname), Glib::FILE_TEST_EXISTS | Glib::FILE_TEST_IS_DIR)) { - return; - } - - GError *err; - GDir *directory = g_dir_open(dirname, 0, &err); - if (!directory) { - gchar *safeDir = Inkscape::IO::sanitizeString(dirname); - g_warning(_("Modules directory (%s) is unavailable. External modules in that directory will not be loaded."), safeDir); - g_free(safeDir); - return; - } - - gchar *filename; - while ((filename = (gchar *)g_dir_read_name(directory)) != NULL) { - if (strlen(filename) < strlen(INKSCAPE_FILTER_FILE)) { - continue; - } - - if (strcmp(INKSCAPE_FILTER_FILE, filename + (strlen(filename) - strlen(INKSCAPE_FILTER_FILE)))) { - continue; - } - - gchar *pathname = g_build_filename(dirname, filename, NULL); - filters_load_file(pathname, menuname); - g_free(pathname); - } - - g_dir_close(directory); - - return; -} - -void -Filter::filters_load_file (gchar * filename, gchar * menuname) -{ - Inkscape::XML::Document *doc = sp_repr_read_file(filename, INKSCAPE_EXTENSION_URI); + Inkscape::XML::Document *doc = sp_repr_read_file(filename.c_str(), INKSCAPE_EXTENSION_URI); if (doc == NULL) { - g_warning("File (%s) is not parseable as XML. Ignored.", filename); + g_warning("File (%s) is not parseable as XML. Ignored.", filename.c_str()); return; } Inkscape::XML::Node * root = doc->root(); if (strcmp(root->name(), "svg:svg")) { Inkscape::GC::release(doc); - g_warning("File (%s) is not SVG. Ignored.", filename); + g_warning("File (%s) is not SVG. Ignored.", filename.c_str()); return; } @@ -103,7 +52,7 @@ Filter::filters_load_file (gchar * filename, gchar * menuname) for (Inkscape::XML::Node * defs = child->firstChild(); defs != NULL; defs = defs->next()) { if (!strcmp(defs->name(), "svg:filter")) { - filters_load_node(defs, menuname); + Filter::filters_load_node(defs, menuname); } // oh! a filter } //defs } // is defs @@ -113,6 +62,17 @@ Filter::filters_load_file (gchar * filename, gchar * menuname) return; } +void Filter::filters_all_files(void) +{ + for(auto &filename: get_filenames(USER, FILTERS, {".svg"})) { + filters_load_file(filename, _("Personal")); + } + for(auto &filename: get_filenames(SYSTEM, FILTERS, {".svg"})) { + filters_load_file(filename, _("Bundled")); + } +} + + #include "extension/internal/clear-n_.h" class mywriter : public Inkscape::IO::BasicWriter { @@ -149,8 +109,8 @@ Filter::filters_load_node (Inkscape::XML::Node * node, gchar * menuname) "<object-type>all</object-type>\n" "<effects-menu>\n" "<submenu name=\"" N_("Filters") "\">\n" - "<submenu name=\"%s\"/>\n" - "</submenu>\n" + "<submenu name=\"%s\"/>\n" + "</submenu>\n" "</effects-menu>\n" "<menu-tip>%s</menu-tip>\n" "</effect>\n" diff --git a/src/extension/internal/filter/filter.h b/src/extension/internal/filter/filter.h index 9aaa84aec..8fa086b69 100644 --- a/src/extension/internal/filter/filter.h +++ b/src/extension/internal/filter/filter.h @@ -53,8 +53,6 @@ public: /* File loader related */ static void filters_all_files(void); - static void filters_load_dir(gchar const * filename, gchar * menuname); - static void filters_load_file(gchar * filename, gchar * menuname); static void filters_load_node(Inkscape::XML::Node * node, gchar * menuname); }; diff --git a/src/extension/internal/pdfinput/pdf-input.cpp b/src/extension/internal/pdfinput/pdf-input.cpp index 2ee713085..844d16c17 100644 --- a/src/extension/internal/pdfinput/pdf-input.cpp +++ b/src/extension/internal/pdfinput/pdf-input.cpp @@ -31,7 +31,6 @@ #include <poppler/glib/poppler-page.h> #endif -#include <gtkmm/alignment.h> #include <gtkmm/checkbutton.h> #include <gtkmm/comboboxtext.h> #include <gtkmm/drawingarea.h> diff --git a/src/extension/internal/vsd-input.cpp b/src/extension/internal/vsd-input.cpp index c1cfb5cc6..0d7a467f0 100644 --- a/src/extension/internal/vsd-input.cpp +++ b/src/extension/internal/vsd-input.cpp @@ -40,7 +40,6 @@ typedef libvisio::VSDStringVector RVNGStringVector; #endif -#include <gtkmm/alignment.h> #include <gtkmm/spinbutton.h> #include "extension/system.h" |
