diff options
| author | Remko Tronçon <git@el-tramo.be> | 2009-11-28 20:07:57 (GMT) | 
|---|---|---|
| committer | Remko Tronçon <git@el-tramo.be> | 2009-11-28 20:16:52 (GMT) | 
| commit | 5c2567847c73f6095206dfbd451fe2f26f4056aa (patch) | |
| tree | 06a9ed263bec86531bd08b89242c78b3aeb0d8a0 /Swift/Controllers | |
| parent | 85dcc894ccf417ec8b057d868afb1d8006634ac4 (diff) | |
| download | swift-5c2567847c73f6095206dfbd451fe2f26f4056aa.zip swift-5c2567847c73f6095206dfbd451fe2f26f4056aa.tar.bz2 | |
Implemented XML console.
Resolves: #135
Diffstat (limited to 'Swift/Controllers')
| -rw-r--r-- | Swift/Controllers/MainController.cpp | 16 | ||||
| -rw-r--r-- | Swift/Controllers/UIInterfaces/XMLConsoleWidget.h | 5 | ||||
| -rw-r--r-- | Swift/Controllers/XMLConsoleController.cpp | 12 | ||||
| -rw-r--r-- | Swift/Controllers/XMLConsoleController.h | 6 | 
4 files changed, 27 insertions, 12 deletions
| diff --git a/Swift/Controllers/MainController.cpp b/Swift/Controllers/MainController.cpp index 2e640e0..8800da0 100644 --- a/Swift/Controllers/MainController.cpp +++ b/Swift/Controllers/MainController.cpp @@ -45,16 +45,6 @@  #include "Swiften/StringCodecs/SHA1.h"  #include "Swiften/StringCodecs/Hexify.h" -namespace { -	void printIncomingData(const Swift::String& data) { -		std::cout << "<- " << data << std::endl; -	} - -	void printOutgoingData(const Swift::String& data) { -		std::cout << "-> " << data << std::endl; -	} -} -  namespace Swift {  static const String CLIENT_NAME = "Swift"; @@ -273,8 +263,10 @@ void MainController::performLoginFromCachedCredentials() {  	if (!client_) {  		client_ = new Swift::Client(jid_, password_);  		presenceSender_ = new PresenceSender(client_); -		//client_->onDataRead.connect(&printIncomingData); -		//client_->onDataWritten.connect(&printOutgoingData); +		client_->onDataRead.connect(boost::bind( +				&XMLConsoleController::handleDataRead, xmlConsoleController_, _1)); +		client_->onDataWritten.connect(boost::bind( +				&XMLConsoleController::handleDataWritten, xmlConsoleController_, _1));  		if (!certificateFile_.isEmpty()) {  			client_->setCertificate(certificateFile_);  		} diff --git a/Swift/Controllers/UIInterfaces/XMLConsoleWidget.h b/Swift/Controllers/UIInterfaces/XMLConsoleWidget.h index e333d97..eab29a8 100644 --- a/Swift/Controllers/UIInterfaces/XMLConsoleWidget.h +++ b/Swift/Controllers/UIInterfaces/XMLConsoleWidget.h @@ -1,10 +1,15 @@  #pragma once  namespace Swift { +	class String; +  	class XMLConsoleWidget {  		public:  			virtual ~XMLConsoleWidget(); +			virtual void handleDataRead(const String& data) = 0; +			virtual void handleDataWritten(const String& data) = 0; +  			virtual void show() = 0;  			virtual void activate() = 0;  	}; diff --git a/Swift/Controllers/XMLConsoleController.cpp b/Swift/Controllers/XMLConsoleController.cpp index 4629573..7de5b94 100644 --- a/Swift/Controllers/XMLConsoleController.cpp +++ b/Swift/Controllers/XMLConsoleController.cpp @@ -24,4 +24,16 @@ void XMLConsoleController::handleUIEvent(boost::shared_ptr<UIEvent> rawEvent) {  	}  } +void XMLConsoleController::handleDataRead(const String& data) { +	if (xmlConsoleWidget) { +		xmlConsoleWidget->handleDataRead(data); +	} +} + +void XMLConsoleController::handleDataWritten(const String& data) { +	if (xmlConsoleWidget) { +		xmlConsoleWidget->handleDataWritten(data); +	} +} +  } diff --git a/Swift/Controllers/XMLConsoleController.h b/Swift/Controllers/XMLConsoleController.h index 52a8269..134bf0d 100644 --- a/Swift/Controllers/XMLConsoleController.h +++ b/Swift/Controllers/XMLConsoleController.h @@ -7,13 +7,19 @@  #include "Swift/Controllers/UIEvents/UIEventStream.h"  namespace Swift { +	class String;  	class XMLConsoleWidgetFactory;  	class XMLConsoleWidget; +  	class XMLConsoleController {  		public:  			XMLConsoleController(UIEventStream* uiEventStream, XMLConsoleWidgetFactory* xmlConsoleWidgetFactory);  			~XMLConsoleController(); +		public: +			void handleDataRead(const String& data); +			void handleDataWritten(const String& data); +  		private:  			void handleUIEvent(boost::shared_ptr<UIEvent> event); | 
 Swift
 Swift