summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJabier Arraiza Cenoz <jabier.arraiza@marker.es>2015-10-18 19:13:13 +0000
committerJabiertxof <jtx@jtx.marker.es>2015-10-18 19:13:13 +0000
commit7d224d1cf9bfb0d6555721c24c06ebed11b1b15f (patch)
tree03e04552ce6e2b641ac962c8ca93f3db6fb27c58 /src
parentMake the handle of a dynamic offset snappable (diff)
downloadinkscape-7d224d1cf9bfb0d6555721c24c06ebed11b1b15f.tar.gz
inkscape-7d224d1cf9bfb0d6555721c24c06ebed11b1b15f.zip
Added "Spray Friendly" Parameter to roughen LPE
Adds, but not used by the moment a extra parameter to bool and scalar LPE parameter to hide the widget. This allow to store scalar values and bool values inside the LPEObject to intermediate use by the LPE, whithout disturbing to the user. (bzr r14420)
Diffstat (limited to 'src')
-rw-r--r--src/live_effects/lpe-roughen.cpp23
-rw-r--r--src/live_effects/lpe-roughen.h1
-rw-r--r--src/live_effects/parameter/bool.cpp32
-rw-r--r--src/live_effects/parameter/bool.h4
-rw-r--r--src/live_effects/parameter/parameter.cpp37
-rw-r--r--src/live_effects/parameter/parameter.h4
6 files changed, 66 insertions, 35 deletions
diff --git a/src/live_effects/lpe-roughen.cpp b/src/live_effects/lpe-roughen.cpp
index ed1ddcaf8..136190b8f 100644
--- a/src/live_effects/lpe-roughen.cpp
+++ b/src/live_effects/lpe-roughen.cpp
@@ -18,6 +18,7 @@
#include "live_effects/lpe-roughen.h"
#include "display/curve.h"
#include "live_effects/parameter/parameter.h"
+#include <boost/functional/hash.hpp>
#include "helper/geom.h"
#include <glibmm/i18n.h>
#include <cmath>
@@ -56,7 +57,9 @@ LPERoughen::LPERoughen(LivePathEffectObject *lpeobject)
shift_handles_sym(_("Sym shift node handles"), _("Sym shift node handles"),
"shift_handles_sym", &wr, this, false),
fixed_displacement(_("Fixed displacement"), _("Fixed displacement, 1/3 of segment lenght"),
- "fixed_displacement", &wr, this, false)
+ "fixed_displacement", &wr, this, false),
+ spray_tool_friendly(_("Spray Tool friendly"), _("For use with spray tool"),
+ "spray_tool_friendly", &wr, this, false)
{
registerParameter(&method);
registerParameter(&max_segment_size);
@@ -69,6 +72,7 @@ LPERoughen::LPERoughen(LivePathEffectObject *lpeobject)
registerParameter(&retract_handles);
registerParameter(&shift_handles_sym);
registerParameter(&fixed_displacement);
+ registerParameter(&spray_tool_friendly);
displace_x.param_set_range(0., Geom::infinity());
displace_y.param_set_range(0., Geom::infinity());
global_randomize.param_set_range(0., Geom::infinity());
@@ -86,7 +90,12 @@ void LPERoughen::doBeforeEffect(SPLPEItem const *lpeitem)
{
displace_x.resetRandomizer();
displace_y.resetRandomizer();
- global_randomize.resetRandomizer();
+ if(!spray_tool_friendly){
+ global_randomize.resetRandomizer();
+ } else {
+ boost::hash<std::string> string_hash;
+ global_randomize.param_set_value(global_randomize.get_value(), static_cast<long>(string_hash(lpeitem->getId())));
+ }
srand(1);
SPLPEItem * item = const_cast<SPLPEItem*>(lpeitem);
item->apply_to_clippath(item);
@@ -131,6 +140,15 @@ Gtk::Widget *LPERoughen::newWidget()
vbox->pack_start(*Gtk::manage(new Gtk::HSeparator()),
Gtk::PACK_EXPAND_WIDGET);
}
+ if (param->param_key == "shift_nodes") {
+ Gtk::Label *options = Gtk::manage(new Gtk::Label(
+ Glib::ustring(_("<b>Options</b> Modify options to rough")),
+ Gtk::ALIGN_START));
+ options->set_use_markup(true);
+ vbox->pack_start(*options, false, false, 2);
+ vbox->pack_start(*Gtk::manage(new Gtk::HSeparator()),
+ Gtk::PACK_EXPAND_WIDGET);
+ }
Glib::ustring *tip = param->param_getTooltip();
if (widg) {
vbox->pack_start(*widg, true, true, 2);
@@ -142,7 +160,6 @@ Gtk::Widget *LPERoughen::newWidget()
}
}
}
-
++it;
}
return dynamic_cast<Gtk::Widget *>(vbox);
diff --git a/src/live_effects/lpe-roughen.h b/src/live_effects/lpe-roughen.h
index 57a516310..178c3b657 100644
--- a/src/live_effects/lpe-roughen.h
+++ b/src/live_effects/lpe-roughen.h
@@ -55,6 +55,7 @@ private:
BoolParam retract_handles;
BoolParam shift_handles_sym;
BoolParam fixed_displacement;
+ BoolParam spray_tool_friendly;
LPERoughen(const LPERoughen &);
LPERoughen &operator=(const LPERoughen &);
diff --git a/src/live_effects/parameter/bool.cpp b/src/live_effects/parameter/bool.cpp
index c1e8f8a7b..9ecadbdeb 100644
--- a/src/live_effects/parameter/bool.cpp
+++ b/src/live_effects/parameter/bool.cpp
@@ -21,8 +21,8 @@ namespace LivePathEffect {
BoolParam::BoolParam( const Glib::ustring& label, const Glib::ustring& tip,
const Glib::ustring& key, Inkscape::UI::Widget::Registry* wr,
- Effect* effect, bool default_value )
- : Parameter(label, tip, key, wr, effect), value(default_value), defvalue(default_value)
+ Effect* effect, bool default_value , bool no_widget)
+ : Parameter(label, tip, key, wr, effect), value(default_value), defvalue(default_value), hide_widget(no_widget)
{
}
@@ -53,20 +53,24 @@ BoolParam::param_getSVGValue() const
Gtk::Widget *
BoolParam::param_newWidget()
{
- Inkscape::UI::Widget::RegisteredCheckButton * checkwdg = Gtk::manage(
- new Inkscape::UI::Widget::RegisteredCheckButton( param_label,
- param_tooltip,
- param_key,
- *param_wr,
- false,
- param_effect->getRepr(),
- param_effect->getSPDoc()) );
+ if(!hide_widget){
+ Inkscape::UI::Widget::RegisteredCheckButton * checkwdg = Gtk::manage(
+ new Inkscape::UI::Widget::RegisteredCheckButton( param_label,
+ param_tooltip,
+ param_key,
+ *param_wr,
+ false,
+ param_effect->getRepr(),
+ param_effect->getSPDoc()) );
- checkwdg->setActive(value);
- checkwdg->setProgrammatically = false;
- checkwdg->set_undo_parameters(SP_VERB_DIALOG_LIVE_PATH_EFFECT, _("Change bool parameter"));
+ checkwdg->setActive(value);
+ checkwdg->setProgrammatically = false;
+ checkwdg->set_undo_parameters(SP_VERB_DIALOG_LIVE_PATH_EFFECT, _("Change bool parameter"));
- return dynamic_cast<Gtk::Widget *> (checkwdg);
+ return dynamic_cast<Gtk::Widget *> (checkwdg);
+ } else {
+ return NULL;
+ }
}
void
diff --git a/src/live_effects/parameter/bool.h b/src/live_effects/parameter/bool.h
index b45eeb0b3..403dd0b87 100644
--- a/src/live_effects/parameter/bool.h
+++ b/src/live_effects/parameter/bool.h
@@ -25,7 +25,8 @@ public:
const Glib::ustring& key,
Inkscape::UI::Widget::Registry* wr,
Effect* effect,
- bool default_value = false);
+ bool default_value = false,
+ bool no_widget = false);
virtual ~BoolParam();
virtual Gtk::Widget * param_newWidget();
@@ -46,6 +47,7 @@ private:
bool value;
bool defvalue;
+ bool hide_widget;
};
diff --git a/src/live_effects/parameter/parameter.cpp b/src/live_effects/parameter/parameter.cpp
index 98aab287f..d4e213948 100644
--- a/src/live_effects/parameter/parameter.cpp
+++ b/src/live_effects/parameter/parameter.cpp
@@ -54,7 +54,7 @@ void Parameter::write_to_SVG(void)
*/
ScalarParam::ScalarParam( const Glib::ustring& label, const Glib::ustring& tip,
const Glib::ustring& key, Inkscape::UI::Widget::Registry* wr,
- Effect* effect, gdouble default_value)
+ Effect* effect, gdouble default_value, bool no_widget)
: Parameter(label, tip, key, wr, effect),
value(default_value),
min(-SCALARPARAM_G_MAXDOUBLE),
@@ -65,7 +65,8 @@ ScalarParam::ScalarParam( const Glib::ustring& label, const Glib::ustring& tip,
inc_step(0.1),
inc_page(1),
add_slider(false),
- overwrite_widget(false)
+ overwrite_widget(false),
+ hide_widget(no_widget)
{
}
@@ -153,21 +154,25 @@ ScalarParam::param_overwrite_widget(bool overwrite_widget)
Gtk::Widget *
ScalarParam::param_newWidget()
{
- Inkscape::UI::Widget::RegisteredScalar *rsu = Gtk::manage( new Inkscape::UI::Widget::RegisteredScalar(
- param_label, param_tooltip, param_key, *param_wr, param_effect->getRepr(), param_effect->getSPDoc() ) );
-
- rsu->setValue(value);
- rsu->setDigits(digits);
- rsu->setIncrements(inc_step, inc_page);
- rsu->setRange(min, max);
- rsu->setProgrammatically = false;
- if (add_slider) {
- rsu->addSlider();
- }
- if(!overwrite_widget){
- rsu->set_undo_parameters(SP_VERB_DIALOG_LIVE_PATH_EFFECT, _("Change scalar parameter"));
+ if(!hide_widget){
+ Inkscape::UI::Widget::RegisteredScalar *rsu = Gtk::manage( new Inkscape::UI::Widget::RegisteredScalar(
+ param_label, param_tooltip, param_key, *param_wr, param_effect->getRepr(), param_effect->getSPDoc() ) );
+
+ rsu->setValue(value);
+ rsu->setDigits(digits);
+ rsu->setIncrements(inc_step, inc_page);
+ rsu->setRange(min, max);
+ rsu->setProgrammatically = false;
+ if (add_slider) {
+ rsu->addSlider();
+ }
+ if(!overwrite_widget){
+ rsu->set_undo_parameters(SP_VERB_DIALOG_LIVE_PATH_EFFECT, _("Change scalar parameter"));
+ }
+ return dynamic_cast<Gtk::Widget *> (rsu);
+ } else {
+ return NULL;
}
- return dynamic_cast<Gtk::Widget *> (rsu);
}
void
diff --git a/src/live_effects/parameter/parameter.h b/src/live_effects/parameter/parameter.h
index 8cda42a8e..0ef28650a 100644
--- a/src/live_effects/parameter/parameter.h
+++ b/src/live_effects/parameter/parameter.h
@@ -102,7 +102,8 @@ public:
const Glib::ustring& key,
Inkscape::UI::Widget::Registry* wr,
Effect* effect,
- gdouble default_value = 1.0);
+ gdouble default_value = 1.0,
+ bool no_widget = false);
virtual ~ScalarParam();
virtual bool param_readSVGValue(const gchar * strvalue);
@@ -133,6 +134,7 @@ protected:
double inc_page;
bool add_slider;
bool overwrite_widget;
+ bool hide_widget;
private:
ScalarParam(const ScalarParam&);