summaryrefslogtreecommitdiffstats
path: root/src/listviewcomparison.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/listviewcomparison.cpp')
-rw-r--r--src/listviewcomparison.cpp10
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);
+}