+QVariant AnnotationCollectionModel::data_from_ann(const Annotation* ann, int index) const
+{
+ switch (index) {
+ case 0: return QVariant((qulonglong)ann->start_sample()); // Column #0, Start Sample
+ case 1: { // Column #1, Start Time
+ Timestamp t = ann->start_sample() / signal_->get_samplerate();
+ QString unit = signal_->get_samplerate() ? tr("s") : tr("sa");
+ QString s;
+ if ((t < 60) || (signal_->get_samplerate() == 0)) // i.e. if unit is sa
+ s = format_time_si(t, SIPrefix::unspecified, 3, unit, false);
+ else
+ s = format_time_minutes(t, 3, false);
+ return QVariant(s);
+ }
+ case 2: return QVariant(ann->row()->decoder()->name()); // Column #2, Decoder
+ case 3: return QVariant(ann->row()->description()); // Column #3, Ann Row
+ case 4: return QVariant(ann->ann_class_description()); // Column #4, Ann Class
+ case 5: return QVariant(ann->longest_annotation()); // Column #5, Value
+ default: return QVariant();
+ }
+}
+