summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarc Jeanmougin <marc@jeanmougin.fr>2017-06-29 13:28:06 +0000
committerMarc Jeanmougin <marc@jeanmougin.fr>2017-06-29 13:28:06 +0000
commit54fa1347a2ead6cc79a679a97b39addc1feaea38 (patch)
tree5e37a30db503fd7a0a5c9ea88346208e06ef5d4c
parentMerge branch 'master' of gitlab.com:inkscape/inkscape (diff)
downloadinkscape-54fa1347a2ead6cc79a679a97b39addc1feaea38.tar.gz
inkscape-54fa1347a2ead6cc79a679a97b39addc1feaea38.zip
glade WIP
-rw-r--r--share/ui/CMakeLists.txt2
-rw-r--r--share/ui/filter-editor.glade381
-rw-r--r--src/ui/dialog/filter-editor.cpp61
-rw-r--r--src/ui/dialog/filter-editor.h14
4 files changed, 423 insertions, 35 deletions
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/ui/dialog/filter-editor.cpp b/src/ui/dialog/filter-editor.cpp
index bf4fbdf99..31723506d 100644
--- a/src/ui/dialog/filter-editor.cpp
+++ b/src/ui/dialog/filter-editor.cpp
@@ -29,6 +29,7 @@
#include <glibmm/stringutils.h>
#include <glibmm/main.h>
#include <glibmm/convert.h>
+#include <glibmm/error.h>
#include "desktop.h"
@@ -55,39 +56,53 @@
#include "verbs.h"
#include "io/sys.h"
+#include "io/resource.h"
#include "selection-chemistry.h"
-#include <gtkmm/colorbutton.h>
-#include <gdkmm/general.h>
-#include <gtkmm/checkbutton.h>
+#include <string>
-using namespace Inkscape::Filters;
+#include <gtkmm.h>
+using namespace Inkscape::Filters;
+using namespace Inkscape::IO::Resource;
namespace Inkscape::UI::Dialog {
-FilterEditorDialog::FilterEditorDialog() {
+FilterEditorDialog::FilterEditorDialog() : UI::Widget::Panel("", "/dialogs/filtereffects", SP_VERB_DIALOG_FILTER_EFFECTS)
+{
- builder = Gtk::Builder::create_from_file("/home/mc/Desktop/test.glade");
- builder->get_widget("FilterEditor", FilterEditor);
- builder->get_widget("FilterList", FilterList);
- builder->get_widget("FilterFERX", FilterFERX);
- builder->get_widget("FilterFERY", FilterFERY);
- builder->get_widget("FilterFERH", FilterFERH);
- builder->get_widget("FilterFERW", FilterFERW);
- builder->get_widget("FilterPreview",FilterPreview);
- builder->get_widget("FilterStore", FilterStore);
- builder->get_widget("FilterPrimitiveDescImage", FilterPrimitiveDescImage);
- //builder->get_widget("FilterPrimitiveParameters",FilterPrimitiveParameters);
- builder->get_widget("FilterPrimitiveDescText", FilterPrimitiveDescText);
- builder->get_widget("FilterPrimitiveList", FilterPrimitiveList);
- builder->get_widget("FilterPrimitiveAdd", FilterPrimitiveAdd);
- if (!(FilterList && FilterFERX && FilterFERY && FilterFERH && FilterFERW && FilterPreview
- && FilterStore && FilterPrimitiveDescImage && FilterPrimitiveDescText && FilterPrimitiveList
- && FilterPrimitiveAdd )) {
- g_warning("Some widget does not exist!");
+ 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());
+ row[3]=OptionList;
+
+
+
+
+
}
FilterEditorDialog::~FilterEditorDialog(){}
diff --git a/src/ui/dialog/filter-editor.h b/src/ui/dialog/filter-editor.h
index 1ca4e1760..6acb83f02 100644
--- a/src/ui/dialog/filter-editor.h
+++ b/src/ui/dialog/filter-editor.h
@@ -9,8 +9,8 @@
* Released under GNU GPL. Read the file 'COPYING' for more information.
*/
-#ifndef INKSCAPE_UI_DIALOG_FILTER_EFFECTS_H
-#define INKSCAPE_UI_DIALOG_FILTER_EFFECTS_H
+#ifndef INKSCAPE_UI_DIALOG_FILTER_EDITOR_H
+#define INKSCAPE_UI_DIALOG_FILTER_EDITOR_H
#include "attributes.h"
#include "ui/widget/panel.h"
@@ -44,15 +44,7 @@ public:
// void set_attrs_locked(const bool);
private:
Glib::RefPtr<Gtk::Builder> builder;
- Gtk::ComboBoxText *FilterList;
- Gtk::SpinButton *FilterFERX, *FilterFERY, *FilterFERW, *FilterFERH;
- Gtk::DrawingArea *FilterPreview;
- Gtk::Image *FilterPrimitiveDescImage;
- Gtk::Box *FilterPrimitiveParameters;
- Gtk::Label *FilterPrimitiveDescText;
- Gtk::ComboBox *FilterPrimitiveList;
- Gtk::Button *FilterPrimitiveAdd;
- Gtk::ListStore *FilterStore;
+ Glib::RefPtr<Glib::Object> FilterStore;
Gtk::Box *FilterEditor;
};
}