]> git.sesse.net Git - nageru/blobdiff - mainwindow.cpp
Put the video displays on the right side, making them generally larger.
[nageru] / mainwindow.cpp
index c16861102ce4dada625002a8337ec82219ae2c62..656ff1e3467d9ddea16ff83987cca9430033e256 100644 (file)
@@ -118,7 +118,7 @@ MainWindow::MainWindow()
 void MainWindow::cue_in_clicked()
 {
        if (!cliplist_clips->empty() && cliplist_clips->back()->pts_out < 0) {
-               cliplist_clips->back()->pts_in = current_pts;
+               cliplist_clips->mutable_back()->pts_in = current_pts;
                return;
        }
        Clip clip;
@@ -130,7 +130,7 @@ void MainWindow::cue_in_clicked()
 void MainWindow::cue_out_clicked()
 {
        if (!cliplist_clips->empty()) {
-               cliplist_clips->back()->pts_out = current_pts;
+               cliplist_clips->mutable_back()->pts_out = current_pts;
                // TODO: select the row in the clip list?
        }
 }
@@ -150,13 +150,16 @@ void MainWindow::queue_clicked()
        }
 
        QModelIndex index = selected->currentIndex();
+       Clip clip = *cliplist_clips->clip(index.row());
        if (index.column() >= int(ClipList::Column::CAMERA_1) &&
            index.column() <= int(ClipList::Column::CAMERA_4)) {
-               Clip clip = *cliplist_clips->clip(index.row());
                clip.stream_idx = index.column() - int(ClipList::Column::CAMERA_1);
-               playlist_clips->add_clip(clip);
-               playlist_selection_changed();
+       } else {
+               clip.stream_idx = ui->preview_display->get_stream_idx();
        }
+
+       playlist_clips->add_clip(clip);
+       playlist_selection_changed();
 }
 
 void MainWindow::preview_clicked()
@@ -170,11 +173,14 @@ void MainWindow::preview_clicked()
        }
 
        QModelIndex index = selected->currentIndex();
+       unsigned stream_idx;
        if (index.column() >= int(ClipList::Column::CAMERA_1) &&
            index.column() <= int(ClipList::Column::CAMERA_4)) {
-               unsigned stream_idx = index.column() - int(ClipList::Column::CAMERA_1);
-               preview_player->play_clip(*cliplist_clips->clip(index.row()), stream_idx);
+               stream_idx = index.column() - int(ClipList::Column::CAMERA_1);
+       } else {
+               stream_idx = ui->preview_display->get_stream_idx();
        }
+       preview_player->play_clip(*cliplist_clips->clip(index.row()), stream_idx);
 }
 
 void MainWindow::preview_angle_clicked(unsigned stream_idx)
@@ -304,7 +310,8 @@ void MainWindow::resizeEvent(QResizeEvent *event)
 
 void MainWindow::relayout()
 {
-       ui->live_display->setMinimumHeight(ui->live_display->width() * 9 / 16);
+       ui->live_display->setMinimumWidth(ui->live_display->height() * 16 / 9);
+       ui->preview_display->setMinimumWidth(ui->preview_display->height() * 16 / 9);
 }
 
 bool MainWindow::eventFilter(QObject *watched, QEvent *event)
@@ -382,7 +389,7 @@ bool MainWindow::eventFilter(QObject *watched, QEvent *event)
                        int64_t pts = scrub_pts_origin + adjusted_offset * scrub_sensitivity;
 
                        if (scrub_type == SCRUBBING_CLIP_LIST) {
-                               ClipProxy clip = cliplist_clips->clip(scrub_row);
+                               ClipProxy clip = cliplist_clips->mutable_clip(scrub_row);
                                if (scrub_column == int(ClipList::Column::IN)) {
                                        pts = std::max<int64_t>(pts, 0);
                                        pts = std::min(pts, clip->pts_out);
@@ -395,7 +402,7 @@ bool MainWindow::eventFilter(QObject *watched, QEvent *event)
                                        preview_single_frame(pts, stream_idx, LAST_BEFORE);
                                }
                        } else {
-                               ClipProxy clip = playlist_clips->clip(scrub_row);
+                               ClipProxy clip = playlist_clips->mutable_clip(scrub_row);
                                if (scrub_column == int(PlayList::Column::IN)) {
                                        pts = std::max<int64_t>(pts, 0);
                                        pts = std::min(pts, clip->pts_out);
@@ -436,7 +443,7 @@ bool MainWindow::eventFilter(QObject *watched, QEvent *event)
                if (column == -1 || row == -1) return false;
 
                ClipProxy clip = (watched == ui->clip_list->viewport()) ?
-                       cliplist_clips->clip(row) : playlist_clips->clip(row);
+                       cliplist_clips->mutable_clip(row) : playlist_clips->mutable_clip(row);
                if (watched == ui->playlist->viewport()) {
                        stream_idx = clip->stream_idx;
                }