summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMateusz Piekos <mateuszpiekos@gmail.com>2012-06-14 14:23:32 (GMT)
committerMateusz Piekos <mateuszpiekos@gmail.com>2012-06-14 14:23:32 (GMT)
commit83f6dbd0036f3f2e23f9015626ef42d4836fbeee (patch)
tree0fbb4ce455b3b22133138ffcd7dd714cc3f652d1 /Swiften/Whiteboard/WhiteboardSessionManager.cpp
parent94259d74a5f21d7dbe4ef30bfe433e3950c135f6 (diff)
downloadswift-contrib-83f6dbd0036f3f2e23f9015626ef42d4836fbeee.zip
swift-contrib-83f6dbd0036f3f2e23f9015626ef42d4836fbeee.tar.bz2
Improved session initialization from UI side
Diffstat (limited to 'Swiften/Whiteboard/WhiteboardSessionManager.cpp')
-rw-r--r--Swiften/Whiteboard/WhiteboardSessionManager.cpp17
1 files changed, 13 insertions, 4 deletions
diff --git a/Swiften/Whiteboard/WhiteboardSessionManager.cpp b/Swiften/Whiteboard/WhiteboardSessionManager.cpp
index eae9e5b..eff0aae 100644
--- a/Swiften/Whiteboard/WhiteboardSessionManager.cpp
+++ b/Swiften/Whiteboard/WhiteboardSessionManager.cpp
@@ -38,7 +38,8 @@ namespace Swift {
OutgoingWhiteboardSession::ref session = boost::make_shared<OutgoingWhiteboardSession>(fullJID, router_);
sessions_[to.toBare()] = session;
session->onSessionTerminateReceived.connect(boost::bind(&WhiteboardSessionManager::handleSessionTerminate, this, _1));
- session->onSessionCancelled.connect(boost::bind(&WhiteboardSessionManager::handleSessionCancelled, this, _1));
+ session->onSessionCancelled.connect(boost::bind(&WhiteboardSessionManager::handleSessionCancel, this, _1));
+ session->onRequestAccepted.connect(boost::bind(&WhiteboardSessionManager::handleSessionAccept, this, _1));
return session;
}
@@ -47,6 +48,7 @@ namespace Swift {
if (!session) {
OutgoingWhiteboardSession::ref outgoingSession = createOutgoingSession(to);
outgoingSession->startSession();
+ onSessionRequest(to, true);
return outgoingSession;
} else {
return session;
@@ -56,8 +58,9 @@ namespace Swift {
void WhiteboardSessionManager::handleIncomingSession(IncomingWhiteboardSession::ref session) {
sessions_[session->getTo().toBare()] = session;
session->onSessionTerminateReceived.connect(boost::bind(&WhiteboardSessionManager::handleSessionTerminate, this, _1));
- session->onSessionCancelled.connect(boost::bind(&WhiteboardSessionManager::handleSessionCancelled, this, _1));
- onRequestReceived(session->getTo());
+ session->onSessionCancelled.connect(boost::bind(&WhiteboardSessionManager::handleSessionCancel, this, _1));
+ session->onRequestAccepted.connect(boost::bind(&WhiteboardSessionManager::handleSessionAccept, this, _1));
+ onSessionRequest(session->getTo(), false);
}
JID WhiteboardSessionManager::getFullJID(const JID& bareJID) {
@@ -67,9 +70,15 @@ namespace Swift {
void WhiteboardSessionManager::handleSessionTerminate(const JID& contact) {
sessions_.erase(contact.toBare());
+ onSessionTerminate(contact);
}
- void WhiteboardSessionManager::handleSessionCancelled(const JID& contact) {
+ void WhiteboardSessionManager::handleSessionCancel(const JID& contact) {
sessions_.erase(contact.toBare());
+ onSessionTerminate(contact);
+ }
+
+ void WhiteboardSessionManager::handleSessionAccept(const JID& contact) {
+ onRequestAccepted(contact);
}
}