diff options
| author | Mateusz Piekos <mateuszpiekos@gmail.com> | 2012-06-06 10:04:59 (GMT) | 
|---|---|---|
| committer | Mateusz Piekos <mateuszpiekos@gmail.com> | 2012-06-06 10:04:59 (GMT) | 
| commit | 8f85ae770025fd13e8f39e5097964768396f5b6b (patch) | |
| tree | b4eadab32223577657dced8361c21358d6dbb24d /Swift | |
| parent | fa2edf2f9dfa77129e749373d7045b98d1dcced5 (diff) | |
| download | swift-contrib-8f85ae770025fd13e8f39e5097964768396f5b6b.zip swift-contrib-8f85ae770025fd13e8f39e5097964768396f5b6b.tar.bz2  | |
Moved whiteboard data handling to WhiteboardSession
Diffstat (limited to 'Swift')
| -rw-r--r-- | Swift/Controllers/MainController.cpp | 2 | ||||
| -rw-r--r-- | Swift/Controllers/UIInterfaces/WhiteboardWindowFactory.h | 6 | ||||
| -rw-r--r-- | Swift/Controllers/WhiteboardManager.cpp | 6 | ||||
| -rw-r--r-- | Swift/Controllers/WhiteboardManager.h | 6 | ||||
| -rw-r--r-- | Swift/QtUI/QtUIFactory.cpp | 6 | ||||
| -rw-r--r-- | Swift/QtUI/QtUIFactory.h | 4 | ||||
| -rw-r--r-- | Swift/QtUI/Whiteboard/QtWhiteboardWindow.cpp | 18 | ||||
| -rw-r--r-- | Swift/QtUI/Whiteboard/QtWhiteboardWindow.h | 10 | 
8 files changed, 26 insertions, 32 deletions
diff --git a/Swift/Controllers/MainController.cpp b/Swift/Controllers/MainController.cpp index d9bb249..b3457d8 100644 --- a/Swift/Controllers/MainController.cpp +++ b/Swift/Controllers/MainController.cpp @@ -320,7 +320,7 @@ void MainController::handleConnected() {  		userSearchControllerChat_ = new UserSearchController(UserSearchController::StartChat, jid_, uiEventStream_, client_->getVCardManager(), uiFactory_, client_->getIQRouter(), rosterController_);  		userSearchControllerAdd_ = new UserSearchController(UserSearchController::AddContact, jid_, uiEventStream_, client_->getVCardManager(), uiFactory_, client_->getIQRouter(), rosterController_);  		adHocManager_ = new AdHocManager(JID(boundJID_.getDomain()), uiFactory_, client_->getIQRouter(), uiEventStream_, rosterController_->getWindow()); -		whiteboardManager_ = new WhiteboardManager(uiFactory_, uiEventStream_, client_->getStanzaChannel()); +		whiteboardManager_ = new WhiteboardManager(uiFactory_, uiEventStream_, client_->getStanzaChannel(), client_->getWhiteboardSessionManager());  	}  	loginWindow_->setIsLoggingIn(false); diff --git a/Swift/Controllers/UIInterfaces/WhiteboardWindowFactory.h b/Swift/Controllers/UIInterfaces/WhiteboardWindowFactory.h index 8b52ee1..7e0fe81 100644 --- a/Swift/Controllers/UIInterfaces/WhiteboardWindowFactory.h +++ b/Swift/Controllers/UIInterfaces/WhiteboardWindowFactory.h @@ -6,16 +6,14 @@  #pragma once -#include "Swiften/JID/JID.h" -  namespace Swift { +	class WhiteboardSession;  	class WhiteboardWindow; -	class StanzaChannel;  	class WhiteboardWindowFactory {  	public :  		virtual ~WhiteboardWindowFactory() {}; -		virtual WhiteboardWindow* createWhiteboardWindow(StanzaChannel* stanzaChannel, const JID& jid) = 0; +		virtual WhiteboardWindow* createWhiteboardWindow(WhiteboardSession* whiteboardSession) = 0;  	};  } diff --git a/Swift/Controllers/WhiteboardManager.cpp b/Swift/Controllers/WhiteboardManager.cpp index 6237426..86d70d1 100644 --- a/Swift/Controllers/WhiteboardManager.cpp +++ b/Swift/Controllers/WhiteboardManager.cpp @@ -11,11 +11,12 @@  #include <Swiften/Base/foreach.h>  #include <Swift/Controllers/UIEvents/RequestWhiteboardUIEvent.h>  #include <Swiften/Client/StanzaChannel.h> +#include <Swiften/Whiteboard/WhiteboardSessionManager.h>  namespace Swift {  	typedef std::pair<JID, WhiteboardWindow*> JIDWhiteboardWindowPair; -	WhiteboardManager::WhiteboardManager(WhiteboardWindowFactory* whiteboardWindowFactory, UIEventStream* uiEventStream, StanzaChannel* stanzaChannel) : whiteboardWindowFactory_(whiteboardWindowFactory), uiEventStream_(uiEventStream), stanzaChannel_(stanzaChannel) { +	WhiteboardManager::WhiteboardManager(WhiteboardWindowFactory* whiteboardWindowFactory, UIEventStream* uiEventStream, StanzaChannel* stanzaChannel, WhiteboardSessionManager* whiteboardSessionManager) : whiteboardWindowFactory_(whiteboardWindowFactory), uiEventStream_(uiEventStream), stanzaChannel_(stanzaChannel), whiteboardSessionManager_(whiteboardSessionManager) {  		uiEventConnection_ = uiEventStream_->onUIEvent.connect(boost::bind(&WhiteboardManager::handleUIEvent, this, _1));  	} @@ -33,7 +34,8 @@ namespace Swift {  	}  	WhiteboardWindow* WhiteboardManager::createNewWhiteboardWindow(const JID& contact) { -		WhiteboardWindow *window = whiteboardWindowFactory_->createWhiteboardWindow(stanzaChannel_, contact); +		WhiteboardSession* session = whiteboardSessionManager_->createSession(contact); +		WhiteboardWindow *window = whiteboardWindowFactory_->createWhiteboardWindow(session);  		whiteboardWindows_[contact] = window;  		return window;  	} diff --git a/Swift/Controllers/WhiteboardManager.h b/Swift/Controllers/WhiteboardManager.h index c28492c..a5a3dd0 100644 --- a/Swift/Controllers/WhiteboardManager.h +++ b/Swift/Controllers/WhiteboardManager.h @@ -19,10 +19,11 @@  namespace Swift {  	class StanzaChannel; +	class WhiteboardSessionManager;  	class WhiteboardManager {  	public: -		WhiteboardManager(WhiteboardWindowFactory* whiteboardWindowFactory, UIEventStream* uiEventStream, StanzaChannel* stanzaChannel); +		WhiteboardManager(WhiteboardWindowFactory* whiteboardWindowFactory, UIEventStream* uiEventStream, StanzaChannel* stanzaChannel, WhiteboardSessionManager* whiteboardSessionManager);  		~WhiteboardManager();  		WhiteboardWindow* getWhiteboardWindowOrCreate(const JID& contact); @@ -33,9 +34,10 @@ namespace Swift {  	private:  		std::map<JID, WhiteboardWindow*> whiteboardWindows_; -		UIEventStream* uiEventStream_;  		WhiteboardWindowFactory* whiteboardWindowFactory_; +		UIEventStream* uiEventStream_;  		boost::bsignals::scoped_connection uiEventConnection_;  		StanzaChannel* stanzaChannel_; +		WhiteboardSessionManager* whiteboardSessionManager_;  	};  } diff --git a/Swift/QtUI/QtUIFactory.cpp b/Swift/QtUI/QtUIFactory.cpp index d127791..e0fc532 100644 --- a/Swift/QtUI/QtUIFactory.cpp +++ b/Swift/QtUI/QtUIFactory.cpp @@ -28,7 +28,7 @@  #include "Whiteboard/QtWhiteboardWindow.h"  #include <Swift/Controllers/Settings/SettingsProviderHierachy.h>  #include <Swift/QtUI/QtUISettingConstants.h> -#include <Swiften/Client/StanzaChannel.h> +#include <Swiften/Whiteboard/WhiteboardSession.h>  namespace Swift { @@ -136,8 +136,8 @@ ContactEditWindow* QtUIFactory::createContactEditWindow() {  	return new QtContactEditWindow();  } -WhiteboardWindow* QtUIFactory::createWhiteboardWindow(StanzaChannel* stanzaChannel, const JID& jid) { -	return new QtWhiteboardWindow(stanzaChannel, jid); +WhiteboardWindow* QtUIFactory::createWhiteboardWindow(WhiteboardSession* whiteboardSession) { +	return new QtWhiteboardWindow(whiteboardSession);  }  void QtUIFactory::createAdHocCommandWindow(boost::shared_ptr<OutgoingAdHocCommandSession> command) { diff --git a/Swift/QtUI/QtUIFactory.h b/Swift/QtUI/QtUIFactory.h index 0c337f4..951b19c 100644 --- a/Swift/QtUI/QtUIFactory.h +++ b/Swift/QtUI/QtUIFactory.h @@ -24,7 +24,7 @@ namespace Swift {  	class QtChatWindowFactory;  	class QtChatWindow;  	class TimerFactory; -	class StanzaChannel; +	class WhiteboardSession;  	class QtUIFactory : public QObject, public UIFactory {  			Q_OBJECT @@ -43,7 +43,7 @@ namespace Swift {  			virtual ProfileWindow* createProfileWindow();  			virtual ContactEditWindow* createContactEditWindow();  			virtual FileTransferListWidget* createFileTransferListWidget(); -			virtual WhiteboardWindow* createWhiteboardWindow(StanzaChannel* stanzaChannel, const JID& jid); +			virtual WhiteboardWindow* createWhiteboardWindow(WhiteboardSession* whiteboardSession);  			virtual void createAdHocCommandWindow(boost::shared_ptr<OutgoingAdHocCommandSession> command);  		private slots: diff --git a/Swift/QtUI/Whiteboard/QtWhiteboardWindow.cpp b/Swift/QtUI/Whiteboard/QtWhiteboardWindow.cpp index b991e52..e0e68ba 100644 --- a/Swift/QtUI/Whiteboard/QtWhiteboardWindow.cpp +++ b/Swift/QtUI/Whiteboard/QtWhiteboardWindow.cpp @@ -10,13 +10,13 @@  #include <boost/bind.hpp> -#include <Swiften/Client/StanzaChannel.h> +#include <Swiften/Whiteboard/WhiteboardSession.h>  #include <Swiften/Elements/WhiteboardPayload.h>  using namespace std;  namespace Swift { -	QtWhiteboardWindow::QtWhiteboardWindow(StanzaChannel* stanzaChannel, const JID& jid) : QWidget(), stanzaChannel_(stanzaChannel), jid_(jid) { +	QtWhiteboardWindow::QtWhiteboardWindow(WhiteboardSession* whiteboardSession) : QWidget(), whiteboardSession_(whiteboardSession) {  		layout = new QVBoxLayout(this);  		hLayout = new QHBoxLayout;  		sidebarLayout = new QVBoxLayout; @@ -121,14 +121,7 @@ namespace Swift {  		layout->addLayout(hLayout);  		this->setLayout(layout); -		stanzaChannel_->onMessageReceived.connect(boost::bind(&QtWhiteboardWindow::handleIncommingMessage, this, _1)); -	} - -	void QtWhiteboardWindow::handleIncommingMessage(boost::shared_ptr<Message> message) { -		boost::shared_ptr<WhiteboardPayload> wb = message->getPayload<WhiteboardPayload>(); -		if(wb) { -			addItem(wb->getData()); -		} +		whiteboardSession_->onDataReceived.connect(boost::bind(&QtWhiteboardWindow::addItem, this, _1));		  	}  	void QtWhiteboardWindow::addItem(const std::string& item) { @@ -259,13 +252,14 @@ namespace Swift {  		}  		if (!serialized.empty()) {  			cout << "serialized: " << serialized << endl; -			boost::shared_ptr<Message> mes(new Message()); +/*			boost::shared_ptr<Message> mes(new Message());  			mes->setTo(jid_);  			boost::shared_ptr<WhiteboardPayload> wbPayload(new WhiteboardPayload);  			wbPayload->setData(serialized);  //		mes->setType(Swift::Message::Chat);  			mes->addPayload(wbPayload); -			stanzaChannel_->sendMessage(mes); +//			stanzaChannel_->sendMessage(mes);*/ +			whiteboardSession_->sendData(serialized);  		}  	} diff --git a/Swift/QtUI/Whiteboard/QtWhiteboardWindow.h b/Swift/QtUI/Whiteboard/QtWhiteboardWindow.h index 9ced322..f1a9ed5 100644 --- a/Swift/QtUI/Whiteboard/QtWhiteboardWindow.h +++ b/Swift/QtUI/Whiteboard/QtWhiteboardWindow.h @@ -8,7 +8,6 @@  #include <Swift/Controllers/UIInterfaces/WhiteboardWindow.h>  #include <Swiften/Elements/Message.h> -#include "Swiften/JID/JID.h"  #include <QWidget>  #include <QGraphicsView> @@ -25,14 +24,13 @@  #include "GView.h"  namespace Swift { -	class StanzaChannel; +	class WhiteboardSession;  	class QtWhiteboardWindow : public QWidget, public WhiteboardWindow  	{  		Q_OBJECT;  	public: -		QtWhiteboardWindow(StanzaChannel *stanzaChannel, const JID& jid); -		void handleIncommingMessage(boost::shared_ptr<Message> message); +		QtWhiteboardWindow(WhiteboardSession* whiteboardSession);  		void addItem(const std::string& item);  		void show(); @@ -50,6 +48,7 @@ namespace Swift {  		void setPolygonMode();  		void setSelectMode();  		void handleLastItemChanged(QGraphicsItem* item); +  	private:  		QGraphicsScene* scene;  		GView* graphicsView; @@ -73,7 +72,6 @@ namespace Swift {  		QToolButton* polygonButton;  		QToolButton* selectButton; -		StanzaChannel* stanzaChannel_; -		JID jid_; +		WhiteboardSession* whiteboardSession_;  	};  }  | 
 Swift