diff options
| author | Maximilian Albert <maximilian.albert@gmail.com> | 2008-07-29 14:51:39 +0000 |
|---|---|---|
| committer | cilix42 <cilix42@users.sourceforge.net> | 2008-07-29 14:51:39 +0000 |
| commit | 78b970a0a036f78cfd491553b49ffa00214f7a64 (patch) | |
| tree | 18e737c865450e590297c086a8fc17a0ede8d833 /src/live_effects/effect.cpp | |
| parent | Remove superfluous functions (diff) | |
| download | inkscape-78b970a0a036f78cfd491553b49ffa00214f7a64.tar.gz inkscape-78b970a0a036f78cfd491553b49ffa00214f7a64.zip | |
Rename isLPEParam() to isDeletable(), create new class LPEKnotHolderEntity and make inheritance from it a bit less clumsy
(bzr r6448)
Diffstat (limited to 'src/live_effects/effect.cpp')
| -rw-r--r-- | src/live_effects/effect.cpp | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/src/live_effects/effect.cpp b/src/live_effects/effect.cpp index c4bbc31e1..467b1417d 100644 --- a/src/live_effects/effect.cpp +++ b/src/live_effects/effect.cpp @@ -425,6 +425,21 @@ Effect::addHandles(KnotHolder *knotholder, SPDesktop *desktop, SPItem *item) { using namespace Inkscape::LivePathEffect; // add handles provided by the effect itself + addKnotHolderEntities(knotholder, desktop, item); + + // add handles provided by the effect's parameters (if any) + for (std::vector<Parameter *>::iterator p = param_vector.begin(); p != param_vector.end(); ++p) { + (*p)->addKnotHolderEntities(knotholder, desktop, item); + } +} + +void +Effect::addKnotHolderEntities(KnotHolder *knotholder, SPDesktop *desktop, SPItem *item) { + // TODO: The entities in kh_entity_vector are already instantiated during the call + // to registerKnotHolderHandle(), but they are recreated here. Also, we must not + // delete them when the knotholder is destroyed, whence the clumsy function + // isDeletable(). If we could create entities of different classes dynamically, + // this would be much nicer. How to do this? std::vector<std::pair<KnotHolderEntity*, const char*> >::iterator i; for (i = kh_entity_vector.begin(); i != kh_entity_vector.end(); ++i) { KnotHolderEntity *entity = i->first; @@ -433,11 +448,6 @@ Effect::addHandles(KnotHolder *knotholder, SPDesktop *desktop, SPItem *item) { entity->create(desktop, item, knotholder, descr); knotholder->add(entity); } - - // add handles provided by the effect's parameters (if any) - for (std::vector<Parameter *>::iterator p = param_vector.begin(); p != param_vector.end(); ++p) { - (*p)->addKnotHolderEntities(knotholder, desktop, item); - } } void |
