summaryrefslogtreecommitdiffstats
blob: d205f9f41237f97ceb24c84ec8a98260d51f0d48 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
/*
 * Copyright (c) 2010 Kevin Smith
 * Licensed under the GNU General Public License v3.
 * See Documentation/Licenses/GPLv3.txt for more information.
 */

#ifndef SWIFT_QtSwift_H
#define SWIFT_QtSwift_H

#include <boost/program_options/variables_map.hpp>
#include <boost/program_options/options_description.hpp>

#include "Swiften/Base/String.h"
#include "Swiften/EventLoop/Qt/QtEventLoop.h"
#include "QtLoginWindowFactory.h"
#include "QtMainWindowFactory.h"
#include "QtChatWindowFactory.h"
#include "QtSettingsProvider.h"

namespace po = boost::program_options;

class QSplitter;

namespace Swift {
	class AutoUpdater;
	class Application;
	class ApplicationPathProvider;
	class AvatarStorage;
	class MainController;
	class QtChatWindowFactory;
	class QtMainWindowFactory;
	class QtLoginWindowFactory;
	class QtXMLConsoleWidgetFactory;
	class QtSystemTray;
	class QtSoundPlayer;
	class QtEventWindowFactory;
	class QtChatListWindowFactory;
	class QtMUCSearchWindowFactory;
		
	class QtSwift : public QObject {
		Q_OBJECT
		public:
			QtSwift(po::variables_map options);
			static po::options_description getOptionsDescription();
			~QtSwift();
		private:
			std::vector<MainController*> mainControllers_;
			QtChatWindowFactory *chatWindowFactory_;
			std::vector<QtMainWindowFactory*> rosterWindowFactories_;
			std::vector<QtLoginWindowFactory*> loginWindowFactories_;
			std::vector<QtXMLConsoleWidgetFactory*> xmlConsoleWidgetFactories_;
			std::vector<QtEventWindowFactory*> eventWindowFactories_;
			std::vector<QtSystemTray*> systemTrays_;
			std::vector<QtChatListWindowFactory*> chatListWindowFactories_;
			std::vector<QtMUCSearchWindowFactory*> mucSearchWindowFactories_;
			QtEventLoop clientMainThreadCaller_;
			QtSettingsProvider *settings_;
			QSplitter* splitter_;
			QtSoundPlayer* soundPlayer_;
			QtChatTabs* tabs_;
			Application* application_;
			ApplicationPathProvider* applicationPathProvider_;
			AvatarStorage* avatarStorage_;
			AutoUpdater* autoUpdater_;

	};
}

#endif