diff options
| author | Marc Jeanmougin <marc@jeanmougin.fr> | 2017-06-29 13:28:06 +0000 |
|---|---|---|
| committer | Marc Jeanmougin <marc@jeanmougin.fr> | 2017-06-29 13:28:06 +0000 |
| commit | 54fa1347a2ead6cc79a679a97b39addc1feaea38 (patch) | |
| tree | 5e37a30db503fd7a0a5c9ea88346208e06ef5d4c | |
| parent | Merge branch 'master' of gitlab.com:inkscape/inkscape (diff) | |
| download | inkscape-54fa1347a2ead6cc79a679a97b39addc1feaea38.tar.gz inkscape-54fa1347a2ead6cc79a679a97b39addc1feaea38.zip | |
glade WIP
| -rw-r--r-- | share/ui/CMakeLists.txt | 2 | ||||
| -rw-r--r-- | share/ui/filter-editor.glade | 381 | ||||
| -rw-r--r-- | src/ui/dialog/filter-editor.cpp | 61 | ||||
| -rw-r--r-- | src/ui/dialog/filter-editor.h | 14 |
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; }; } |
