extended hover focus

This commit is contained in:
itsmattkc
2019-01-13 09:50:25 +11:00
parent 5daebac30d
commit f3b0a3355c
4 changed files with 72 additions and 70 deletions
+60 -67
View File
@@ -377,9 +377,10 @@ void MainWindow::delete_slot() {
}
void MainWindow::select_all() {
if (panel_timeline->focused()) {
QDockWidget* focused_panel = get_focused_panel();
if (focused_panel == panel_timeline) {
panel_timeline->select_all();
} else if (panel_graph_editor->view_is_focused()) {
} else if (focused_panel == panel_graph_editor) {
panel_graph_editor->select_all();
}
}
@@ -1050,90 +1051,78 @@ void MainWindow::reset_layout() {
}
void MainWindow::go_to_in() {
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_in();
} else if (panel_footage_viewer->is_focused()) {
panel_footage_viewer->go_to_in();
}
QDockWidget* focused_panel = get_focused_panel();
if (focused_panel == panel_footage_viewer) {
panel_footage_viewer->go_to_in();
} else {
panel_sequence_viewer->go_to_in();
}
}
void MainWindow::go_to_out() {
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_out();
} else if (panel_footage_viewer->is_focused()) {
panel_footage_viewer->go_to_out();
}
QDockWidget* focused_panel = get_focused_panel();
if (focused_panel == panel_footage_viewer) {
panel_footage_viewer->go_to_out();
} else {
panel_sequence_viewer->go_to_out();
}
}
void MainWindow::go_to_start() {
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();
}
QDockWidget* focused_panel = get_focused_panel();
if (focused_panel == panel_footage_viewer) {
panel_footage_viewer->go_to_start();
} else {
panel_sequence_viewer->go_to_start();
}
}
void MainWindow::prev_frame() {
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();
}
QDockWidget* focused_panel = get_focused_panel();
if (focused_panel == panel_footage_viewer) {
panel_footage_viewer->previous_frame();
} else {
panel_sequence_viewer->previous_frame();
}
}
void MainWindow::next_frame() {
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();
}
QDockWidget* focused_panel = get_focused_panel();
if (focused_panel == panel_footage_viewer) {
panel_footage_viewer->next_frame();
} else {
panel_sequence_viewer->next_frame();
}
}
void MainWindow::go_to_end() {
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();
}
QDockWidget* focused_panel = get_focused_panel();
if (focused_panel == panel_footage_viewer) {
panel_footage_viewer->go_to_end();
} else {
panel_sequence_viewer->go_to_end();
}
}
void MainWindow::playpause() {
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();
}
QDockWidget* focused_panel = get_focused_panel();
if (focused_panel == panel_footage_viewer) {
panel_footage_viewer->toggle_play();
} else {
panel_sequence_viewer->toggle_play();
}
}
void MainWindow::prev_cut() {
if (sequence != nullptr && (panel_timeline->focused() || panel_sequence_viewer->is_focused())) {
QDockWidget* focused_panel = get_focused_panel();
if (sequence != nullptr && (panel_timeline == focused_panel || panel_sequence_viewer == focused_panel)) {
panel_timeline->previous_cut();
}
}
void MainWindow::next_cut() {
if (sequence != nullptr && (panel_timeline->focused() || panel_sequence_viewer->is_focused())) {
QDockWidget* focused_panel = get_focused_panel();
if (sequence != nullptr && (panel_timeline == focused_panel || panel_sequence_viewer == focused_panel)) {
panel_timeline->next_cut();
}
}
@@ -1430,11 +1419,13 @@ void MainWindow::toggle_enable_clips() {
}
void MainWindow::edit_to_in_point() {
if (panel_timeline->focused()) panel_timeline->ripple_to_in_point(true, false);
QDockWidget* focused_panel = get_focused_panel();
if (focused_panel == panel_timeline) panel_timeline->ripple_to_in_point(true, false);
}
void MainWindow::edit_to_out_point() {
if (panel_timeline->focused()) panel_timeline->ripple_to_in_point(false, false);
QDockWidget* focused_panel = get_focused_panel();
if (focused_panel == panel_timeline) panel_timeline->ripple_to_in_point(false, false);
}
void MainWindow::nest() {
@@ -1497,7 +1488,8 @@ void MainWindow::nest() {
}
void MainWindow::paste_insert() {
if (panel_timeline->focused() && sequence != nullptr) {
QDockWidget* focused_panel = get_focused_panel();
if (focused_panel == panel_timeline && sequence != nullptr) {
panel_timeline->paste(true);
}
}
@@ -1515,10 +1507,11 @@ void MainWindow::set_autoscroll() {
}
void MainWindow::menu_click_button() {
if (panel_timeline->focused()
|| panel_effect_controls->keyframe_focus()
|| panel_footage_viewer->is_focused()
|| panel_sequence_viewer->is_focused())
QDockWidget* focused_panel = get_focused_panel();
if (focused_panel == panel_timeline
|| focused_panel == panel_effect_controls
|| focused_panel == panel_footage_viewer
|| focused_panel == panel_sequence_viewer)
reinterpret_cast<QPushButton*>(static_cast<QAction*>(sender())->data().value<quintptr>())->click();
}
+5 -1
View File
@@ -199,7 +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();
}
void GraphEditor::delete_selected_keys() {
+1
View File
@@ -19,6 +19,7 @@ public:
void update_panel();
void set_row(EffectRow* r);
bool view_is_focused();
bool view_is_under_mouse();
void delete_selected_keys();
void select_all();
private:
+6 -2
View File
@@ -125,7 +125,9 @@ QDockWidget *get_focused_panel() {
w = panel_footage_viewer;
} else if (panel_timeline->underMouse()) {
w = panel_timeline;
}
} else if (panel_graph_editor->view_is_under_mouse()) {
w = panel_graph_editor;
}
}
if (w == nullptr) {
if (panel_project->is_focused()) {
@@ -138,7 +140,9 @@ QDockWidget *get_focused_panel() {
w = panel_footage_viewer;
} else if (panel_timeline->focused()) {
w = panel_timeline;
}
} else if (panel_graph_editor->view_is_focused()) {
w = panel_graph_editor;
}
}
return w;
}