summaryrefslogtreecommitdiffstats
path: root/src/live_effects/effect.cpp
diff options
context:
space:
mode:
authorMaximilian Albert <maximilian.albert@gmail.com>2008-07-29 14:51:39 +0000
committercilix42 <cilix42@users.sourceforge.net>2008-07-29 14:51:39 +0000
commit78b970a0a036f78cfd491553b49ffa00214f7a64 (patch)
tree18e737c865450e590297c086a8fc17a0ede8d833 /src/live_effects/effect.cpp
parentRemove superfluous functions (diff)
downloadinkscape-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.cpp20
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