From 9e912ef10356b1897b12b575a1750355d28143eb Mon Sep 17 00:00:00 2001 From: itsmattkc Date: Thu, 3 Jan 2019 23:26:27 +1100 Subject: [PATCH] added playback control shortcuts to graph editor --- mainwindow.cpp | 27 +++++++++++++++++++++------ panels/grapheditor.cpp | 6 +++++- panels/grapheditor.h | 1 + ui/graphview.cpp | 1 + 4 files changed, 28 insertions(+), 7 deletions(-) diff --git a/mainwindow.cpp b/mainwindow.cpp index e1cb1764e..42afa55d2 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -727,7 +727,7 @@ void MainWindow::setup_menus() { tools_menu->addAction("Preferences", this, SLOT(preferences()), QKeySequence("Ctrl+.")); #ifdef QT_DEBUG - tools_menu->addAction("Clear Undo", this, SLOT(clear_undo_stack()), QKeySequence("Ctrl+.")); + tools_menu->addAction("Clear Undo", this, SLOT(clear_undo_stack())); #endif // INITIALIZE HELP MENU @@ -824,7 +824,10 @@ void MainWindow::reset_layout() { } void MainWindow::go_to_start() { - if (panel_timeline->focused() || panel_sequence_viewer->is_focused() || panel_effect_controls->keyframe_focus()) { + if (panel_timeline->focused() + || panel_sequence_viewer->is_focused() + || panel_effect_controls->keyframe_focus() + || panel_graph_editor->view_is_focused()) { panel_sequence_viewer->go_to_start(); } else if (panel_footage_viewer->is_focused()) { panel_footage_viewer->go_to_start(); @@ -832,7 +835,10 @@ void MainWindow::go_to_start() { } void MainWindow::prev_frame() { - if (panel_timeline->focused() || panel_sequence_viewer->is_focused() || panel_effect_controls->keyframe_focus()) { + if (panel_timeline->focused() + || panel_sequence_viewer->is_focused() + || panel_effect_controls->keyframe_focus() + || panel_graph_editor->view_is_focused()) { panel_sequence_viewer->previous_frame(); } else if (panel_footage_viewer->is_focused()) { panel_footage_viewer->previous_frame(); @@ -840,7 +846,10 @@ void MainWindow::prev_frame() { } void MainWindow::next_frame() { - if (panel_timeline->focused() || panel_sequence_viewer->is_focused() || panel_effect_controls->keyframe_focus()) { + if (panel_timeline->focused() + || panel_sequence_viewer->is_focused() + || panel_effect_controls->keyframe_focus() + || panel_graph_editor->view_is_focused()) { panel_sequence_viewer->next_frame(); } else if (panel_footage_viewer->is_focused()) { panel_footage_viewer->next_frame(); @@ -848,7 +857,10 @@ void MainWindow::next_frame() { } void MainWindow::go_to_end() { - if (panel_timeline->focused() || panel_sequence_viewer->is_focused() || panel_effect_controls->keyframe_focus()) { + if (panel_timeline->focused() + || panel_sequence_viewer->is_focused() + || panel_effect_controls->keyframe_focus() + || panel_graph_editor->view_is_focused()) { panel_sequence_viewer->go_to_end(); } else if (panel_footage_viewer->is_focused()) { panel_footage_viewer->go_to_end(); @@ -856,7 +868,10 @@ void MainWindow::go_to_end() { } void MainWindow::playpause() { - if (panel_timeline->focused() || panel_sequence_viewer->is_focused() || panel_effect_controls->keyframe_focus()) { + if (panel_timeline->focused() + || panel_sequence_viewer->is_focused() + || panel_effect_controls->keyframe_focus() + || panel_graph_editor->view_is_focused()) { panel_sequence_viewer->toggle_play(); } else if (panel_footage_viewer->is_focused()) { panel_footage_viewer->toggle_play(); diff --git a/panels/grapheditor.cpp b/panels/grapheditor.cpp index 7dc981fb4..961acac5e 100644 --- a/panels/grapheditor.cpp +++ b/panels/grapheditor.cpp @@ -193,7 +193,11 @@ void GraphEditor::set_row(EffectRow *r) { current_row_desc->setText(0); } view->set_row(row); - update_panel(); + update_panel(); +} + +bool GraphEditor::view_is_focused() { + return view->hasFocus() || header->hasFocus(); } void GraphEditor::set_key_button_enabled(bool e, int type) { diff --git a/panels/grapheditor.h b/panels/grapheditor.h index 467de9ec3..16c71d23a 100644 --- a/panels/grapheditor.h +++ b/panels/grapheditor.h @@ -18,6 +18,7 @@ public: GraphEditor(QWidget* parent = 0); void update_panel(); void set_row(EffectRow* r); + bool view_is_focused(); private: GraphView* view; TimelineHeader* header; diff --git a/ui/graphview.cpp b/ui/graphview.cpp index 84a87cebe..1c7b2e92c 100644 --- a/ui/graphview.cpp +++ b/ui/graphview.cpp @@ -41,6 +41,7 @@ GraphView::GraphView(QWidget* parent) : current_handle(BEZIER_HANDLE_NONE) { setMouseTracking(true); + setFocusPolicy(Qt::ClickFocus); } void GraphView::paintEvent(QPaintEvent *event) {