+ my $model = $settings{'model'};
+ my $lens = $settings{'lens'};
+
+ # Construct SQL for this filter
+ if ($all == 0) {
+ $where .= ' AND selected=\'t\'';
+ }
+ if (defined($model) && defined($lens)) {
+ my $mq = $dbh->quote($model);
+ my $lq = $dbh->quote($lens);
+
+ if ($model eq '') {
+ # no defined model
+ $where .= " AND id NOT IN ( SELECT image FROM exif_info WHERE tag='Model' AND TRIM(value)<>'' )";
+ } else {
+ $where .= " AND id IN ( SELECT image FROM exif_info WHERE tag='Model' AND TRIM(value)=$mq )";
+ }
+
+ # This doesn't match 1:1 if there's both lens and lensspec, but it should be OK in practice
+ if ($lens eq '') {
+ # no defined lens
+ $where .= " AND id NOT IN ( SELECT image FROM exif_info WHERE (tag='Lens' OR tag='LensSpec') AND TRIM(value)<>'' )";
+ } else {
+ $where .= " AND id IN ( SELECT image FROM exif_info WHERE (tag='Lens' OR tag='LensSpec') AND TRIM(value)=$lq )";
+ }
+ }