Basic filter base classes
[kworship.git] / kworship / KwApplication.h
blobe4c63ffd36ab688df226edca3973216b5180083f
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 kworship;
37 /// Application global data.
38 class KDE_EXPORT KwApplication
40 public:
43 * Singletonhood
46 /// Get the singleton application object.
47 static KwApplication* self();
50 * Constructors + destructor
53 /// Primary constructor.
54 KwApplication();
56 /// Destructor.
57 virtual ~KwApplication();
60 * Main interface
63 /// Execute the application.
64 int exec();
67 * Accessors
70 /// Get the main window widget.
71 kworship* mainWindow();
73 /// Get the plugin manager.
74 KwPluginManager* pluginManager();
76 /// Get the database object.
77 QSqlDatabase& database();
79 private:
82 * Static singleton data
85 /// Singleton application.
86 static KwApplication* s_self;
89 * Variables
92 /// KApplication object.
93 KApplication m_app;
95 /// Main window widget.
96 kworship* m_mainWindow;
98 /// Plugin manager.
99 KwPluginManager* m_pluginManager;
101 /// Database object.
102 QSqlDatabase m_database;
105 #endif // _KwApplication_h_