+#include "clip_list.h"
+
#include "mainwindow.h"
+#include "timebase.h"
+#include "ui_mainwindow.h"
#include <math.h>
#include <string>
#include <vector>
-#include "clip_list.h"
-#include "timebase.h"
-#include "ui_mainwindow.h"
-
using namespace std;
string pts_to_string(int64_t pts)
return buf;
}
-int ClipList::rowCount(const QModelIndex &parent) const {
- if (parent.isValid()) return 0;
+int ClipList::rowCount(const QModelIndex &parent) const
+{
+ if (parent.isValid())
+ return 0;
return clips.size();
}
-int PlayList::rowCount(const QModelIndex &parent) const {
- if (parent.isValid()) return 0;
+int PlayList::rowCount(const QModelIndex &parent) const
+{
+ if (parent.isValid())
+ return 0;
return clips.size();
}
-int ClipList::columnCount(const QModelIndex &parent) const {
- if (parent.isValid()) return 0;
+int ClipList::columnCount(const QModelIndex &parent) const
+{
+ if (parent.isValid())
+ return 0;
return int(Column::NUM_COLUMNS);
}
-int PlayList::columnCount(const QModelIndex &parent) const {
- if (parent.isValid()) return 0;
+int PlayList::columnCount(const QModelIndex &parent) const
+{
+ if (parent.isValid())
+ return 0;
return int(Column::NUM_COLUMNS);
}
-QVariant ClipList::data(const QModelIndex &parent, int role) const {
+QVariant ClipList::data(const QModelIndex &parent, int role) const
+{
if (!parent.isValid())
return QVariant();
const int row = parent.row(), column = parent.column();
}
}
-QVariant PlayList::data(const QModelIndex &parent, int role) const {
+QVariant PlayList::data(const QModelIndex &parent, int role) const
+{
if (!parent.isValid())
return QVariant();
const int row = parent.row(), column = parent.column();
case Column::IN:
case Column::OUT:
case Column::DURATION:
+ case Column::FADE_TIME:
return Qt::AlignRight + Qt::AlignVCenter;
case Column::CAMERA:
return Qt::AlignCenter;
return qlonglong(clips[row].stream_idx + 1);
case Column::DESCRIPTION:
return QString::fromStdString(clips[row].descriptions[clips[row].stream_idx]);
+ case Column::FADE_TIME: {
+ stringstream ss;
+ ss.imbue(locale("C"));
+ ss.precision(3);
+ ss << fixed << clips[row].fade_time_seconds;
+ return QString::fromStdString(ss.str());
+ }
default:
return "";
}
}
-QVariant ClipList::headerData(int section, Qt::Orientation orientation, int role) const {
+QVariant ClipList::headerData(int section, Qt::Orientation orientation, int role) const
+{
if (role != Qt::DisplayRole)
return QVariant();
if (orientation != Qt::Horizontal)
}
}
-QVariant PlayList::headerData(int section, Qt::Orientation orientation, int role) const {
+QVariant PlayList::headerData(int section, Qt::Orientation orientation, int role) const
+{
if (role != Qt::DisplayRole)
return QVariant();
if (orientation != Qt::Horizontal)
return "Camera";
case Column::DESCRIPTION:
return "Description";
+ case Column::FADE_TIME:
+ return "Fade time";
default:
return "";
}
switch (Column(column)) {
case Column::DESCRIPTION:
case Column::CAMERA:
+ case Column::FADE_TIME:
return Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsEditable;
return Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsEditable;
default:
emit_data_changed(row);
return true;
}
+ case Column::FADE_TIME: {
+ bool ok;
+ double val = value.toDouble(&ok);
+ if (!ok || !(val >= 0.0)) {
+ return false;
+ }
+ clips[row].fade_time_seconds = val;
+ emit_data_changed(row);
+ return true;
+ }
default:
return false;
}
beginMoveRows(QModelIndex(), first, last, QModelIndex(), first - 1);
rotate(clips.begin() + first - 1, clips.begin() + first, clips.begin() + last + 1);
} else {
- beginMoveRows(QModelIndex(), first, last, QModelIndex(), first + (last-first+1) + 1);
+ beginMoveRows(QModelIndex(), first, last, QModelIndex(), first + (last - first + 1) + 1);
first = clips.size() - first - 1;
last = clips.size() - last - 1;
rotate(clips.rbegin() + last - 1, clips.rbegin() + last, clips.rbegin() + first + 1);
clip.descriptions[camera_idx] = clip_proto.description(camera_idx);
}
clip.stream_idx = clip_proto.stream_idx();
+ clip.fade_time_seconds = clip_proto.fade_time_seconds();
return clip;
}
*clip_proto->add_description() = clip.descriptions[camera_idx];
}
clip_proto->set_stream_idx(clip.stream_idx);
+ clip_proto->set_fade_time_seconds(clip.fade_time_seconds);
}
} // namespace