Changeset - ee4e5ecb71cc
[Not reviewed]
0 2 0
HanzZ - 13 years ago 2012-04-10 18:49:40
hanzz.k@gmail.com
send roster push on group change
2 files changed with 21 insertions and 6 deletions:
0 comments (0 inline, 0 general)
include/transport/localbuddy.h
Show inline comments
 
@@ -59,12 +59,7 @@ class LocalBuddy : public Buddy {
 
		}
 

	
 
		std::vector<std::string> getGroups() { return m_groups; }
 
		void setGroups(const std::vector<std::string> &groups) {
 
			bool changed = m_groups.size() != groups.size();
 
			m_groups = groups;
 
			if (changed)
 
				getRosterManager()->storeBuddy(this);
 
		}
 
		void setGroups(const std::vector<std::string> &groups);
 

	
 
	private:
 
		std::string m_name;
src/localbuddy.cpp
Show inline comments
 
@@ -48,4 +48,24 @@ void LocalBuddy::setAlias(const std::string &alias) {
 
	}
 
}
 

	
 
void LocalBuddy::setGroups(const std::vector<std::string> &groups) {
 
	bool changed = m_groups.size() != groups.size();
 
	if (!changed) {
 
		for (int i = 0; i != m_groups.size(); i++) {
 
			if (m_groups[i] != groups[i]) {
 
				changed = true;
 
				break;
 
			}
 
		}
 
	}
 

	
 
	m_groups = groups;
 
	if (changed) {
 
		if (getRosterManager()->getUser()->getComponent()->inServerMode() || getRosterManager()->isRemoteRosterSupported()) {
 
			getRosterManager()->sendBuddyRosterPush(this);
 
		}
 
		getRosterManager()->storeBuddy(this);
 
	}
 
}
 

	
 
}
0 comments (0 inline, 0 general)