From 7e602284a2b4ab6ad86333d5a02b73020f61e194 Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Fri, 18 Jan 2019 20:55:23 +1100 Subject: [PATCH] auto-disable graphs if their relative fields are disabled --- panels/grapheditor.cpp | 14 +++++++------- project/effectfield.cpp | 4 ++++ project/effectfield.h | 1 + ui/graphview.cpp | 4 +++- 4 files changed, 15 insertions(+), 8 deletions(-) diff --git a/panels/grapheditor.cpp b/panels/grapheditor.cpp index e330f15f8..4444bb302 100644 --- a/panels/grapheditor.cpp +++ b/panels/grapheditor.cpp @@ -20,7 +20,7 @@ GraphEditor::GraphEditor(QWidget* parent) : QDockWidget(parent), row(nullptr) { setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); - setWindowTitle(tr("Graph Editor")); + setWindowTitle(tr("Graph Editor")); resize(720, 480); QWidget* main_widget = new QWidget(); @@ -58,13 +58,13 @@ GraphEditor::GraphEditor(QWidget* parent) : QDockWidget(parent), row(nullptr) { left_tool_layout->addWidget(keyframe_nav); left_tool_layout->addStretch(); - linear_button = new QPushButton(tr("Linear")); + linear_button = new QPushButton(tr("Linear")); linear_button->setProperty("type", KEYFRAME_TYPE_LINEAR); linear_button->setCheckable(true); - bezier_button = new QPushButton(tr("Bezier")); + bezier_button = new QPushButton(tr("Bezier")); bezier_button->setProperty("type", KEYFRAME_TYPE_BEZIER); bezier_button->setCheckable(true); - hold_button = new QPushButton(tr("Hold")); + hold_button = new QPushButton(tr("Hold")); hold_button->setProperty("type", KEYFRAME_TYPE_HOLD); hold_button->setCheckable(true); @@ -160,7 +160,7 @@ void GraphEditor::set_row(EffectRow *r) { if (field->type == EFFECT_FIELD_DOUBLE) { QPushButton* slider_button = new QPushButton(); slider_button->setCheckable(true); - slider_button->setChecked(true); + slider_button->setChecked(field->is_enabled()); slider_button->setIcon(QIcon(":/icons/record.png")); slider_button->setProperty("field", i); slider_button->setIconSize(QSize(8, 8)); @@ -199,11 +199,11 @@ void GraphEditor::set_row(EffectRow *r) { } bool GraphEditor::view_is_focused() { - return view->hasFocus() || header->hasFocus(); + return view->hasFocus() || header->hasFocus(); } bool GraphEditor::view_is_under_mouse() { - return view->underMouse() || header->underMouse(); + return view->underMouse() || header->underMouse(); } void GraphEditor::delete_selected_keys() { diff --git a/project/effectfield.cpp b/project/effectfield.cpp index b9b8766e1..62a80a8d5 100644 --- a/project/effectfield.cpp +++ b/project/effectfield.cpp @@ -298,6 +298,10 @@ QWidget* EffectField::get_ui_element() { return ui_element; } +bool EffectField::is_enabled() { + return ui_element->isEnabled(); +} + void EffectField::set_enabled(bool e) { ui_element->setEnabled(e); } diff --git a/project/effectfield.h b/project/effectfield.h index 1564e9a27..c31fddffd 100644 --- a/project/effectfield.h +++ b/project/effectfield.h @@ -63,6 +63,7 @@ public: void set_filename(const QString& s); QWidget* get_ui_element(); + bool is_enabled(); void set_enabled(bool e); QVector keyframes; QWidget* ui_element; diff --git a/ui/graphview.cpp b/ui/graphview.cpp index 2c7378142..be13a5f0a 100644 --- a/ui/graphview.cpp +++ b/ui/graphview.cpp @@ -745,7 +745,9 @@ void GraphView::set_row(EffectRow *r) { row = r; if (row != nullptr) { field_visibility.resize(row->fieldCount()); - field_visibility.fill(true); + for (int i=0;ifieldCount();i++) { + field_visibility[i] = row->field(i)->is_enabled(); + } visible_in = row->parent_effect->parent_clip->timeline_in; set_view_to_all(); } else {