Commit 6c49cfdf authored by Stefano Pettini's avatar Stefano Pettini Committed by Matěj Laitl
Browse files

Handle numeric fields properly in filter creation dialogs

Every numeric field, like length, disc number and track number, were
not properly parsed by the filter dialog or by the dynamic playlist
dialog into the textual query string used to then apply the filter.

The bug was due to what sounds like an "optimization" that swapped the
first and second value of a "between" condition, to make sure the
smaller value was always the first value and the larger always the
second. The problem was that this was applied also to non-between
conditions, actually swapping the lenth or disc number with 0, making
0 appear in the textual representation of the condition.

The fix makes sure that "optimization" is applied only in case of
actual "between" conditions, leaving the values "unoptimized" for any
other kind of condition (=, <, > and similar).

REVIEW: 128245
BUG: 341661
parent a07f44dd
......@@ -10,6 +10,8 @@ VERSION 2.9.0
MySQL 5.7+ thanks to Terje Rosten, Stefano Pettini. (BR 354255)
* Fix integer fields, like length, always showing up as zero in filter creation
dialog; thanks to Stefano Pettini. (BR 341661)
VERSION 2.8.90
......@@ -1081,7 +1081,11 @@ QString MetaQueryWidget::Filter::toString( bool invert ) const
else if( isNumeric() )
if (numValue < numValue2) // two values are only used for "between". We want to order them by size
if ( condition != Between )
strValue1 = QString::number( numValue );
else if (numValue < numValue2) // two values are only used for "between". We want to order them by size
strValue1 = QString::number( numValue );
strValue2 = QString::number( numValue2 );
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment