]> git.sesse.net Git - nageru/blob - clip_list.cpp
Start working on a clip list.
[nageru] / clip_list.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 using namespace std;
10
11 int ClipList::rowCount(const QModelIndex &parent) const {
12         if (parent.isValid()) return 0;
13         return clips.size();
14 }
15
16 int ClipList::columnCount(const QModelIndex &parent) const {
17         if (parent.isValid()) return 0;
18         return 7;
19 }
20
21 QVariant ClipList::data(const QModelIndex &parent, int role) const {
22         if (!parent.isValid())
23                 return QVariant();
24         if (role != Qt::DisplayRole)
25                 return QVariant();
26
27         const int row = parent.row(), column = parent.column();
28         if (size_t(row) >= clips.size())
29                 return QVariant();
30
31         switch (column) {
32         case 0:
33                 return qlonglong(clips[row].pts_in);
34         case 1:
35                 if (clips[row].pts_out >= 0) {
36                         return qlonglong(clips[row].pts_out);
37                 } else {
38                         return QVariant();
39                 }
40         default:
41                 return QVariant();
42         }
43 }
44
45 QVariant ClipList::headerData(int section, Qt::Orientation orientation, int role) const {
46         if (role != Qt::DisplayRole)
47                 return QVariant();
48         if (orientation != Qt::Horizontal)
49                 return QVariant();
50
51         switch (section) {
52         case 0:
53                 return "In";
54         case 1:
55                 return "Out";
56         case 2:
57                 return "Duration";
58         case 3:
59                 return "Camera 1";
60         case 4:
61                 return "Camera 2";
62         case 5:
63                 return "Camera 3";
64         case 6:
65                 return "Camera 4";
66         default:
67                 return "";
68         }
69 }
70
71 void ClipList::add_clip(int64_t pts_in)
72 {
73         Clip clip;
74         clip.pts_in = pts_in;
75
76         beginInsertRows(QModelIndex(), clips.size(), clips.size());
77         clips.push_back(clip);
78         endInsertRows();
79 }