diff options
Diffstat (limited to 'src/listviewcomparison.cpp')
-rw-r--r-- | src/listviewcomparison.cpp | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/listviewcomparison.cpp b/src/listviewcomparison.cpp index b78de94..c03d402 100644 --- a/src/listviewcomparison.cpp +++ b/src/listviewcomparison.cpp @@ -48,6 +48,8 @@ Tellico::ListViewComparison* Tellico::ListViewComparison::create(Data::ConstFiel return new DependentComparison(field_); } else if(field_->type() == Data::Field::Date || field_->formatFlag() == Data::Field::FormatDate) { return new ISODateComparison(field_); + } else if(field_->type() == Data::Field::Choice) { + return new ChoiceComparison(field_); } else if(field_->formatFlag() == Data::Field::FormatTitle) { // Dependent could be title, so put this test after return new TitleComparison(field_); @@ -277,3 +279,11 @@ int Tellico::ISODateComparison::compare(const TQString& str1, const TQString& st } return 0; } + +Tellico::ChoiceComparison::ChoiceComparison(Data::ConstFieldPtr field) : ListViewComparison(field) { + m_values = field->allowed(); +} + +int Tellico::ChoiceComparison::compare(const TQString& str1, const TQString& str2) { + return m_values.findIndex(str1) - m_values.findIndex(str2); +} |