16 #ifndef _SPARSE_TIME_VALUE_MODEL_H_ 17 #define _SPARSE_TIME_VALUE_MODEL_H_ 44 void toXml(QTextStream &stream, QString indent =
"",
45 QString extraAttributes =
"")
const 47 stream << QString(
"%1<point frame=\"%2\" value=\"%3\" label=\"%4\" %5/>\n")
49 .arg(extraAttributes);
56 list << QString(
"%1").arg(
value);
58 return list.join(delimiter);
85 bool notifyOnAdd =
true) :
95 float valueMinimum,
float valueMaximum,
96 bool notifyOnAdd =
true) :
98 valueMinimum, valueMaximum,
128 case 0:
return tr(
"Time");
129 case 1:
return tr(
"Frame");
130 case 2:
return tr(
"Value");
131 case 3:
return tr(
"Label");
132 default:
return tr(
"Unknown");
136 virtual QVariant
getData(
int row,
int column,
int role)
const 144 if (i ==
m_points.end())
return QVariant();
148 if (role == Qt::EditRole || role ==
SortRole)
return i->value;
149 else return QString(
"%1 %2").arg(i->value).arg(
getScaleUnits());
150 case 3:
return i->label;
151 default:
return QVariant();
159 (row, column, value, role);
162 if (role != Qt::EditRole)
return 0;
165 EditCommand *command =
new EditCommand(
this, tr(
"Edit Data"));
168 command->deletePoint(point);
171 case 2: point.
value = value.toDouble();
break;
172 case 3: point.
label = value.toString();
break;
175 command->addPoint(point);
176 return command->finish();
static PlayParameterRepository * getInstance()
TimeValuePoint(long _frame, float _value, QString _label)
static RealTime frame2RealTime(long frame, unsigned int sampleRate)
Convert a sample frame at the given sample rate into a RealTime.
SparseTimeValueModel(int sampleRate, int resolution, bool notifyOnAdd=true)
TimeValuePoint(long _frame)
PointList::const_iterator PointListConstIterator
int getDimensions() const
void removePlayable(const Playable *playable)
virtual QVariant getData(int row, int column, int role) const
QString getTypeName() const
Return the type of the model.
static QString encodeEntities(QString)
Time/value point type for use in a SparseModel or SparseValueModel.
virtual QString getScaleUnits() const
virtual Command * getSetDataCommand(int row, int column, const QVariant &value, int role)
SparseTimeValueModel(int sampleRate, int resolution, float valueMinimum, float valueMaximum, bool notifyOnAdd=true)
bool operator()(const TimeValuePoint &p1, const TimeValuePoint &p2) const
virtual QString getHeading(int column) const
virtual Command * getSetDataCommand(int row, int column, const QVariant &value, int role)
Model containing sparse data (points with some properties) of which one of the properties is an arbit...
virtual SortType getSortType(int column) const
virtual ~SparseTimeValueModel()
bool operator()(const TimeValuePoint &p1, const TimeValuePoint &p2) const
virtual bool getDefaultPlayAudible() const
void toXml(QTextStream &stream, QString indent="", QString extraAttributes="") const
QString toDelimitedDataString(QString delimiter, int sampleRate) const
virtual bool isColumnTimeValue(int column) const
virtual QVariant getData(int row, int column, int role) const
virtual bool canPlay() const
std::string toString(bool align=false) const
Return a human-readable debug-type string to full precision (probably not a format to show to a user ...
void addPlayable(const Playable *playable)
PointListIterator getPointListIteratorForRow(int row)
virtual int getColumnCount() const
TabularModel methods.