Mercurial > hg > svcore
diff data/model/SparseOneDimensionalModel.h @ 420:50a956688baa
* reorganise tabular data editor model support
author | Chris Cannam |
---|---|
date | Wed, 11 Jun 2008 16:13:25 +0000 |
parents | 5858cc462d0a |
children | 4caa28a0a8a2 |
line wrap: on
line diff
--- a/data/model/SparseOneDimensionalModel.h Wed Jun 11 12:54:18 2008 +0000 +++ b/data/model/SparseOneDimensionalModel.h Wed Jun 11 16:13:25 2008 +0000 @@ -95,7 +95,8 @@ return "<plugin program=\"tap\"/>"; } - int getIndexOf(const Point &point) { + int getIndexOf(const Point &point) + { // slow int i = 0; Point::Comparator comparator; @@ -107,6 +108,47 @@ } QString getTypeName() const { return tr("Sparse 1-D"); } + + /** + * TabularModel methods. + */ + + virtual int getColumnCount() const + { + return 3; + } + + virtual QString getHeading(int column) const + { + switch (column) { + case 0: return tr("Time"); + case 1: return tr("Frame"); + case 2: return tr("Label"); + default: return tr("Unknown"); + } + } + + virtual QVariant getData(int row, int column, int role) const + { + if (role != Qt::EditRole && role != Qt::DisplayRole) return QVariant(); + PointListIterator i = getPointListIteratorForRow(row); + if (i == m_points.end()) return QVariant(); + + switch (column) { + case 0: { + RealTime rt = RealTime::frame2RealTime(i->frame, getSampleRate()); + return QVariant(rt.toText().c_str()); + } + case 1: return QVariant(int(i->frame)); + case 2: return QVariant(i->label); + default: return QVariant(); + } + } + + virtual bool isColumnTimeValue(int column) const + { + return (column < 2); + } }; #endif