1 /* SearchMode.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 21 #ifndef LIBRARYSEARCHMODE_H 22 #define LIBRARYSEARCHMODE_H 23 24 template<typename T> 25 class QList; 26 class QChar; 27 class QString; 28 29 30 namespace Library 31 { 32 /** 33 * @brief The SearchMode enum 34 * @ingroup Library 35 * @ingroup Helper 36 */ 37 enum SearchMode 38 { 39 None = 0, 40 CaseInsensitve = (1<<0), 41 NoSpecialChars = (1<<1), 42 NoDiacriticChars = (1<<2), 43 SearchModeMaskSize = (1<<3) 44 }; 45 46 using SearchModeMask = int; 47 48 namespace Utils 49 { 50 51 QString convertSearchstring(const QString& str); 52 53 /** 54 * @brief Converts a user entered string into a cis-representation. 55 * For example, diacrytic chars are replaced by latin ones, spaces are removed 56 * and so on, so the resulting string can be searched for in the database 57 * @ingroup Library 58 * @ingroup Helper 59 * @param str source string 60 * @param mode combination of SearchMode values 61 */ 62 QString convertSearchstring(const QString& str, SearchModeMask mode); 63 64 /** 65 * @brief Converts a user entered string into a cis-representation. 66 * For example, diacrytic chars are replaced by latin ones, spaces are removed 67 * and so on, so the resulting string can be searched for in the database 68 * @ingroup Library 69 * @ingroup Helper 70 * @param str source string 71 * @param mode combination of SearchMode values 72 * @param ignored_chars chars that are not replaced within that method 73 */ 74 QString convertSearchstring(const QString& str, SearchModeMask mode, const QList<QChar>& ignored_chars); 75 } 76 } 77 78 #endif // LIBRARYSEARCHMODE_H 79