/* * Copyright (c) 2010 Kevin Smith * Licensed under the GNU General Public License v3. * See Documentation/Licenses/GPLv3.txt for more information. */ #pragma once #include #include #include #include "Swiften/Base/String.h" #include "Swiften/Base/Platform.h" #include "Swiften/EventLoop/Qt/QtEventLoop.h" #include "QtLoginWindowFactory.h" #include "QtMainWindowFactory.h" #include "QtChatWindowFactory.h" #include "QtSettingsProvider.h" #if defined(SWIFTEN_PLATFORM_MACOSX) #include "SwifTools/Application/CocoaApplication.h" #endif #if defined(HAVE_SNARL) #include "SwifTools/Notifier/Win32NotifierWindow.h" #endif namespace po = boost::program_options; class QSplitter; namespace Swift { class CertificateStorageFactory; class Dock; class Notifier; class StoragesFactory; class AutoUpdater; class ApplicationPathProvider; class AvatarStorage; class CapsStorage; class MainController; class QtChatWindowFactory; class QtMainWindowFactory; class QtLoginWindowFactory; class QtXMLConsoleWidgetFactory; class QtSystemTray; class QtSoundPlayer; class QtEventWindowFactory; class QtChatListWindowFactory; class QtMUCSearchWindowFactory; class EventLoop; class QtSwift : public QObject { Q_OBJECT public: QtSwift(po::variables_map options); static po::options_description getOptionsDescription(); ~QtSwift(); private: PlatformTLSFactories tlsFactories_; std::vector mainControllers_; QtChatWindowFactory *chatWindowFactory_; std::vector rosterWindowFactories_; std::vector loginWindowFactories_; std::vector xmlConsoleWidgetFactories_; std::vector eventWindowFactories_; std::vector systemTrays_; std::vector chatListWindowFactories_; std::vector mucSearchWindowFactories_; QtEventLoop clientMainThreadCaller_; QtSettingsProvider *settings_; QSplitter* splitter_; QtSoundPlayer* soundPlayer_; Dock* dock_; QtChatTabs* tabs_; ApplicationPathProvider* applicationPathProvider_; StoragesFactory* storagesFactory_; CertificateStorageFactory* certificateStorageFactory_; AutoUpdater* autoUpdater_; Notifier* notifier_; #if defined(SWIFTEN_PLATFORM_MACOSX) CocoaApplication cocoaApplication_; #endif #if defined(HAVE_SNARL) Win32NotifierWindow* notifierWindow_; #endif }; }