From 3dd69f2f852953638b220352b0eeee10464da5d8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Remko=20Tron=C3=A7on?= <git@el-tramo.be>
Date: Wed, 3 Jun 2009 19:11:45 +0200
Subject: Pull requesting the roster out of the XMPPRosterController
 constructor.


diff --git a/Swiften/Controllers/MainController.cpp b/Swiften/Controllers/MainController.cpp
index e0d0fe7..5535bf8 100644
--- a/Swiften/Controllers/MainController.cpp
+++ b/Swiften/Controllers/MainController.cpp
@@ -87,6 +87,7 @@ void MainController::handleConnected() {
 
 	delete xmppRosterController_;
 	xmppRosterController_ = new XMPPRosterController(client_, xmppRoster);
+	xmppRosterController_->requestRoster();
 
 	delete clientVersionResponder_;
 	clientVersionResponder_ = new SoftwareVersionResponder(CLIENT_NAME, CLIENT_VERSION, client_);
@@ -106,7 +107,7 @@ void MainController::handleConnected() {
 	
 	//Send presence last to catch all the incoming presences.
 	boost::shared_ptr<Presence> initialPresence(new Presence());
-  initialPresence->addPayload(capsInfo_);
+	initialPresence->addPayload(capsInfo_);
 	client_->sendPresence(initialPresence);
 }
 
diff --git a/Swiften/Controllers/UnitTest/XMPPRosterControllerTest.cpp b/Swiften/Controllers/UnitTest/XMPPRosterControllerTest.cpp
index 3bff8f3..17cc31c 100644
--- a/Swiften/Controllers/UnitTest/XMPPRosterControllerTest.cpp
+++ b/Swiften/Controllers/UnitTest/XMPPRosterControllerTest.cpp
@@ -22,9 +22,14 @@ class XMPPRosterControllerTest : public CppUnit::TestFixture
 		DummyIQChannel* channel_;
 		IQRouter* router_;
 	public:
-		XMPPRosterControllerTest() : channel_(new DummyIQChannel()), router_(new IQRouter(channel_)) {}
-		
-		~XMPPRosterControllerTest() {
+		XMPPRosterControllerTest() {}
+
+		void setUp() {
+			channel_ = new DummyIQChannel();
+			router_ = new IQRouter(channel_);
+		}
+
+		void tearDown() {
 			delete channel_;
 			delete router_;
 		}
diff --git a/Swiften/Controllers/XMPPRosterController.cpp b/Swiften/Controllers/XMPPRosterController.cpp
index b6c36d7..d1e6f80 100644
--- a/Swiften/Controllers/XMPPRosterController.cpp
+++ b/Swiften/Controllers/XMPPRosterController.cpp
@@ -22,16 +22,19 @@ namespace Swift {
  * The controller does not gain ownership of these parameters.
  */
 XMPPRosterController::XMPPRosterController(IQRouter* iqRouter, boost::shared_ptr<XMPPRoster> xmppRoster)
- : IQHandler(iqRouter), xmppRoster_(xmppRoster) {
-	GetRosterRequest* rosterRequest = new GetRosterRequest(iqRouter, Request::AutoDeleteAfterResponse);
-	rosterRequest->onResponse.connect(boost::bind(&XMPPRosterController::handleRosterReceived, this, _1));
-	rosterRequest->send();
+ : IQHandler(iqRouter), iqRouter_(iqRouter), xmppRoster_(xmppRoster) {
 }
 
 XMPPRosterController::~XMPPRosterController() {
 
 }
 
+void XMPPRosterController::requestRoster() {
+	GetRosterRequest* rosterRequest = new GetRosterRequest(iqRouter_, Request::AutoDeleteAfterResponse);
+	rosterRequest->onResponse.connect(boost::bind(&XMPPRosterController::handleRosterReceived, this, _1));
+	rosterRequest->send();
+}
+
 void XMPPRosterController::handleRosterReceived(boost::shared_ptr<RosterPayload> rosterPayload) {
 	foreach(const RosterItemPayload& item, rosterPayload->getItems()) {
 		if (item.getSubscription() == RosterItemPayload::Remove) {
diff --git a/Swiften/Controllers/XMPPRosterController.h b/Swiften/Controllers/XMPPRosterController.h
index 2eaa6f5..7695ff5 100644
--- a/Swiften/Controllers/XMPPRosterController.h
+++ b/Swiften/Controllers/XMPPRosterController.h
@@ -17,10 +17,14 @@ namespace Swift {
 		public:
 			XMPPRosterController(IQRouter *iqRouter, boost::shared_ptr<XMPPRoster> xmppRoster);
 			~XMPPRosterController();
+
+			void requestRoster();
+
 			boost::shared_ptr<XMPPRoster> getXMPPRoster() {return xmppRoster_;};
 			bool handleIQ(boost::shared_ptr<IQ>);
 
 		private:
+			IQRouter* iqRouter_;
 			void handleRosterReceived(boost::shared_ptr<RosterPayload> rosterPayload);
 			boost::shared_ptr<XMPPRoster> xmppRoster_;
 	};
-- 
cgit v0.10.2-6-g49f6