My Project
FilterBaseInterface.h
1 /*
2  * Copyright (C) 2015 Canonical, Ltd.
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation; version 3.
7  *
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.
12  *
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/>.
15  */
16 
17 #ifndef UNITY_SHELL_SCOPES_FILTERBASEINTERHACE_H
18 #define UNITY_SHELL_SCOPES_FILTERBASEINTERHACE_H
19 
20 #include "FiltersInterface.h"
21 #include <QObject>
22 
23 namespace unity
24 {
25 namespace shell
26 {
27 namespace scopes
28 {
29 
30 class UNITY_API FilterBaseInterface : public QObject
31 {
32  Q_OBJECT
33 
34  public:
35 
36  Q_PROPERTY(QString filterId READ filterId CONSTANT)
37  Q_PROPERTY(QString title READ title NOTIFY titleChanged)
38  Q_PROPERTY(unity::shell::scopes::FiltersInterface::FilterType filterType READ filterType CONSTANT)
39 
40  virtual QString filterId() const = 0;
41  virtual QString title() const = 0;
42  virtual FiltersInterface::FilterType filterType() const = 0;
43  virtual QString filterTag() const = 0;
44 
45  Q_SIGNALS:
46  void titleChanged();
47 
48  protected:
50  explicit FilterBaseInterface(QObject* parent = 0) : QObject(parent) {}
52 };
53 
54 }
55 }
56 }
57 
59 
60 #endif
Definition: FilterBaseInterface.h:30
Top-level namespace for all things Unity-related.
Definition: Version.h:37