]> git.sesse.net Git - nageru/blob - mainwindow.cpp
Hook up some more clip modifications.
[nageru] / mainwindow.cpp
1 #include "mainwindow.h"
2
3 #include "clip_list.h"
4 #include "ui_mainwindow.h"
5
6 #include <string>
7 #include <vector>
8
9 #include <QShortcut>
10
11 using namespace std;
12
13 MainWindow *global_mainwindow = nullptr;
14 extern int64_t current_pts;
15
16 MainWindow::MainWindow()
17         : ui(new Ui::MainWindow)
18 {
19         global_mainwindow = this;
20         ui->setupUi(this);
21
22         ClipList *clips = new ClipList;
23         ui->clip_list->setModel(clips);
24
25         // TODO: Make these into buttons.
26         // TODO: These are too big for lambdas.
27         QShortcut *cue_in = new QShortcut(QKeySequence(Qt::Key_A), this);
28         connect(cue_in, &QShortcut::activated, [clips]{
29                 if (!clips->empty() && clips->back()->pts_out < 0) {
30                         clips->back()->pts_in = current_pts;
31                         return;
32                 }
33                 Clip clip;
34                 clip.pts_in = current_pts;
35                 clips->add_clip(clip);
36         });
37
38         QShortcut *cue_out = new QShortcut(QKeySequence(Qt::Key_S), this);
39         connect(cue_out, &QShortcut::activated, [clips]{
40                 if (!clips->empty()) {
41                         clips->back()->pts_out = current_pts;
42                         // TODO: select the row in the clip list?
43                 }
44         });
45
46         QShortcut *preview_shortcut = new QShortcut(QKeySequence(Qt::Key_W), this);
47         connect(preview_shortcut, &QShortcut::activated, this, &MainWindow::preview_clicked);
48 }
49
50 void MainWindow::preview_clicked()
51 {
52         printf("preview\n");
53 }