diff options
author | Remko Tronçon <git@el-tramo.be> | 2010-10-27 19:06:56 (GMT) |
---|---|---|
committer | Remko Tronçon <git@el-tramo.be> | 2010-10-27 19:07:55 (GMT) |
commit | 6810a2896f27e7ee07aee847f5e8dbccd1f6ec89 (patch) | |
tree | f7ea87f030e57cb4494a4f897506fb18fc3d2241 /Swift | |
parent | a7da393cfc807048d320ddba8a1c7d24ef23a46e (diff) | |
download | swift-contrib-6810a2896f27e7ee07aee847f5e8dbccd1f6ec89.zip swift-contrib-6810a2896f27e7ee07aee847f5e8dbccd1f6ec89.tar.bz2 |
Remove MainEventLoop singleton.
The event loop now needs to be explicitly passed to clients
using it.
Diffstat (limited to 'Swift')
-rw-r--r-- | Swift/Controllers/MainController.cpp | 6 | ||||
-rw-r--r-- | Swift/Controllers/MainController.h | 3 | ||||
-rw-r--r-- | Swift/QtUI/QtSwift.cpp | 1 | ||||
-rw-r--r-- | Swift/QtUI/QtSwift.h | 1 |
4 files changed, 9 insertions, 2 deletions
diff --git a/Swift/Controllers/MainController.cpp b/Swift/Controllers/MainController.cpp index b02c78b..c9e6230 100644 --- a/Swift/Controllers/MainController.cpp +++ b/Swift/Controllers/MainController.cpp @@ -65,6 +65,7 @@ static const String CLIENT_NODE = "http://swift.im"; static const String SHOW_NOTIFICATIONS = "showNotifications"; MainController::MainController( + EventLoop* eventLoop, ChatWindowFactory* chatWindowFactory, MainWindowFactory *mainWindowFactory, LoginWindowFactory *loginWindowFactory, @@ -79,7 +80,8 @@ MainController::MainController( Dock* dock, Notifier* notifier, bool useDelayForLatency) : - timerFactory_(&boostIOServiceThread_.getIOService()), + eventLoop_(eventLoop), + timerFactory_(&boostIOServiceThread_.getIOService(), eventLoop), idleDetector_(&idleQuerier_, &timerFactory_, 100), storagesFactory_(storagesFactory), chatWindowFactory_(chatWindowFactory), @@ -361,7 +363,7 @@ void MainController::performLoginFromCachedCredentials() { } if (!client_) { storages_ = storagesFactory_->createStorages(jid_); - client_ = new Swift::Client(jid_, password_, storages_); + client_ = new Swift::Client(eventLoop_, jid_, password_, storages_); client_->onDataRead.connect(boost::bind(&XMLConsoleController::handleDataRead, xmlConsoleController_, _1)); client_->onDataWritten.connect(boost::bind(&XMLConsoleController::handleDataWritten, xmlConsoleController_, _1)); client_->onError.connect(boost::bind(&MainController::handleError, this, _1)); diff --git a/Swift/Controllers/MainController.h b/Swift/Controllers/MainController.h index 22d2559..709bacf 100644 --- a/Swift/Controllers/MainController.h +++ b/Swift/Controllers/MainController.h @@ -28,6 +28,7 @@ #include "Swift/Controllers/UIEvents/UIEvent.h" namespace Swift { + class EventLoop; class Client; class ChatWindowFactory; class ChatController; @@ -65,6 +66,7 @@ namespace Swift { class MainController { public: MainController( + EventLoop* eventLoop, ChatWindowFactory* chatWindowFactory, MainWindowFactory *mainWindowFactory, LoginWindowFactory *loginWindowFactory, @@ -107,6 +109,7 @@ namespace Swift { void handleNotificationClicked(const JID& jid); private: + EventLoop* eventLoop_; BoostIOServiceThread boostIOServiceThread_; BoostTimerFactory timerFactory_; PlatformIdleQuerier idleQuerier_; diff --git a/Swift/QtUI/QtSwift.cpp b/Swift/QtUI/QtSwift.cpp index d61f94c..77860d5 100644 --- a/Swift/QtUI/QtSwift.cpp +++ b/Swift/QtUI/QtSwift.cpp @@ -135,6 +135,7 @@ QtSwift::QtSwift(po::variables_map options) : autoUpdater_(NULL) { QtMUCSearchWindowFactory* mucSearchWindowFactory = new QtMUCSearchWindowFactory(); mucSearchWindowFactories_.push_back(mucSearchWindowFactory); MainController* mainController = new MainController( + &clientMainThreadCaller_, chatWindowFactory_, rosterWindowFactory, loginWindowFactory, diff --git a/Swift/QtUI/QtSwift.h b/Swift/QtUI/QtSwift.h index 59fa746..6817734 100644 --- a/Swift/QtUI/QtSwift.h +++ b/Swift/QtUI/QtSwift.h @@ -45,6 +45,7 @@ namespace Swift { class QtEventWindowFactory; class QtChatListWindowFactory; class QtMUCSearchWindowFactory; + class EventLoop; class QtSwift : public QObject { Q_OBJECT |