Sayonara Player
Loading...
Searching...
No Matches
src
Gui
Utils
SearchableWidget
SearchableModel.h
1
/* AbstractSearchModel.h */
2
3
/* Copyright (C) 2011-2024 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 GUI_SEARCHABLE_MODEL_H
22
#define GUI_SEARCHABLE_MODEL_H
23
24
#include "Utils/Library/SearchMode.h"
25
26
#include <QAbstractListModel>
27
#include <QAbstractTableModel>
28
#include <QMap>
29
#include <QString>
30
31
class
SearchableModelInterface
32
{
33
public
:
34
using
ExtraTriggerMap
=
QMap<QChar, QString>
;
35
36
virtual
ExtraTriggerMap
getExtraTriggers();
37
virtual
QModelIndexList searchResults(
const
QString& substr) = 0;
38
39
virtual ::Library::SearchModeMask searchMode()
const
final
;
40
41
protected
:
42
SearchableModelInterface
();
43
virtual
~SearchableModelInterface
();
44
};
45
46
template
<
typename
Model>
47
class
SearchableModel
:
48
public
SearchableModelInterface
,
49
public
Model
50
{
51
public
:
52
SearchableModel
(QObject* parent =
nullptr
) :
53
SearchableModelInterface
(),
54
Model(parent) {}
55
56
virtual
~SearchableModel
() =
default
;
57
58
using
Model::rowCount;
59
};
60
61
using
SearchableTableModel
=
SearchableModel<QAbstractTableModel>
;
62
63
#endif
// GUI_SEARCHABLE_MODEL_H
QMap
Definition
org_mpris_media_player2_adaptor.h:21
SearchableModelInterface
Definition
SearchableModel.h:32
SearchableModel
Definition
SearchableModel.h:50
Generated on Sat Jan 27 2024 00:00:00 for Sayonara Player by
1.10.0