diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/ui/dialog/livepatheffect-editor.cpp | 33 | ||||
| -rw-r--r-- | src/ui/dialog/livepatheffect-editor.h | 2 |
2 files changed, 21 insertions, 14 deletions
diff --git a/src/ui/dialog/livepatheffect-editor.cpp b/src/ui/dialog/livepatheffect-editor.cpp index 93e17c324..3956f0140 100644 --- a/src/ui/dialog/livepatheffect-editor.cpp +++ b/src/ui/dialog/livepatheffect-editor.cpp @@ -65,7 +65,8 @@ LivePathEffectEditor::LivePathEffectEditor() explain_label("", Gtk::ALIGN_CENTER), effectapplication_frame(_("Apply new effect")), effectcontrol_frame(_("Current effect")), - current_desktop(NULL) + current_desktop(NULL), + currect_effect(NULL) { Gtk::Box *contents = _getContents(); contents->set_spacing(4); @@ -110,21 +111,25 @@ LivePathEffectEditor::~LivePathEffectEditor() void LivePathEffectEditor::showParams(LivePathEffect::Effect* effect) { - if (effectwidget) { - effectcontrol_vbox.remove(*effectwidget); - delete effectwidget; - effectwidget = NULL; - } + if (currect_effect != effect) { + currect_effect = effect; - explain_label.set_markup("<b>" + effect->getName() + "</b>"); - effectwidget = effect->newWidget(&tooltips); - if (effectwidget) { - effectcontrol_vbox.pack_start(*effectwidget, true, true); - } - button_remove.show(); + if (effectwidget) { + effectcontrol_vbox.remove(*effectwidget); + delete effectwidget; + effectwidget = NULL; + } - effectcontrol_vbox.show_all_children(); - // fixme: do resizing of dialog + explain_label.set_markup("<b>" + effect->getName() + "</b>"); + effectwidget = effect->newWidget(&tooltips); + if (effectwidget) { + effectcontrol_vbox.pack_start(*effectwidget, true, true); + } + button_remove.show(); + + effectcontrol_vbox.show_all_children(); + // fixme: add resizing of dialog + } } void diff --git a/src/ui/dialog/livepatheffect-editor.h b/src/ui/dialog/livepatheffect-editor.h index dc852dd7f..4f635ad51 100644 --- a/src/ui/dialog/livepatheffect-editor.h +++ b/src/ui/dialog/livepatheffect-editor.h @@ -65,6 +65,8 @@ private: SPDesktop * current_desktop; + LivePathEffect::Effect* currect_effect; + LivePathEffectEditor(LivePathEffectEditor const &d); LivePathEffectEditor& operator=(LivePathEffectEditor const &d); }; |
