More filter infrastructure
[kworship.git] / kworship / KwApplication.h
blobc179263cd1122f4b55ca7294c1336413d499e240
1 /***************************************************************************
2 * This file is part of KWorship. *
3 * Copyright 2008 James Hogan <james@albanarts.com> *
4 * *
5 * KWorship 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 2 of the License, or *
8 * (at your option) any later version. *
9 * *
10 * KWorship 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 KWorship. If not, write to the Free Software Foundation, *
17 * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
18 ***************************************************************************/
20 #ifndef _KwApplication_h_
21 #define _KwApplication_h_
23 /**
24 * @file KwApplication.h
25 * @brief Application global data.
26 * @author James Hogan <james@albanarts.com>
29 #include <KApplication>
30 #include <kdemacros.h>
32 #include <QSqlDatabase>
34 class KwPluginManager;
35 class KwFilterManager;
36 class kworship;
38 /// Application global data.
39 class KDE_EXPORT KwApplication
41 public:
44 * Singletonhood
47 /// Get the singleton application object.
48 static KwApplication* self();
51 * Constructors + destructor
54 /// Primary constructor.
55 KwApplication();
57 /// Destructor.
58 virtual ~KwApplication();
61 * Main interface
64 /// Execute the application.
65 int exec();
68 * Accessors
71 /// Get the main window widget.
72 kworship* mainWindow();
74 /// Get the plugin manager.
75 KwPluginManager* pluginManager();
77 /// Get the filter manager.
78 KwFilterManager* filterManager();
80 /// Get the database object.
81 QSqlDatabase& database();
83 private:
86 * Static singleton data
89 /// Singleton application.
90 static KwApplication* s_self;
93 * Variables
96 /// KApplication object.
97 KApplication m_app;
99 /// Main window widget.
100 kworship* m_mainWindow;
102 /// Plugin manager.
103 KwPluginManager* m_pluginManager;
105 /// Filter manager.
106 KwFilterManager* m_filterManager;
108 /// Database object.
109 QSqlDatabase m_database;
112 #endif // _KwApplication_h_