2
* Copyright (C) 2011 Canonical Ltd
4
* This program is free software: you can redistribute it and/or modify
5
* it under the terms of the GNU General Public License version 3 as
6
* published by the Free Software Foundation.
8
* This program is distributed in the hope that it will be useful,
9
* but WITHOUT ANY WARRANTY; without even the implied warranty of
10
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
* GNU General Public License for more details.
13
* You should have received a copy of the GNU General Public License
14
* along with this program. If not, see <http://www.gnu.org/licenses/>.
16
* Authored by Alex Launi <alex.launi@canonical.com>
22
namespace Unity.MusicLens {
24
public class BansheeGenreFilterParser : BansheeFilterParser, GenreFilterParser
27
public BansheeGenreFilterParser (GenreFilterParser parser)
29
base (parser.filter as CheckOptionFilterCompact);
32
public override string parse ()
34
StringBuilder builder = new StringBuilder ();
35
List<FilterOption> genres = get_all_selected_genres ();
37
/* CoreTracks.Genre IS ___ OR CoreTracks.Genre IS ____ ... */
38
foreach (FilterOption genre in genres)
44
foreach (string alt in map.get_genre_synonyms (id))
46
builder.append ("(CoreTracks.Genre LIKE '%");
48
builder.append ("""%' ESCAPE '\' AND CoreTracks.Genre IS NOT NULL) OR """);
51
builder.truncate (builder.len - (" OR ".length));
52
builder.prepend ("(");