]> git.sesse.net Git - nageru/blobdiff - clip_list.cpp
Make an enum for the view columns.
[nageru] / clip_list.cpp
index 48d8e7bee1c2fbea127957ac3c0709bc7e0ed578..2599dcc2d246cbbeceabd00ba48d940192cd1b0f 100644 (file)
@@ -15,7 +15,7 @@ int ClipList::rowCount(const QModelIndex &parent) const {
 
 int ClipList::columnCount(const QModelIndex &parent) const {
        if (parent.isValid()) return 0;
-       return 7;
+       return Column::NUM_COLUMNS;
 }
 
 QVariant ClipList::data(const QModelIndex &parent, int role) const {
@@ -37,6 +37,12 @@ QVariant ClipList::data(const QModelIndex &parent, int role) const {
                } else {
                        return QVariant();
                }
+       case 2:
+               if (clips[row].pts_out >= 0) {
+                       return qlonglong(clips[row].pts_out - clips[row].pts_in);
+               } else {
+                       return QVariant();
+               }
        default:
                return QVariant();
        }
@@ -49,31 +55,33 @@ QVariant ClipList::headerData(int section, Qt::Orientation orientation, int role
                return QVariant();
 
        switch (section) {
-       case 0:
+       case Column::IN:
                return "In";
-       case 1:
+       case Column::OUT:
                return "Out";
-       case 2:
+       case Column::DURATION:
                return "Duration";
-       case 3:
+       case Column::CAMERA_1:
                return "Camera 1";
-       case 4:
+       case Column::CAMERA_2:
                return "Camera 2";
-       case 5:
+       case Column::CAMERA_3:
                return "Camera 3";
-       case 6:
+       case Column::CAMERA_4:
                return "Camera 4";
        default:
                return "";
        }
 }
 
-void ClipList::add_clip(int64_t pts_in)
+void ClipList::add_clip(const Clip &clip)
 {
-       Clip clip;
-       clip.pts_in = pts_in;
-
        beginInsertRows(QModelIndex(), clips.size(), clips.size());
        clips.push_back(clip);
        endInsertRows();
 }
+
+void ClipList::emit_data_changed(size_t row)
+{
+       emit dataChanged(index(row, 0), index(row, 6));
+}