ui->clip_list->viewport()->installEventFilter(this);
ui->playlist->viewport()->installEventFilter(this);
- // TODO: These are too big for lambdas.
QShortcut *cue_in = new QShortcut(QKeySequence(Qt::Key_A), this);
connect(cue_in, &QShortcut::activated, ui->cue_in_btn, &QPushButton::click);
- connect(ui->cue_in_btn, &QPushButton::clicked, []{
- if (!cliplist_clips->empty() && cliplist_clips->back()->pts_out < 0) {
- cliplist_clips->back()->pts_in = current_pts;
- return;
- }
- Clip clip;
- clip.pts_in = current_pts;
- cliplist_clips->add_clip(clip);
- });
+ connect(ui->cue_in_btn, &QPushButton::clicked, this, &MainWindow::cue_in_clicked);
QShortcut *cue_out = new QShortcut(QKeySequence(Qt::Key_S), this);
connect(cue_out, &QShortcut::activated, ui->cue_out_btn, &QPushButton::click);
- connect(ui->cue_out_btn, &QPushButton::clicked, []{
- if (!cliplist_clips->empty()) {
- cliplist_clips->back()->pts_out = current_pts;
- // TODO: select the row in the clip list?
- }
- });
+ connect(ui->cue_out_btn, &QPushButton::clicked, this, &MainWindow::cue_out_clicked);
QShortcut *queue = new QShortcut(QKeySequence(Qt::Key_Q), this);
connect(queue, &QShortcut::activated, ui->queue_btn, &QPushButton::click);
connect(play, &QShortcut::activated, ui->play_btn, &QPushButton::click);
connect(ui->play_btn, &QPushButton::clicked, this, &MainWindow::play_clicked);
+ QShortcut *preview_1 = new QShortcut(QKeySequence(Qt::Key_1), this);
+ connect(preview_1, &QShortcut::activated, ui->preview_1_btn, &QPushButton::click);
+ connect(ui->preview_1_btn, &QPushButton::clicked, [this]{ preview_angle_clicked(0); });
+
+ QShortcut *preview_2 = new QShortcut(QKeySequence(Qt::Key_2), this);
+ connect(preview_2, &QShortcut::activated, ui->preview_2_btn, &QPushButton::click);
+ connect(ui->preview_2_btn, &QPushButton::clicked, [this]{ preview_angle_clicked(1); });
+
+ QShortcut *preview_3 = new QShortcut(QKeySequence(Qt::Key_3), this);
+ connect(preview_3, &QShortcut::activated, ui->preview_3_btn, &QPushButton::click);
+ connect(ui->preview_3_btn, &QPushButton::clicked, [this]{ preview_angle_clicked(2); });
+
+ QShortcut *preview_4 = new QShortcut(QKeySequence(Qt::Key_4), this);
+ connect(preview_4, &QShortcut::activated, ui->preview_4_btn, &QPushButton::click);
+ connect(ui->preview_4_btn, &QPushButton::clicked, [this]{ preview_angle_clicked(3); });
+
preview_player = new Player(ui->preview_display);
live_player = new Player(ui->live_display);
live_player->set_done_callback([this]{
});
}
+void MainWindow::cue_in_clicked()
+{
+ if (!cliplist_clips->empty() && cliplist_clips->back()->pts_out < 0) {
+ cliplist_clips->back()->pts_in = current_pts;
+ return;
+ }
+ Clip clip;
+ clip.pts_in = current_pts;
+ cliplist_clips->add_clip(clip);
+}
+
+void MainWindow::cue_out_clicked()
+{
+ if (!cliplist_clips->empty()) {
+ cliplist_clips->back()->pts_out = current_pts;
+ // TODO: select the row in the clip list?
+ }
+}
+
void MainWindow::queue_clicked()
{
QItemSelectionModel *selected = ui->clip_list->selectionModel();
}
}
+void MainWindow::preview_angle_clicked(unsigned stream_idx)
+{
+ preview_player->override_angle(stream_idx);
+
+ // Change the selection if we were previewing a clip from the clip list.
+ // (The only other thing we could be showing is a pts scrub, and if so,
+ // that would be selected.)
+ QItemSelectionModel *selected = ui->clip_list->selectionModel();
+ if (selected->hasSelection()) {
+ QModelIndex cell = selected->selectedIndexes()[0];
+ int column = int(ClipList::Column::CAMERA_1) + stream_idx;
+ selected->setCurrentIndex(cell.sibling(cell.row(), column), QItemSelectionModel::ClearAndSelect);
+ }
+}
+
void MainWindow::play_clicked()
{
if (playlist_clips->empty()) return;