summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorjtx <javier.arraiza@marker.es>2015-09-11 09:12:55 +0000
committerjtx <javier.arraiza@marker.es>2015-09-11 09:12:55 +0000
commit9484c04f9676c7b6588f2918742c6cd08fd51f95 (patch)
tree2bea0facbea81812b54e819d820cd53562a4fc33 /src
parentDocumentation. Updating the FAQ link in the Help>FAQ menu. Updating doc links... (diff)
downloadinkscape-9484c04f9676c7b6588f2918742c6cd08fd51f95.tar.gz
inkscape-9484c04f9676c7b6588f2918742c6cd08fd51f95.zip
fixes bug:1492711 in bspline and fillet chamfer
Fixed bugs: - https://launchpad.net/bugs/1492711 (bzr r14356)
Diffstat (limited to 'src')
-rw-r--r--src/live_effects/lpe-bspline.cpp7
-rw-r--r--src/live_effects/lpe-fillet-chamfer.cpp10
-rw-r--r--src/live_effects/parameter/parameter.cpp16
-rw-r--r--src/live_effects/parameter/parameter.h5
4 files changed, 26 insertions, 12 deletions
diff --git a/src/live_effects/lpe-bspline.cpp b/src/live_effects/lpe-bspline.cpp
index 2b4a5c4a7..731b5d645 100644
--- a/src/live_effects/lpe-bspline.cpp
+++ b/src/live_effects/lpe-bspline.cpp
@@ -10,6 +10,8 @@
#include "svg/svg.h"
#include "xml/repr.h"
#include "preferences.h"
+#include "document-undo.h"
+#include "verbs.h"
// TODO due to internal breakage in glibmm headers, this must be last:
#include <glibmm/i18n.h>
@@ -42,10 +44,12 @@ LPEBSpline::LPEBSpline(LivePathEffectObject *lpeobject)
weight.param_set_range(NO_POWER, 100.0);
weight.param_set_increments(0.1, 0.1);
weight.param_set_digits(4);
+ weight.param_overwrite_widget(true);
steps.param_set_range(1, 10);
steps.param_set_increments(1, 1);
steps.param_set_digits(0);
+ steps.param_overwrite_widget(true);
helper_size.param_set_range(0.0, 999.0);
helper_size.param_set_increments(1, 1);
@@ -141,16 +145,19 @@ Gtk::Widget *LPEBSpline::newWidget()
void LPEBSpline::toDefaultWeight()
{
changeWeight(DEFAULT_START_POWER * 100);
+ DocumentUndo::done(getSPDoc(), SP_VERB_DIALOG_LIVE_PATH_EFFECT, _("Change to default weight"));
}
void LPEBSpline::toMakeCusp()
{
changeWeight(NO_POWER);
+ DocumentUndo::done(getSPDoc(), SP_VERB_DIALOG_LIVE_PATH_EFFECT, _("Change to 0 weight"));
}
void LPEBSpline::toWeight()
{
changeWeight(weight);
+ DocumentUndo::done(getSPDoc(), SP_VERB_DIALOG_LIVE_PATH_EFFECT, _("Change scalar parameter"));
}
void LPEBSpline::changeWeight(double weight_ammount)
diff --git a/src/live_effects/lpe-fillet-chamfer.cpp b/src/live_effects/lpe-fillet-chamfer.cpp
index a9a96864a..209805da3 100644
--- a/src/live_effects/lpe-fillet-chamfer.cpp
+++ b/src/live_effects/lpe-fillet-chamfer.cpp
@@ -76,12 +76,15 @@ LPEFilletChamfer::LPEFilletChamfer(LivePathEffectObject *lpeobject) :
radius.param_set_range(0., infinity());
radius.param_set_increments(1, 1);
radius.param_set_digits(4);
+ radius.param_overwrite_widget(true);
chamfer_steps.param_set_range(1, 999);
chamfer_steps.param_set_increments(1, 1);
chamfer_steps.param_set_digits(0);
+ chamfer_steps.param_overwrite_widget(true);
helper_size.param_set_range(0, infinity());
helper_size.param_set_increments(5, 5);
helper_size.param_set_digits(0);
+ helper_size.param_overwrite_widget(true);
fillet_chamfer_values.set_chamfer_steps(3);
}
@@ -226,18 +229,21 @@ void LPEFilletChamfer::updateFillet()
}
Piecewise<D2<SBasis> > const &pwd2 = fillet_chamfer_values.get_pwd2();
doUpdateFillet(path_from_piecewise(pwd2, tolerance), power);
+ DocumentUndo::done(getSPDoc(), SP_VERB_DIALOG_LIVE_PATH_EFFECT, _("Change scalar parameter"));
}
void LPEFilletChamfer::fillet()
{
Piecewise<D2<SBasis> > const &pwd2 = fillet_chamfer_values.get_pwd2();
doChangeType(path_from_piecewise(pwd2, tolerance), 1);
+ DocumentUndo::done(getSPDoc(), SP_VERB_DIALOG_LIVE_PATH_EFFECT, _("Convert to fillet"));
}
void LPEFilletChamfer::inverseFillet()
{
Piecewise<D2<SBasis> > const &pwd2 = fillet_chamfer_values.get_pwd2();
doChangeType(path_from_piecewise(pwd2, tolerance), 2);
+ DocumentUndo::done(getSPDoc(), SP_VERB_DIALOG_LIVE_PATH_EFFECT, _("Convert to inverse fillet"));
}
void LPEFilletChamfer::chamferSubdivisions()
@@ -245,6 +251,7 @@ void LPEFilletChamfer::chamferSubdivisions()
fillet_chamfer_values.set_chamfer_steps(chamfer_steps);
Piecewise<D2<SBasis> > const &pwd2 = fillet_chamfer_values.get_pwd2();
doChangeType(path_from_piecewise(pwd2, tolerance), chamfer_steps + 5000);
+ DocumentUndo::done(getSPDoc(), SP_VERB_DIALOG_LIVE_PATH_EFFECT, _("Change scalar parameter"));
}
void LPEFilletChamfer::chamfer()
@@ -252,6 +259,7 @@ void LPEFilletChamfer::chamfer()
fillet_chamfer_values.set_chamfer_steps(chamfer_steps);
Piecewise<D2<SBasis> > const &pwd2 = fillet_chamfer_values.get_pwd2();
doChangeType(path_from_piecewise(pwd2, tolerance), chamfer_steps + 3000);
+ DocumentUndo::done(getSPDoc(), SP_VERB_DIALOG_LIVE_PATH_EFFECT, _("Convert to chamfer"));
}
void LPEFilletChamfer::inverseChamfer()
@@ -259,6 +267,7 @@ void LPEFilletChamfer::inverseChamfer()
fillet_chamfer_values.set_chamfer_steps(chamfer_steps);
Piecewise<D2<SBasis> > const &pwd2 = fillet_chamfer_values.get_pwd2();
doChangeType(path_from_piecewise(pwd2, tolerance), chamfer_steps + 4000);
+ DocumentUndo::done(getSPDoc(), SP_VERB_DIALOG_LIVE_PATH_EFFECT, _("Convert to inverse fillet"));
}
void LPEFilletChamfer::refreshKnots()
@@ -270,6 +279,7 @@ void LPEFilletChamfer::refreshKnots()
tools_switch(desktop, TOOLS_SELECT);
tools_switch(desktop, TOOLS_NODES);
}
+ DocumentUndo::done(getSPDoc(), SP_VERB_DIALOG_LIVE_PATH_EFFECT, _("Knots and helper paths refreshed"));
}
void LPEFilletChamfer::doUpdateFillet(Geom::PathVector const &original_pathv, double power)
diff --git a/src/live_effects/parameter/parameter.cpp b/src/live_effects/parameter/parameter.cpp
index 64464f200..98aab287f 100644
--- a/src/live_effects/parameter/parameter.cpp
+++ b/src/live_effects/parameter/parameter.cpp
@@ -11,7 +11,6 @@
#include "live_effects/effect.h"
#include "svg/svg.h"
#include "xml/repr.h"
-#include "document-undo.h"
#include "svg/stringstream.h"
@@ -65,13 +64,13 @@ ScalarParam::ScalarParam( const Glib::ustring& label, const Glib::ustring& tip,
digits(2),
inc_step(0.1),
inc_page(1),
- add_slider(false)
+ add_slider(false),
+ overwrite_widget(false)
{
}
ScalarParam::~ScalarParam()
{
- _value_changed_connection.disconnect();
}
bool
@@ -146,10 +145,9 @@ ScalarParam::param_make_integer(bool yes)
}
void
-ScalarParam::on_value_changed()
+ScalarParam::param_overwrite_widget(bool overwrite_widget)
{
- DocumentUndo::done(param_effect->getSPDoc(), SP_VERB_DIALOG_LIVE_PATH_EFFECT,
- _("Change scalar parameter"));
+ this->overwrite_widget = overwrite_widget;
}
Gtk::Widget *
@@ -166,9 +164,9 @@ ScalarParam::param_newWidget()
if (add_slider) {
rsu->addSlider();
}
-
- rsu->set_undo_parameters(SP_VERB_DIALOG_LIVE_PATH_EFFECT, _("Change scalar parameter"));
- _value_changed_connection = rsu->signal_value_changed().connect (sigc::mem_fun (*this, &ScalarParam::on_value_changed));
+ if(!overwrite_widget){
+ rsu->set_undo_parameters(SP_VERB_DIALOG_LIVE_PATH_EFFECT, _("Change scalar parameter"));
+ }
return dynamic_cast<Gtk::Widget *> (rsu);
}
diff --git a/src/live_effects/parameter/parameter.h b/src/live_effects/parameter/parameter.h
index c24033c42..8cda42a8e 100644
--- a/src/live_effects/parameter/parameter.h
+++ b/src/live_effects/parameter/parameter.h
@@ -12,7 +12,6 @@
#include <glibmm/ustring.h>
#include <2geom/forward.h>
#include <2geom/pathvector.h>
-#include <sigc++/sigc++.h>
// In gtk2, this wasn't an issue; we could toss around
// G_MAXDOUBLE and not worry about size allocations. But
@@ -112,19 +111,18 @@ public:
virtual void param_set_default();
void param_set_value(gdouble val);
void param_make_integer(bool yes = true);
- void on_value_changed();
void param_set_range(gdouble min, gdouble max);
void param_set_digits(unsigned digits);
void param_set_increments(double step, double page);
void addSlider(bool add_slider_widget) { add_slider = add_slider_widget; };
+ void param_overwrite_widget(bool overwrite_widget);
virtual Gtk::Widget * param_newWidget();
inline operator gdouble() const { return value; };
protected:
- sigc::connection _value_changed_connection;
gdouble value;
gdouble min;
gdouble max;
@@ -134,6 +132,7 @@ protected:
double inc_step;
double inc_page;
bool add_slider;
+ bool overwrite_widget;
private:
ScalarParam(const ScalarParam&);