diff options
| -rw-r--r-- | Swift/Controllers/ChatController.cpp | 1 | ||||
| -rw-r--r-- | Swift/Controllers/ChatWindow.h | 1 | ||||
| -rw-r--r-- | Swift/Controllers/NickResolver.cpp | 5 | ||||
| -rw-r--r-- | Swift/Controllers/UnitTest/NickResolverTest.cpp | 35 | ||||
| -rw-r--r-- | Swift/QtUI/QtChatWindow.cpp | 5 | ||||
| -rw-r--r-- | Swift/QtUI/QtChatWindow.h | 1 | 
6 files changed, 33 insertions, 15 deletions
| diff --git a/Swift/Controllers/ChatController.cpp b/Swift/Controllers/ChatController.cpp index 32fc0c2..90e5567 100644 --- a/Swift/Controllers/ChatController.cpp +++ b/Swift/Controllers/ChatController.cpp @@ -16,6 +16,7 @@ ChatController::ChatController(const JID& self, StanzaChannel* stanzaChannel, IQ   : ChatControllerBase(self, stanzaChannel, iqRouter, chatWindowFactory, contact, presenceOracle, avatarManager) {  	nickResolver_ = nickResolver;  	presenceOracle_->onPresenceChange.connect(boost::bind(&ChatController::handlePresenceChange, this, _1, _2)); +	chatWindow_->setName(nickResolver_->jidToNick(toJID_));  }  bool ChatController::isIncomingMessageFromMe(boost::shared_ptr<Message>) { diff --git a/Swift/Controllers/ChatWindow.h b/Swift/Controllers/ChatWindow.h index dd71bf9..36788cf 100644 --- a/Swift/Controllers/ChatWindow.h +++ b/Swift/Controllers/ChatWindow.h @@ -22,6 +22,7 @@ namespace Swift {  			virtual void addSystemMessage(const String& message) = 0;  			virtual void addErrorMessage(const String& message) = 0; +			virtual void setName(const String& name) = 0;  			virtual void show() = 0;  			virtual void setAvailableSecurityLabels(const std::vector<SecurityLabel>& labels) = 0;  			virtual void setSecurityLabelsEnabled(bool enabled) = 0; diff --git a/Swift/Controllers/NickResolver.cpp b/Swift/Controllers/NickResolver.cpp index db1d2b4..0886079 100644 --- a/Swift/Controllers/NickResolver.cpp +++ b/Swift/Controllers/NickResolver.cpp @@ -11,10 +11,11 @@ NickResolver::NickResolver(boost::shared_ptr<XMPPRoster> xmppRoster) {  }  String NickResolver::jidToNick(const JID& jid) { -	if (xmppRoster_->containsJID(jid)) { +	String nick; +	if (xmppRoster_->containsJID(jid) && xmppRoster_->getNameForJID(jid) != "") {  		return xmppRoster_->getNameForJID(jid);  	} -	std::map<JID, String>::iterator it = map_.find(jid); +	std::map<JID, String>::const_iterator it = map_.find(jid);  	return (it == map_.end()) ? jid.toBare() : it->second;  } diff --git a/Swift/Controllers/UnitTest/NickResolverTest.cpp b/Swift/Controllers/UnitTest/NickResolverTest.cpp index 947d3d8..e3123f9 100644 --- a/Swift/Controllers/UnitTest/NickResolverTest.cpp +++ b/Swift/Controllers/UnitTest/NickResolverTest.cpp @@ -10,6 +10,7 @@ class NickResolverTest : public CppUnit::TestFixture  {  		CPPUNIT_TEST_SUITE(NickResolverTest);  		CPPUNIT_TEST(testNoMatch); +		CPPUNIT_TEST(testZeroLengthMatch);  		CPPUNIT_TEST(testMatch);  		CPPUNIT_TEST(testOverwrittenMatch);  		CPPUNIT_TEST(testRemovedMatch); @@ -23,37 +24,45 @@ class NickResolverTest : public CppUnit::TestFixture  		void testNoMatch() {  			boost::shared_ptr<XMPPRoster> xmppRoster(new XMPPRoster());  			NickResolver resolver(xmppRoster); -			JID testling("foo@bar/baz"); +			JID testJID("foo@bar/baz"); -			CPPUNIT_ASSERT_EQUAL(String("foo@bar"), resolver.jidToNick(testling)); +			CPPUNIT_ASSERT_EQUAL(String("foo@bar"), resolver.jidToNick(testJID)); +		} +		 +		void testZeroLengthMatch() { +			boost::shared_ptr<XMPPRoster> xmppRoster(new XMPPRoster()); +			NickResolver resolver(xmppRoster); +			JID testJID("foo@bar/baz"); +			xmppRoster->addContact(testJID, "", groups_); +			CPPUNIT_ASSERT_EQUAL(String("foo@bar"), resolver.jidToNick(testJID));  		}  		void testMatch() {  			boost::shared_ptr<XMPPRoster> xmppRoster(new XMPPRoster());  			NickResolver resolver(xmppRoster); -			JID testling("foo@bar/baz"); -			xmppRoster->addContact(testling, "Test", groups_); +			JID testJID("foo@bar/baz"); +			xmppRoster->addContact(testJID, "Test", groups_); -			CPPUNIT_ASSERT_EQUAL(String("Test"), resolver.jidToNick(testling)); +			CPPUNIT_ASSERT_EQUAL(String("Test"), resolver.jidToNick(testJID));  		}  		void testOverwrittenMatch() {  			boost::shared_ptr<XMPPRoster> xmppRoster(new XMPPRoster());  			NickResolver resolver(xmppRoster); -			JID testling("foo@bar/baz"); -			xmppRoster->addContact(testling, "FailTest", groups_); -			xmppRoster->addContact(testling, "Test", groups_); +			JID testJID("foo@bar/baz"); +			xmppRoster->addContact(testJID, "FailTest", groups_); +			xmppRoster->addContact(testJID, "Test", groups_); -			CPPUNIT_ASSERT_EQUAL(String("Test"), resolver.jidToNick(testling)); +			CPPUNIT_ASSERT_EQUAL(String("Test"), resolver.jidToNick(testJID));  		}  		void testRemovedMatch() {  			boost::shared_ptr<XMPPRoster> xmppRoster(new XMPPRoster());  			NickResolver resolver(xmppRoster); -			JID testling("foo@bar/baz"); -			xmppRoster->addContact(testling, "FailTest", groups_); -			xmppRoster->removeContact(testling); -			CPPUNIT_ASSERT_EQUAL(String("foo@bar"), resolver.jidToNick(testling)); +			JID testJID("foo@bar/baz"); +			xmppRoster->addContact(testJID, "FailTest", groups_); +			xmppRoster->removeContact(testJID); +			CPPUNIT_ASSERT_EQUAL(String("foo@bar"), resolver.jidToNick(testJID));  		}  }; diff --git a/Swift/QtUI/QtChatWindow.cpp b/Swift/QtUI/QtChatWindow.cpp index 8e916c3..f4e0b0b 100644 --- a/Swift/QtUI/QtChatWindow.cpp +++ b/Swift/QtUI/QtChatWindow.cpp @@ -121,6 +121,11 @@ void QtChatWindow::setUnreadMessageCount(int count) {  	updateTitleWithUnreadCount();  } +void QtChatWindow::setName(const String& name) { +	contact_ = P2QSTRING(name); +	updateTitleWithUnreadCount(); +} +  void QtChatWindow::updateTitleWithUnreadCount() {  	setWindowTitle(unreadCount_ > 0 ? QString("(%1) %2)").arg(unreadCount_).arg(contact_) : contact_);  	emit titleUpdated(); diff --git a/Swift/QtUI/QtChatWindow.h b/Swift/QtUI/QtChatWindow.h index 20a53b9..6e45d34 100644 --- a/Swift/QtUI/QtChatWindow.h +++ b/Swift/QtUI/QtChatWindow.h @@ -29,6 +29,7 @@ namespace Swift {  			void setSecurityLabelsEnabled(bool enabled);  			void setSecurityLabelsError();  			SecurityLabel getSelectedSecurityLabel(); +			void setName(const String& name);  		protected slots:  			void qAppFocusChanged(QWidget* old, QWidget* now); | 
 Swift
 Swift