Introduced styles - first version of Widgets
[opentodolist:opentodolist.git] / OpenTodoListCore / opentodolistinterfaces.h
1 /*
2  *  OpenTodoList - A todo and task manager
3  *  Copyright (C) 2013  Martin Höher <martin@rpdev.net>
4  *
5  *  This program is free software: you can redistribute it and/or modify
6  *  it under the terms of the GNU General Public License as published by
7  *  the Free Software Foundation, either version 3 of the License, or
8  *  (at your option) any later version.
9  *
10  *  This program is distributed in the hope that it will be useful,
11  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  *  GNU General Public License for more details.
14  *
15  *  You should have received a copy of the GNU General Public License
16  *  along with this program.  If not, see <http://www.gnu.org/licenses/>.
17  */
18
19 #ifndef OPENTODOLISTINTERFACES_H
20 #define OPENTODOLISTINTERFACES_H
21
22 #include "opentodolistcore_global.h"
23 #include "todolistfactory.h"
24
25 #include <QObject>
26
27 class OPENTODOLISTCORESHARED_EXPORT OpenTodoListBackend : public QObject {
28     
29     Q_OBJECT
30     Q_PROPERTY( QString name READ name CONSTANT )
31     Q_PROPERTY( QString description READ description CONSTANT )
32     Q_PROPERTY( QString type READ type CONSTANT )
33
34 public:
35
36     explicit OpenTodoListBackend(QObject* parent = 0) : 
37         QObject( parent ), 
38         m_name( QString() ), 
39         m_description( QString() ) {}
40     virtual ~OpenTodoListBackend() {}
41     virtual TodoListFactory* factory() = 0;
42     
43     QString name() const { return m_name; }
44     QString description() const { return m_description; }
45     QString type() const { return m_type; }
46     
47 protected:
48     
49     void setName( const QString& name ) { m_name = name; }
50     void setDescription( const QString& description ) { m_description = description; }
51     void setType( const QString& type ) { m_type = type; }
52     
53 private:
54     
55     QString m_name;
56     QString m_description;
57     QString m_type;
58     
59 };
60
61 Q_DECLARE_INTERFACE(OpenTodoListBackend, "net.rpdev.OpenTodoList.Backend/1.0")
62
63 #endif // OPENTODOLISTINTERFACES_H