2
* Copyright (C) 2011, 2013 Canonical, Ltd.
5
* Florian Boucault <florian.boucault@canonical.com>
6
* Pawel Stolowski <pawel.stolowski@canonical.com>
8
* This program is free software; you can redistribute it and/or modify
9
* it under the terms of the GNU General Public License as published by
10
* the Free Software Foundation; version 3.
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.
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/>.
29
#include <UnityCore/Filter.h>
31
class GenericOptionsModel;
33
class Q_DECL_EXPORT Filter : public QObject
37
Q_PROPERTY(QString id READ id CONSTANT)
38
Q_PROPERTY(QString name READ name CONSTANT)
39
Q_PROPERTY(QString iconHint READ iconHint CONSTANT)
40
Q_PROPERTY(QString rendererName READ rendererName CONSTANT)
41
Q_PROPERTY(bool visible READ visible CONSTANT)
42
Q_PROPERTY(bool collapsed READ collapsed CONSTANT)
43
Q_PROPERTY(bool filtering READ filtering CONSTANT)
44
Q_PROPERTY(GenericOptionsModel* options READ options NOTIFY optionsChanged)
47
explicit Filter(QObject *parent = nullptr);
52
QString iconHint() const;
53
QString rendererName() const;
55
bool collapsed() const;
56
bool filtering() const;
57
virtual GenericOptionsModel* options() const = 0;
59
static Filter* newFromUnityFilter(unity::dash::Filter::Ptr unityFilter);
60
bool hasUnityFilter(unity::dash::Filter::Ptr unityFilter) const;
66
void optionsChanged();
69
unity::dash::Filter::Ptr m_unityFilter;
70
virtual void setUnityFilter(unity::dash::Filter::Ptr unityFilter);
73
Q_DECLARE_METATYPE(Filter*)