Changeset - 457d19d1ec41
[Not reviewed]
0 7 0
HanzZ - 14 years ago 2011-05-19 00:33:38
hanzz.k@gmail.com
Working join/rename
7 files changed with 24 insertions and 13 deletions:
0 comments (0 inline, 0 general)
backends/libircclient-qt/session.cpp
Show inline comments
 
@@ -73,30 +73,30 @@ MyIrcBuffer::MyIrcBuffer(const QString& receiver, const std::string &user, Netwo
 

	
 
void MyIrcBuffer::on_receiverChanged(const QString& receiver)
 
{
 
    qDebug() << "receiver changed:" << receiver;
 
}
 

	
 
void MyIrcBuffer::on_joined(const QString& origin)
 
{
 
    qDebug() << "joined:" << receiver() << origin;
 
void MyIrcBuffer::on_joined(const QString& origin) {
 
	qDebug() << "joined:" << receiver() << origin;
 
	np->handleParticipantChanged(user, origin.toStdString(), receiver().toStdString(), 0);
 
}
 

	
 
void MyIrcBuffer::on_parted(const QString& origin, const QString& message)
 
{
 
    qDebug() << "parted:" << receiver() << origin << message;
 
}
 

	
 
void MyIrcBuffer::on_quit(const QString& origin, const QString& message)
 
{
 
    qDebug() << "quit:" << receiver() << origin << message;
 
}
 

	
 
void MyIrcBuffer::on_nickChanged(const QString& origin, const QString& nick)
 
{
 
    qDebug() << "nick changed:" << receiver() << origin << nick;
 
void MyIrcBuffer::on_nickChanged(const QString& origin, const QString& nick) {
 
	qDebug() << "nick changed:" << receiver() << origin << nick;
 
	np->handleParticipantChanged(user, origin.toStdString(), receiver().toStdString(), 0, nick.toStdString());
 
}
 

	
 
void MyIrcBuffer::on_modeChanged(const QString& origin, const QString& mode, const QString& args)
 
{
 
    qDebug() << "mode changed:" << receiver() << origin << mode << args;
 
}
include/transport/conversation.h
Show inline comments
 
@@ -39,13 +39,13 @@ class Conversation {
 
		/// Destructor
 
		virtual ~Conversation();
 

	
 
		const std::string &getLegacyName() { return m_legacyName; }
 

	
 
		void handleMessage(boost::shared_ptr<Swift::Message> &message, const std::string &nickname = "");
 
		void handleParticipantChanged(const std::string &nickname, int flag);
 
		void handleParticipantChanged(const std::string &nickname, int flag, const std::string &newname = "");
 
		void setNickname(const std::string &nickname) {
 
			m_nickname = nickname;
 
		}
 

	
 
		virtual void sendMessage(boost::shared_ptr<Swift::Message> &message) = 0;
 

	
include/transport/networkplugin.h
Show inline comments
 
@@ -41,13 +41,13 @@ class NetworkPlugin {
 
		virtual ~NetworkPlugin();
 

	
 
		void handleBuddyChanged(const std::string &user, const std::string &buddyName, const std::string &alias,
 
			const std::string &groups, int status, const std::string &statusMessage = "", const std::string &iconHash = ""
 
		);
 

	
 
		void handleParticipantChanged(const std::string &user, const std::string &nickname, const std::string &room, int flags);
 
		void handleParticipantChanged(const std::string &user, const std::string &nickname, const std::string &room, int flags, const std::string &newname = "");
 

	
 
		void handleDisconnected(const std::string &user, const std::string &legacyName, int error, const std::string &message);
 

	
 
		void handleMessage(const std::string &user, const std::string &legacyName, const std::string &message, const std::string &nickname = "");
 

	
 
		void handleRoomChanged(const std::string &user, const std::string &room, const std::string &nickname);
src/conversation.cpp
Show inline comments
 
@@ -75,13 +75,13 @@ void Conversation::handleMessage(boost::shared_ptr<Swift::Message> &message, con
 
		message->setTo(m_conversationManager->getUser()->getJID().toString());
 
		message->setFrom(Swift::JID(m_legacyName, m_conversationManager->getComponent()->getJID().toBare(), nickname));
 
		m_conversationManager->getComponent()->getStanzaChannel()->sendMessage(message);
 
	}
 
}
 

	
 
void Conversation::handleParticipantChanged(const std::string &nick, int flag) {
 
void Conversation::handleParticipantChanged(const std::string &nick, int flag, const std::string &newname) {
 
	std::string nickname = nick;
 
	if (nickname.find("@") == 0) {
 
		nickname = nickname.substr(1);
 
	}
 
	Swift::Presence::ref presence = Swift::Presence::create();
 
 	presence->setFrom(Swift::JID(m_legacyName, m_conversationManager->getComponent()->getJID().toBare(), nickname));
 
@@ -91,13 +91,22 @@ void Conversation::handleParticipantChanged(const std::string &nick, int flag) {
 
	Swift::MUCUserPayload *p = new Swift::MUCUserPayload ();
 
	if (m_nickname == nickname) {
 
		Swift::MUCUserPayload::StatusCode c;
 
		c.code = 110;
 
		p->addStatusCode(c);
 
	}
 
	p->addItem(Swift::MUCUserPayload::Item(Swift::MUCOccupant::Member, Swift::MUCOccupant::Participant));
 

	
 
	Swift::MUCUserPayload::Item item(Swift::MUCOccupant::Member, Swift::MUCOccupant::Participant);
 
	if (!newname.empty()) {
 
		item.nick = newname;
 
		Swift::MUCUserPayload::StatusCode c;
 
		c.code = 303;
 
		p->addStatusCode(c);
 
	}
 

	
 
	p->addItem(item);
 

	
 
	presence->addPayload(boost::shared_ptr<Swift::Payload>(p));
 
	m_conversationManager->getComponent()->getStanzaChannel()->sendPresence(presence);
 
}
 

	
 
}
src/networkplugin.cpp
Show inline comments
 
@@ -102,18 +102,19 @@ void NetworkPlugin::handleDisconnected(const std::string &user, const std::strin
 

	
 
	WRAP(message, pbnetwork::WrapperMessage_Type_TYPE_DISCONNECTED);
 

	
 
	send(message);
 
}
 

	
 
void NetworkPlugin::handleParticipantChanged(const std::string &user, const std::string &nickname, const std::string &room, int flags) {
 
void NetworkPlugin::handleParticipantChanged(const std::string &user, const std::string &nickname, const std::string &room, int flags, const std::string &newname) {
 
	pbnetwork::Participant d;
 
	d.set_username(user);
 
	d.set_nickname(nickname);
 
	d.set_room(room);
 
	d.set_flag(flags);
 
	d.set_newname(newname);
 

	
 
	std::string message;
 
	d.SerializeToString(&message);
 

	
 
	WRAP(message, pbnetwork::WrapperMessage_Type_TYPE_PARTICIPANT_CHANGED);
 

	
src/networkpluginserver.cpp
Show inline comments
 
@@ -207,25 +207,25 @@ void NetworkPluginServer::handleParticipantChangedPayload(const std::string &dat
 

	
 
	NetworkConversation *conv = (NetworkConversation *) user->getConversationManager()->getConversation(payload.room());
 
	if (!conv) {
 
		return;
 
	}
 

	
 
	conv->handleParticipantChanged(payload.nickname(), payload.flag());
 
	conv->handleParticipantChanged(payload.nickname(), payload.flag(), payload.newname());
 

	
 
// 	LocalBuddy *buddy = (LocalBuddy *) user->getRosterManager()->getBuddy(payload.buddyname());
 
// 	if (buddy) {
 
// 		handleBuddyPayload(buddy, payload);
 
// 		buddy->buddyChanged();
 
// 	}
 
// 	else {
 
// 		buddy = new LocalBuddy(user->getRosterManager(), -1);
 
// 		handleBuddyPayload(buddy, payload);
 
// 		user->getRosterManager()->setBuddy(buddy);
 
// 	}
 
	std::cout << payload.nickname() << "\n";
 
// 	std::cout << payload.nickname() << "\n";
 
}
 

	
 
void NetworkPluginServer::handleRoomChangedPayload(const std::string &data) {
 
	pbnetwork::Room payload;
 
	if (payload.ParseFromString(data) == false) {
 
		return;
src/pbnetwork.proto
Show inline comments
 
@@ -49,12 +49,13 @@ message Room {
 

	
 
message Participant {
 
	required string userName = 1;
 
	required string room = 2;
 
	required string nickname = 3;
 
	required int32 flag = 4;
 
	optional string newname = 5;
 
}
 

	
 
message WrapperMessage {
 
	enum Type { 
 
		TYPE_CONNECTED 				= 1;
 
		TYPE_DISCONNECTED 			= 2;
0 comments (0 inline, 0 general)