From ff6848d1b619f3c805ef9c038e51e79010a06f35 Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Fri, 22 Mar 2019 02:19:29 +1100 Subject: [PATCH] fixed #654 --- effects/effect.cpp | 13 ++++++++++++- effects/effect.h | 3 +++ ui/collapsiblewidget.cpp | 11 ++++++++--- ui/collapsiblewidget.h | 3 ++- ui/effectui.cpp | 3 +++ 5 files changed, 28 insertions(+), 5 deletions(-) diff --git a/effects/effect.cpp b/effects/effect.cpp index ec17cb84d..60d09f2a4 100644 --- a/effects/effect.cpp +++ b/effects/effect.cpp @@ -123,7 +123,8 @@ Effect::Effect(Clip* c, const EffectMeta *em) : isOpen(false), bound(false), iterations(1), - enabled_(true) + enabled_(true), + expanded_(true) { if (em != nullptr) { // set up UI from effect file @@ -508,6 +509,16 @@ bool Effect::IsEnabled() { return enabled_; } +bool Effect::IsExpanded() +{ + return expanded_; +} + +void Effect::SetExpanded(bool e) +{ + expanded_ = e; +} + void Effect::SetEnabled(bool b) { enabled_ = b; emit EnabledChanged(b); diff --git a/effects/effect.h b/effects/effect.h index b9571ea2f..77c42f51b 100644 --- a/effects/effect.h +++ b/effects/effect.h @@ -154,6 +154,7 @@ public: int gizmo_count(); bool IsEnabled(); + bool IsExpanded(); virtual void refresh(); @@ -214,6 +215,7 @@ public: public slots: void FieldChanged(); void SetEnabled(bool b); + void SetExpanded(bool e); signals: void EnabledChanged(bool); private slots: @@ -243,6 +245,7 @@ private: int iterations; bool enabled_; + bool expanded_; int flags_; diff --git a/ui/collapsiblewidget.cpp b/ui/collapsiblewidget.cpp index 21b719018..22dbab99b 100644 --- a/ui/collapsiblewidget.cpp +++ b/ui/collapsiblewidget.cpp @@ -87,6 +87,13 @@ bool CollapsibleWidget::IsExpanded() { return contents->isVisible(); } +void CollapsibleWidget::SetExpanded(bool s) +{ + contents->setVisible(s); + set_button_icon(s); + emit visibleChanged(s); +} + bool CollapsibleWidget::IsSelected() { return selected; @@ -116,9 +123,7 @@ void CollapsibleWidget::SetTitle(const QString &s) { } void CollapsibleWidget::on_visible_change() { - contents->setVisible(!contents->isVisible()); - set_button_icon(contents->isVisible()); - emit visibleChanged(); + SetExpanded(!IsExpanded()); } CollapsibleWidgetHeader::CollapsibleWidgetHeader(QWidget* parent) : QWidget(parent), selected(false) { diff --git a/ui/collapsiblewidget.h b/ui/collapsiblewidget.h index 3cc25c522..cd2153832 100644 --- a/ui/collapsiblewidget.h +++ b/ui/collapsiblewidget.h @@ -52,6 +52,7 @@ public: void SetTitle(const QString &); bool IsFocused(); bool IsExpanded(); + void SetExpanded(bool s); bool IsSelected(); protected: QCheckBox* enabled_check; @@ -68,7 +69,7 @@ private: signals: void deselect_others(QWidget*); - void visibleChanged(); + void visibleChanged(bool); private slots: void on_visible_change(); diff --git a/ui/effectui.cpp b/ui/effectui.cpp index feeb0334b..53da884fc 100644 --- a/ui/effectui.cpp +++ b/ui/effectui.cpp @@ -68,6 +68,9 @@ EffectUI::EffectUI(Effect* e) : QWidget* ui = new QWidget(this); SetContents(ui); + SetExpanded(e->IsExpanded()); + connect(this, SIGNAL(visibleChanged(bool)), e, SLOT(SetExpanded(bool))); + layout_ = new QGridLayout(ui); layout_->setSpacing(4);