Sayonara Player
Filter.h
1 /* Filter.h
2 
3  * Copyright (C) 2011-2020 Michael Lugmair (Lucio Carreras)
4  *
5  * This file is part of sayonara-player
6  *
7  * This program is free software: you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation, either version 3 of the License, or
10  * (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program. If not, see <http://www.gnu.org/licenses/>.
19  *
20  * created by Michael Lugmair (Lucio Carreras),
21  * Jul 9, 2012
22  *
23  */
24 
25 #ifndef FILTER_H_
26 #define FILTER_H_
27 
28 
29 #include "Utils/Pimpl.h"
30 #include "Utils/Library/SearchMode.h"
31 
32 namespace Library
33 {
34  class DateFilter;
40  class Filter
41  {
42  PIMPL(Filter)
43 
44  public:
45 
46  enum Mode
47  {
48  Fulltext=0,
49  Filename,
50  Genre,
51  Invalid
52  };
53 
54  Filter();
55  ~Filter();
56 
57  Filter(const Filter& other);
58  Filter& operator=(const Filter& other);
59 
60  bool operator==(const Filter& other);
61 
62  int count() const;
63 
70  QStringList filtertext(bool with_percent) const;
71 
78  QStringList searchModeFiltertext(bool with_percent) const;
79 
80 
87  void setFiltertext(const QString& str, SearchModeMask search_mode);
88 
93  Filter::Mode mode() const;
94 
99  void setMode(Filter::Mode mode);
100 
104  void clear();
105 
111  bool cleared() const;
112 
118  void setInvalidGenre(bool b);
119 
124  bool isInvalidGenre() const;
125 
134  bool isUseable() const;
135 
141  static QString text(Mode mode);
142  };
143 }
144 
145 #endif /* FILTER_H_ */
bool isUseable() const
Invalid mode is not usable. Invalid genre means, that this is a valid query -> Usable....
void setInvalidGenre(bool b)
Sets a genre, which is not searched directly. This is meant to fetch all tracks which contains no gen...
static QString text(Mode mode)
Get an human readable string for the mode.
void setFiltertext(const QString &str, SearchModeMask search_mode)
set comma separated filtertext. Usually this is the string found at the search box in the library
QStringList filtertext(bool with_percent) const
get splitted filtertext with or without percent. Needed for file search for example where cissearch i...
The Filter class.
Definition: Filter.h:40
bool cleared() const
Is the searchterm empty?
bool isInvalidGenre() const
Is the invalid genre mode active?
void setMode(Filter::Mode mode)
Sets the Filter::Mode.
QStringList searchModeFiltertext(bool with_percent) const
get splitted filtertext with or without percent but converts the search string suitable for cissearch...
Filter::Mode mode() const
Returns the filtermode.
Definition: Genre.h:30
void clear()
Clear the searchterm. We are not looking for an invalid genre, too.
An interface class needed when implementing a library plugin.
Definition: LocalLibraryWatcher.h:30