summaryrefslogtreecommitdiffstats
path: root/src/extension/internal
diff options
context:
space:
mode:
authorEduard Braun <eduard.braun2@gmx.de>2017-07-09 12:42:10 +0000
committerEduard Braun <eduard.braun2@gmx.de>2017-07-09 12:42:10 +0000
commit241554b7ad311b5868ba284c7a4e6a410432b9bd (patch)
tree8bf6fed572d27e9b97ca60b90ae1684ba4856eeb /src/extension/internal
parentUse .xml when exporting shortcuts by default (diff)
parentShortcuts: Fix for 7d248fbba5b0c24d9a24cda8c3f2e79f96395553 (is_user_set was ... (diff)
downloadinkscape-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.cpp1
-rw-r--r--src/extension/internal/filter/filter-file.cpp82
-rw-r--r--src/extension/internal/filter/filter.h2
-rw-r--r--src/extension/internal/pdfinput/pdf-input.cpp1
-rw-r--r--src/extension/internal/vsd-input.cpp1
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"