diff options
| author | Johan B. C. Engelen <jbc.engelen@swissonline.ch> | 2007-10-28 16:03:07 +0000 |
|---|---|---|
| committer | johanengelen <johanengelen@users.sourceforge.net> | 2007-10-28 16:03:07 +0000 |
| commit | 96b65f32d922a989131ae91798801ea54c4e8b10 (patch) | |
| tree | 627327d9468b399e064111734831864c4730bc2a /src/live_effects/effect.cpp | |
| parent | added perfectboundcover.inx to translatable extensions (diff) | |
| download | inkscape-96b65f32d922a989131ae91798801ea54c4e8b10.tar.gz inkscape-96b65f32d922a989131ae91798801ea54c4e8b10.zip | |
LPE: implement 'edit next LPE parameter'. Accessible through key '7'.
(bzr r3968)
Diffstat (limited to 'src/live_effects/effect.cpp')
| -rw-r--r-- | src/live_effects/effect.cpp | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/live_effects/effect.cpp b/src/live_effects/effect.cpp index cfabc88b4..3802066ec 100644 --- a/src/live_effects/effect.cpp +++ b/src/live_effects/effect.cpp @@ -90,6 +90,7 @@ Effect::Effect(LivePathEffectObject *lpeobject) vbox = NULL; tooltips = NULL; lpeobj = lpeobject; + oncanvasedit_it = param_map.begin(); } Effect::~Effect() @@ -261,6 +262,46 @@ Effect::getSPDoc() return SP_OBJECT_DOCUMENT(lpeobj); } +Parameter * +Effect::getNextOncanvasEditableParam() +{ + oncanvasedit_it++; + if (oncanvasedit_it == param_map.end()) { + oncanvasedit_it = param_map.begin(); + } + param_map_type::iterator old_it = oncanvasedit_it; + + do { + Parameter * param = oncanvasedit_it->second; + if(param->oncanvas_editable) { + return param; + } else { + oncanvasedit_it++; + if (oncanvasedit_it == param_map.end()) { // loop round the map + oncanvasedit_it = param_map.begin(); + } + } + } while (oncanvasedit_it != old_it); // iterate until complete loop through map has been made + + return NULL; +} + +void +Effect::editNextParamOncanvas(SPItem * item, SPDesktop * desktop) +{ + if (!desktop) return; + + Parameter * param = getNextOncanvasEditableParam(); + if (param) { + param->param_editOncanvas(item, desktop); + gchar *message = g_strdup_printf(_("Editing parameter <b>%s</b>."), param->param_label.c_str()); + desktop->messageStack()->flash(Inkscape::NORMAL_MESSAGE, message); + g_free(message); + } else { + desktop->messageStack()->flash( Inkscape::WARNING_MESSAGE, + _("None of the applied path effect's parameters can be edited on-canvas.") ); + } +} } /* namespace LivePathEffect */ |
