Fix #1663 by handling the case where annotations aren't assigned a row

This commit is contained in:
Soeren Apel 2022-09-18 22:28:51 +02:00
parent 9e5ccb72d0
commit eb31c23847
1 changed files with 18 additions and 3 deletions

View File

@ -18,6 +18,7 @@
*/
#include <cassert>
#include <QDebug>
#include "decoder.hpp"
#include "row.hpp"
@ -149,17 +150,31 @@ const QColor Row::color() const
const QColor Row::get_class_color(uint32_t ann_class_id) const
{
return ann_class_color_.at(ann_class_id);
try {
return ann_class_color_.at(ann_class_id);
} catch (std::out_of_range &e) {
qWarning() << "Warning: annotation type" << decoder_->get_ann_class_by_id(ann_class_id)->name
<< "(" << ann_class_id << ")" << "not assigned to any annotation row!";
return QColor(20, 20, 20);
}
}
const QColor Row::get_bright_class_color(uint32_t ann_class_id) const
{
return ann_bright_class_color_.at(ann_class_id);
try {
return ann_bright_class_color_.at(ann_class_id);
} catch (std::out_of_range &e) {
return QColor(20, 20, 20);
}
}
const QColor Row::get_dark_class_color(uint32_t ann_class_id) const
{
return ann_dark_class_color_.at(ann_class_id);
try {
return ann_dark_class_color_.at(ann_class_id);
} catch (std::out_of_range &e) {
return QColor(20, 20, 20);
}
}
bool Row::has_hidden_classes() const