On 06/06/2017 09:02 AM, Anast Gramm wrote:
On 170606 14:23:07, Markus Klösges wrote:
      The crate: filter would work like this:         ** If you want to
see all instrumentals you type crate: instrumental
      and you get both /Metal/Progressive/Instrumental and /Rock/Instrumental.
      ** If you want only Metal instrumental songs you type crate: metal crate: 
      and you get only /Metal/Progressive/Instrumental songs.

That also makes sense. What about an additional absolute filter-syntax like 
  - "/" and "*" are not allowed in Crate names.
  - if no "/" nor "*" are in the query, search as you do above (find crate in 
hierarchy that matches by name)
  - allow 'absolute' searches in crates, like in a unix-file-system (starting with or 
containing "/")
  - use "*" as a wildcard for subcrates and songs on the way
  - if there is no "/" at the start of the search-query, treat that as a "*"
    - crate: /Rock will show items in /Rock but not sub-crates
    - crate: /Rock/* will show items in /Rock and all child-crates
    - crate: /*/Instrumental would find all Instrumental songs no matter what 
Genre they are in (if Instrumental is always the last layer in the tree, 
otherwise use /* at the end).
    - crate: Alternative/Instrumental/* would find all alternative instrumental 
songs no matter the genre (assuming the naming-structure you used above)

I think this is way too complicated for the purposes that crates serve. The way 
the crate filter already works is fine.
Since the query uses the LIKE operator to find crates it is basically a 

I agree, the wildcards are overcomplicated and I don't think it fits very well with how searches work otherwise. However, there should be a way to search for only the tracks in a parent crate and none of its children. Perhaps another special search operator could be used for this. For example, if "^" was the search operator, crate:^Rock would show only tracks in the Rock crate but not in any child crates. I don't know if "^" is the best character to use for this, it is just an example to demonstrate the idea. Using the above example crate hierarchy, crate:^instrumental would match all the tracks in both Rock/Instrumental and Metal/Progressive/Instrumental but none of their subcrates. If you wanted to query only one of those crates, you could make the query more specific with either "crate:^Rock/Instrumental" or "crate:^instrumental crate:rock".

Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
Get Mixxx, the #1 Free MP3 DJ Mixing software Today

Mixxx-devel mailing list

Reply via email to