summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexander Valavanis <valavanisalex@gmail.com>2017-06-29 16:13:40 +0000
committerAlexander Valavanis <valavanisalex@gmail.com>2017-06-29 16:13:40 +0000
commitad826f2d8da43745b3f01f72616439102ad85b32 (patch)
treefaead64e9df74ecb395b557dfe505536884c0ae3
parentaboutbox: Gtk3 fixes (diff)
parentFilter editor fix for gcc 5 (diff)
downloadinkscape-ad826f2d8da43745b3f01f72616439102ad85b32.tar.gz
inkscape-ad826f2d8da43745b3f01f72616439102ad85b32.zip
Merge branch 'master' of gitlab.com:inkscape/inkscape
-rw-r--r--.gitignore1
-rw-r--r--share/ui/CMakeLists.txt2
-rw-r--r--share/ui/filter-editor.glade381
-rw-r--r--src/helper/window.cpp6
-rw-r--r--src/shortcuts.cpp21
-rw-r--r--src/shortcuts.h13
-rw-r--r--src/ui/CMakeLists.txt2
-rw-r--r--src/ui/dialog/dialog-manager.cpp3
-rw-r--r--src/ui/dialog/filter-editor.cpp128
-rw-r--r--src/ui/dialog/filter-editor.h53
-rw-r--r--src/ui/dialog/filter-effects-dialog.h8
11 files changed, 605 insertions, 13 deletions
diff --git a/.gitignore b/.gitignore
index a56790eb5..8d7ae7a81 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,3 +4,4 @@ share/*/*.h
*.old
*.swp
+*~
diff --git a/share/ui/CMakeLists.txt b/share/ui/CMakeLists.txt
index 80bcd1b5d..e3eb742b2 100644
--- a/share/ui/CMakeLists.txt
+++ b/share/ui/CMakeLists.txt
@@ -1,3 +1,3 @@
-file(GLOB _FILES "*.xml" "*.rc" "*.css" "*.ui")
+file(GLOB _FILES "*.xml" "*.rc" "*.css" "*.ui" "*.glade")
install(FILES ${_FILES} DESTINATION ${INKSCAPE_SHARE_INSTALL}/ui)
diff --git a/share/ui/filter-editor.glade b/share/ui/filter-editor.glade
new file mode 100644
index 000000000..908e0d7e3
--- /dev/null
+++ b/share/ui/filter-editor.glade
@@ -0,0 +1,381 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.20.0 -->
+<interface>
+ <requires lib="gtk+" version="3.18"/>
+ <object class="GtkListStore" id="FilterStore">
+ <columns>
+ <!-- column-name Effect -->
+ <column type="gchararray"/>
+ <!-- column-name Name -->
+ <column type="gchararray"/>
+ <!-- column-name gboolean1 -->
+ <column type="gboolean"/>
+ <!-- column-name Origin -->
+ <column type="GObject"/>
+ </columns>
+ <data>
+ <row>
+ <col id="0" translatable="yes">test1</col>
+ <col id="1" translatable="yes">a</col>
+ <col id="2">False</col>
+ <col id="3"/>
+ </row>
+ <row>
+ <col id="0" translatable="yes">test2</col>
+ <col id="1" translatable="yes">b</col>
+ <col id="2">False</col>
+ <col id="3"/>
+ </row>
+ <row>
+ <col id="0" translatable="yes">test3</col>
+ <col id="1" translatable="yes">c</col>
+ <col id="2">False</col>
+ <col id="3"/>
+ </row>
+ <row>
+ <col id="0" translatable="yes"/>
+ <col id="1" translatable="yes"/>
+ <col id="2">False</col>
+ <col id="3"/>
+ </row>
+ </data>
+ </object>
+ <object class="GtkListStore" id="FilterStore1">
+ <columns>
+ <!-- column-name origin_name -->
+ <column type="gchararray"/>
+ </columns>
+ <data>
+ <row>
+ <col id="0" translatable="yes">whatever</col>
+ </row>
+ <row>
+ <col id="0" translatable="yes">second choice</col>
+ </row>
+ </data>
+ </object>
+ <object class="GtkBox" id="FilterEditor">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkComboBoxText" id="FilterList">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <items>
+ <item translatable="yes">filter1</item>
+ <item translatable="yes">filter2</item>
+ </items>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">FER: </property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">X: </property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton" id="FilterFERX">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="input_purpose">number</property>
+ <property name="orientation">vertical</property>
+ <property name="value">-0.10000000000000001</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">3</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">Y: </property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">4</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton" id="FilterFERY">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="orientation">vertical</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">5</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">W: </property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">6</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton" id="FilterFERW">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="orientation">vertical</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">7</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">H: </property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">8</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkSpinButton" id="FilterFERH">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="orientation">vertical</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">9</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkPaned">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkTreeView" id="FilterPrimitiveList">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="model">FilterStore</property>
+ <property name="headers_clickable">False</property>
+ <property name="reorderable">True</property>
+ <property name="fixed_height_mode">True</property>
+ <property name="enable_tree_lines">True</property>
+ <property name="activate_on_single_click">True</property>
+ <child internal-child="selection">
+ <object class="GtkTreeSelection"/>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn">
+ <property name="sizing">fixed</property>
+ <property name="title" translatable="yes">Effect</property>
+ <child>
+ <object class="GtkCellRendererText" id="cellrenderertext4"/>
+ <attributes>
+ <attribute name="text">0</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn">
+ <property name="sizing">fixed</property>
+ <property name="title" translatable="yes">Name</property>
+ <child>
+ <object class="GtkCellRendererText" id="cellrenderertext44"/>
+ <attributes>
+ <attribute name="text">1</attribute>
+ </attributes>
+ </child>
+ </object>
+ </child>
+ <child>
+ <object class="GtkTreeViewColumn">
+ <property name="sizing">fixed</property>
+ <property name="title" translatable="yes">Origin(s)</property>
+ <property name="expand">True</property>
+ <child>
+ <object class="GtkCellRendererCombo" id="cellrenderertext45">
+ <property name="model">FilterStore1</property>
+ <property name="text_column">0</property>
+ </object>
+ </child>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkComboBox" id="FilterPrimitiveDropDown">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkButton" id="FilterPrimitiveAdd">
+ <property name="label" translatable="yes">Add</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="pack_type">end</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="resize">True</property>
+ <property name="shrink">True</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="orientation">vertical</property>
+ <child>
+ <object class="GtkDrawingArea" id="FilterPreview">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <object class="GtkBox">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <child>
+ <object class="GtkImage" id="FilterPrimitiveDescImage">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="stock">gtk-dialog-info</property>
+ <property name="icon_size">6</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="FilterPrimitiveDescText">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="label" translatable="yes">This effect does this and that.</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">2</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="resize">True</property>
+ <property name="shrink">True</property>
+ </packing>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
+ </object>
+ <object class="GtkComboBox" id="OptionList">
+ <property name="visible">True</property>
+ <property name="can_focus">False</property>
+ <property name="model">FilterStore1</property>
+ <property name="active">0</property>
+ <property name="id_column">0</property>
+ </object>
+</interface>
diff --git a/src/helper/window.cpp b/src/helper/window.cpp
index 98e886a38..270f9a3c8 100644
--- a/src/helper/window.cpp
+++ b/src/helper/window.cpp
@@ -23,6 +23,12 @@ static bool on_window_key_press(GdkEventKey* event)
shortcut = Inkscape::UI::Tools::get_group0_keyval (event) |
( event->state & GDK_SHIFT_MASK ?
SP_SHORTCUT_SHIFT_MASK : 0 ) |
+ ( event->state & GDK_SUPER_MASK ?
+ SP_SHORTCUT_SUPER_MASK : 0 ) |
+ ( event->state & GDK_HYPER_MASK ?
+ SP_SHORTCUT_HYPER_MASK : 0 ) |
+ ( event->state & GDK_META_MASK ?
+ SP_SHORTCUT_META_MASK : 0 ) |
( event->state & GDK_CONTROL_MASK ?
SP_SHORTCUT_CONTROL_MASK : 0 ) |
( event->state & GDK_MOD1_MASK ?
diff --git a/src/shortcuts.cpp b/src/shortcuts.cpp
index f8a647040..0cb0285f8 100644
--- a/src/shortcuts.cpp
+++ b/src/shortcuts.cpp
@@ -122,6 +122,12 @@ unsigned int sp_gdkmodifier_to_shortcut(guint accel_key, Gdk::ModifierType gdkmo
SP_SHORTCUT_SHIFT_MASK : 0 ) |
( gdkmodifier & GDK_CONTROL_MASK ?
SP_SHORTCUT_CONTROL_MASK : 0 ) |
+ ( gdkmodifier & GDK_SUPER_MASK ?
+ SP_SHORTCUT_SUPER_MASK : 0 ) |
+ ( gdkmodifier & GDK_HYPER_MASK ?
+ SP_SHORTCUT_HYPER_MASK : 0 ) |
+ ( gdkmodifier & GDK_META_MASK ?
+ SP_SHORTCUT_META_MASK : 0 ) |
( gdkmodifier & GDK_MOD1_MASK ?
SP_SHORTCUT_ALT_MASK : 0 );
@@ -138,6 +144,12 @@ Glib::ustring sp_shortcut_to_label(unsigned int const shortcut) {
modifiers += "Shift,";
if (shortcut & SP_SHORTCUT_ALT_MASK)
modifiers += "Alt,";
+ if (shortcut & SP_SHORTCUT_SUPER_MASK)
+ modifiers += "Super,";
+ if (shortcut & SP_SHORTCUT_HYPER_MASK)
+ modifiers += "Hyper,";
+ if (shortcut & SP_SHORTCUT_META_MASK)
+ modifiers += "Meta,";
if(modifiers.length() > 0 &&
modifiers.find(',',modifiers.length()-1)!=modifiers.npos) {
@@ -607,6 +619,12 @@ static void read_shortcuts_file(char const *filename, bool const is_user_set) {
modifiers |= SP_SHORTCUT_SHIFT_MASK;
} else if (!strcmp(mod, "Alt")) {
modifiers |= SP_SHORTCUT_ALT_MASK;
+ } else if (!strcmp(mod, "Super")) {
+ modifiers |= SP_SHORTCUT_SUPER_MASK;
+ } else if (!strcmp(mod, "Hyper")) {
+ modifiers |= SP_SHORTCUT_HYPER_MASK;
+ } else if (!strcmp(mod, "Meta")) {
+ modifiers |= SP_SHORTCUT_META_MASK;
} else {
g_warning("Unknown modifier %s for %s", mod, verb_name);
}
@@ -694,6 +712,9 @@ sp_shortcut_get_modifiers(unsigned int const shortcut)
return static_cast<GdkModifierType>(
((shortcut & SP_SHORTCUT_SHIFT_MASK) ? GDK_SHIFT_MASK : 0) |
((shortcut & SP_SHORTCUT_CONTROL_MASK) ? GDK_CONTROL_MASK : 0) |
+ ((shortcut & SP_SHORTCUT_SUPER_MASK) ? GDK_SUPER_MASK : 0) |
+ ((shortcut & SP_SHORTCUT_HYPER_MASK) ? GDK_HYPER_MASK : 0) |
+ ((shortcut & SP_SHORTCUT_META_MASK) ? GDK_META_MASK : 0) |
((shortcut & SP_SHORTCUT_ALT_MASK) ? GDK_MOD1_MASK : 0)
);
}
diff --git a/src/shortcuts.h b/src/shortcuts.h
index f24a82603..fb36dfd11 100644
--- a/src/shortcuts.h
+++ b/src/shortcuts.h
@@ -12,6 +12,8 @@
#include <vector>
#include <gdkmm/types.h>
+#include <gdk/gdktypes.h>
+
typedef struct _GtkAccelGroup GtkAccelGroup;
typedef struct _GtkWidget GtkWidget;
@@ -27,10 +29,13 @@ namespace Inkscape {
/* We define high-bit mask for packing into single int */
-#define SP_SHORTCUT_SHIFT_MASK (1 << 24)
-#define SP_SHORTCUT_CONTROL_MASK (1 << 25)
-#define SP_SHORTCUT_ALT_MASK (1 << 26)
-#define SP_SHORTCUT_MODIFIER_MASK (SP_SHORTCUT_SHIFT_MASK|SP_SHORTCUT_CONTROL_MASK|SP_SHORTCUT_ALT_MASK)
+#define SP_SHORTCUT_SHIFT_MASK GDK_MODIFIER_RESERVED_20_MASK
+#define SP_SHORTCUT_CONTROL_MASK GDK_MODIFIER_RESERVED_21_MASK
+#define SP_SHORTCUT_ALT_MASK GDK_MODIFIER_RESERVED_22_MASK
+#define SP_SHORTCUT_SUPER_MASK GDK_MODIFIER_RESERVED_23_MASK
+#define SP_SHORTCUT_HYPER_MASK GDK_MODIFIER_RESERVED_24_MASK
+#define SP_SHORTCUT_META_MASK GDK_MODIFIER_RESERVED_25_MASK
+#define SP_SHORTCUT_MODIFIER_MASK (SP_SHORTCUT_SHIFT_MASK|SP_SHORTCUT_CONTROL_MASK|SP_SHORTCUT_ALT_MASK|SP_SHORTCUT_SUPER_MASK|SP_SHORTCUT_HYPER_MASK|SP_SHORTCUT_META_MASK)
/* Returns true if action was performed */
diff --git a/src/ui/CMakeLists.txt b/src/ui/CMakeLists.txt
index c253daed9..b6b88e50b 100644
--- a/src/ui/CMakeLists.txt
+++ b/src/ui/CMakeLists.txt
@@ -72,6 +72,7 @@ set(ui_SRC
dialog/filedialog.cpp
dialog/filedialogimpl-gtkmm.cpp
dialog/fill-and-stroke.cpp
+ dialog/filter-editor.cpp
dialog/filter-effects-dialog.cpp
dialog/find.cpp
dialog/floating-behavior.cpp
@@ -216,6 +217,7 @@ set(ui_SRC
dialog/filedialogimpl-gtkmm.h
dialog/filedialogimpl-win32.h
dialog/fill-and-stroke.h
+ dialog/filter-editor.h
dialog/filter-effects-dialog.h
dialog/find.h
dialog/floating-behavior.h
diff --git a/src/ui/dialog/dialog-manager.cpp b/src/ui/dialog/dialog-manager.cpp
index 01cd9dd0f..c5392864d 100644
--- a/src/ui/dialog/dialog-manager.cpp
+++ b/src/ui/dialog/dialog-manager.cpp
@@ -26,6 +26,7 @@
#include "ui/dialog/extension-editor.h"
#include "ui/dialog/fill-and-stroke.h"
#include "ui/dialog/filter-effects-dialog.h"
+#include "ui/dialog/filter-editor.h"
#include "ui/dialog/find.h"
#include "ui/dialog/glyphs.h"
#include "ui/dialog/inkscape-preferences.h"
@@ -113,6 +114,7 @@ DialogManager::DialogManager() {
registerFactory("ExtensionEditor", &create<ExtensionEditor, FloatingBehavior>);
registerFactory("FillAndStroke", &create<FillAndStroke, FloatingBehavior>);
registerFactory("FilterEffectsDialog", &create<FilterEffectsDialog, FloatingBehavior>);
+ registerFactory("FilterEditorDialog", &create<FilterEditorDialog, FloatingBehavior>);
registerFactory("Find", &create<Find, FloatingBehavior>);
registerFactory("Glyphs", &create<GlyphsPanel, FloatingBehavior>);
registerFactory("IconPreviewPanel", &create<IconPreviewPanel, FloatingBehavior>);
@@ -155,6 +157,7 @@ DialogManager::DialogManager() {
registerFactory("ExtensionEditor", &create<ExtensionEditor, DockBehavior>);
registerFactory("FillAndStroke", &create<FillAndStroke, DockBehavior>);
registerFactory("FilterEffectsDialog", &create<FilterEffectsDialog, DockBehavior>);
+ registerFactory("FilterEditorDialog", &create<FilterEditorDialog, DockBehavior>);
registerFactory("Find", &create<Find, DockBehavior>);
registerFactory("Glyphs", &create<GlyphsPanel, DockBehavior>);
registerFactory("IconPreviewPanel", &create<IconPreviewPanel, DockBehavior>);
diff --git a/src/ui/dialog/filter-editor.cpp b/src/ui/dialog/filter-editor.cpp
new file mode 100644
index 000000000..730f8175c
--- /dev/null
+++ b/src/ui/dialog/filter-editor.cpp
@@ -0,0 +1,128 @@
+/**
+ * @file
+ * Filter Effects dialog.
+ */
+/* Authors:
+ * Marc Jeanmougin
+ *
+ * Copyright (C) 2017 Authors
+ *
+ * Released under GNU GPL. Read the file 'COPYING' for more information.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "dialog-manager.h"
+
+#include <gdkmm/display.h>
+#if GTK_CHECK_VERSION(3, 20, 0)
+# include <gdkmm/seat.h>
+#else
+# include <gdkmm/devicemanager.h>
+#endif
+
+#include "ui/widget/spinbutton.h"
+
+#include <glibmm/i18n.h>
+#include <glibmm/stringutils.h>
+#include <glibmm/main.h>
+#include <glibmm/convert.h>
+#include <glibmm/error.h>
+
+#include "desktop.h"
+
+#include "document.h"
+#include "document-undo.h"
+#include "filter-chemistry.h"
+#include "filter-editor.h"
+#include "filter-enums.h"
+#include "inkscape.h"
+#include "filters/blend.h"
+#include "filters/colormatrix.h"
+#include "filters/componenttransfer.h"
+#include "filters/componenttransfer-funcnode.h"
+#include "filters/convolvematrix.h"
+#include "filters/distantlight.h"
+#include "filters/merge.h"
+#include "filters/mergenode.h"
+#include "filters/pointlight.h"
+#include "filters/spotlight.h"
+
+#include "style.h"
+#include "svg/svg-color.h"
+#include "ui/dialog/filedialog.h"
+#include "verbs.h"
+
+#include "io/sys.h"
+#include "io/resource.h"
+#include "selection-chemistry.h"
+
+#include <string>
+
+#include <gtkmm.h>
+
+using namespace Inkscape::Filters;
+using namespace Inkscape::IO::Resource;
+namespace Inkscape {
+namespace UI {
+namespace Dialog {
+
+FilterEditorDialog::FilterEditorDialog() : UI::Widget::Panel("", "/dialogs/filtereffects", SP_VERB_DIALOG_FILTER_EFFECTS)
+{
+
+ const std::string req_widgets[] = {"FilterEditor", "FilterList", "FilterFERX", "FilterFERY", "FilterFERH", "FilterFERW", "FilterPreview", "FilterPrimitiveDescImage", "FilterPrimitiveList", "FilterPrimitiveDescText", "FilterPrimitiveAdd"};
+ Glib::ustring gladefile = get_filename(UIS, "filter-editor.glade");
+ try {
+ builder = Gtk::Builder::create_from_file(gladefile);
+ } catch(const Glib::Error& ex) {
+ g_warning("Glade file loading failed for filter effect dialog");
+ return;
+ }
+
+ Gtk::Object* test;
+ for(std::string w:req_widgets) {
+ builder->get_widget(w,test);
+ if(!test){
+ g_warning("Required widget %s does not exist", w);
+ return;
+ }
+ }
+
+ builder->get_widget("FilterEditor", FilterEditor);
+ _getContents()->add(*FilterEditor);
+
+//test
+ Gtk::ComboBox *OptionList;
+ builder->get_widget("OptionList",OptionList);
+ FilterStore = builder->get_object("FilterStore");
+ Glib::RefPtr<Gtk::ListStore> fs = Glib::RefPtr<Gtk::ListStore>::cast_static(FilterStore);
+ Gtk::TreeModel::Row row = *(fs->append());
+
+
+
+
+
+}
+FilterEditorDialog::~FilterEditorDialog(){}
+
+
+
+
+
+
+} // Never put these namespaces together unless you are using gcc 6+
+}
+} // P.S. This is for Inkscape::UI::Dialog
+
+/*
+ Local Variables:
+ mode:c++
+ c-file-style:"stroustrup"
+ c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
+ indent-tabs-mode:nil
+ fill-column:99
+ End:
+*/
+// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 :
diff --git a/src/ui/dialog/filter-editor.h b/src/ui/dialog/filter-editor.h
new file mode 100644
index 000000000..6acb83f02
--- /dev/null
+++ b/src/ui/dialog/filter-editor.h
@@ -0,0 +1,53 @@
+/** @file
+ * @brief Filter Editor dialog
+ */
+/* Authors:
+ * Marc Jeanmougin
+ *
+ * Copyright (C) 2017 Authors
+ *
+ * Released under GNU GPL. Read the file 'COPYING' for more information.
+ */
+
+#ifndef INKSCAPE_UI_DIALOG_FILTER_EDITOR_H
+#define INKSCAPE_UI_DIALOG_FILTER_EDITOR_H
+
+#include "attributes.h"
+#include "ui/widget/panel.h"
+#include "sp-filter.h"
+
+#include <gtkmm/notebook.h>
+#include <gtkmm/sizegroup.h>
+#include <gtkmm/builder.h>
+#include <gtkmm/comboboxtext.h>
+#include <gtkmm/combobox.h>
+#include <gtkmm/drawingarea.h>
+#include <gtkmm/liststore.h>
+
+#include <gtkmm/paned.h>
+#include <gtkmm/scrolledwindow.h>
+#include <gtkmm/treeview.h>
+
+namespace Inkscape {
+namespace UI {
+namespace Dialog {
+
+class FilterEditorDialog : public UI::Widget::Panel {
+public:
+
+ FilterEditorDialog();
+ ~FilterEditorDialog();
+
+ static FilterEditorDialog &getInstance()
+ { return *new FilterEditorDialog(); }
+
+// void set_attrs_locked(const bool);
+private:
+ Glib::RefPtr<Gtk::Builder> builder;
+ Glib::RefPtr<Glib::Object> FilterStore;
+ Gtk::Box *FilterEditor;
+};
+}
+}
+}
+#endif
diff --git a/src/ui/dialog/filter-effects-dialog.h b/src/ui/dialog/filter-effects-dialog.h
index 32fabb741..e410a88f9 100644
--- a/src/ui/dialog/filter-effects-dialog.h
+++ b/src/ui/dialog/filter-effects-dialog.h
@@ -132,11 +132,7 @@ private:
Gtk::Button _add;
Glib::RefPtr<Gtk::Menu> _menu;
sigc::signal<void> _signal_filter_changed;
-#if __cplusplus <= 199711L
- std::auto_ptr<Inkscape::XML::SignalObserver> _observer;
-#else
std::unique_ptr<Inkscape::XML::SignalObserver> _observer;
-#endif
};
class PrimitiveColumns : public Gtk::TreeModel::ColumnRecord
@@ -244,11 +240,7 @@ private:
sigc::connection _scroll_connection;
int _autoscroll_y;
int _autoscroll_x;
-#if __cplusplus <= 199711L
- std::auto_ptr<Inkscape::XML::SignalObserver> _observer;
-#else
std::unique_ptr<Inkscape::XML::SignalObserver> _observer;
-#endif
int _input_type_width;
int _input_type_height;
};