Bug 105786 - [icq] Can't update nicknames of ICQ contacts
Summary: [icq] Can't update nicknames of ICQ contacts
Status: RESOLVED FIXED
Alias: None
Product: kopete
Classification: Unclassified
Component: ICQ and AIM Plugins (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR normal (vote)
Target Milestone: ---
Assignee: Kopete Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2005-05-17 03:07 UTC by Simon Koch
Modified: 2005-07-16 22:16 UTC (History)
0 users

See Also:
Latest Commit:
Version Fixed In:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Simon Koch 2005-05-17 03:07:53 UTC
Version:            (using KDE Devel)
Installed from:    Compiled sources
Compiler:          gcc version 3.3.5-20050130 (Gentoo Linux 3.3.5.20050130-r1, ssp-3.3.5.20050130-1, pie-8.7.7.1) 

I was cleaning up my contact list when I noticed that a couple of my ICQ contacts had changed their nicknames.  When I right click on the ICQ flower on the meta-contact and choose "User Info", I see the new nickname.  After I click OK in the ICQ User Information dialog, right clicking on or hovering over the ICQ flower on the meta-contact still shows the old nickname.  Similarly, checking "Use the name given by the server" in the meta-contact's Properties still uses the old nickname.  Ideally, the nickname would be updated when the other user changes it, but I should at least be able to update it by manually retrieving their contact information from the server.
Comment 1 Matt Rogers 2005-05-19 05:03:23 UTC
yup, this is a problem. hopefully we'll have a fix soon. However, I won't guarantee that it'll be fixed before KDE 3.4.1
Comment 2 Matt Rogers 2005-07-16 22:12:38 UTC
SVN commit 435392 by mattr:

when getting the user info for the dialog, make sure that we update the 
nickname for the contact.

also make sure that we update the contact name on login as well.

BUG: 105786



 M  +6 -7      icqcontact.cpp  


--- trunk/KDE/kdenetwork/kopete/protocols/oscar/icq/icqcontact.cpp #435391:435392
@@ -144,13 +144,10 @@
 	if ( m_ssiItem.waitingAuth() )
 		setOnlineStatus( mProtocol->statusManager()->waitingForAuth() );
 
-	QString nickname = property( Kopete::Global::Properties::self()->nickName() ).value().toString();
-	if ( nickname.isEmpty() || Oscar::normalize( nickname ) == Oscar::normalize( contactId() ) )
-	{
-		int time = ( KApplication::random() % 25 ) * 1000;
-		kdDebug(OSCAR_ICQ_DEBUG) << k_funcinfo << "updating nickname in " << time/1000 << " seconds" << endl;
-		QTimer::singleShot( time, this, SLOT( requestShortInfo() ) );
-	}
+	int time = ( KApplication::random() % 20 ) * 1000;
+	kdDebug(OSCAR_ICQ_DEBUG) << k_funcinfo << "updating nickname in " << time/1000 << " seconds" << endl;
+	QTimer::singleShot( time, this, SLOT( requestShortInfo() ) );
+
 }
 
 void ICQContact::requestShortInfo()
@@ -227,6 +224,8 @@
 	kdDebug(OSCAR_ICQ_DEBUG) << k_funcinfo << "received long info from engine" << endl;
 	
 	ICQGeneralUserInfo genInfo = mAccount->engine()->getGeneralInfo( contact );
+	if ( !genInfo.nickname.isEmpty() )
+		setNickName( genInfo.nickname );
 	emit haveBasicInfo( genInfo );
 	
 	ICQWorkUserInfo workInfo = mAccount->engine()->getWorkInfo( contact );
Comment 3 Matt Rogers 2005-07-16 22:16:55 UTC
SVN commit 435395 by mattr:

backport the fix for bug 105786. It should be in KDE 3.4.2 (Kopete 0.10.3)


CCBUG: 105786


 M  +6 -7      icqcontact.cpp  


--- branches/KDE/3.4/kdenetwork/kopete/protocols/oscar/icq/icqcontact.cpp #435394:435395
@@ -133,13 +133,10 @@
 	if ( m_ssiItem.waitingAuth() )
 		setOnlineStatus( mProtocol->statusManager()->waitingForAuth() );
 
-	QString nickname = property( Kopete::Global::Properties::self()->nickName() ).value().toString();
-	if ( nickname.isEmpty() || Oscar::normalize( nickname ) == Oscar::normalize( contactId() ) )
-	{
-		int time = ( KApplication::random() % 25 ) * 1000;
-		kdDebug(OSCAR_ICQ_DEBUG) << k_funcinfo << "updating nickname in " << time/1000 << " seconds" << endl;
-		QTimer::singleShot( time, this, SLOT( requestShortInfo() ) );
-	}
+	int time = ( KApplication::random() % 20 ) * 1000;
+	kdDebug(OSCAR_ICQ_DEBUG) << k_funcinfo << "updating nickname in " << time/1000 << " seconds" << endl;
+	QTimer::singleShot( time, this, SLOT( requestShortInfo() ) );
+
 }
 
 void ICQContact::requestShortInfo()
@@ -216,6 +213,8 @@
 	kdDebug(OSCAR_ICQ_DEBUG) << k_funcinfo << "received long info from engine" << endl;
 	
 	ICQGeneralUserInfo genInfo = mAccount->engine()->getGeneralInfo( contact );
+	if ( !genInfo.nickname.isEmpty() )
+		setNickName( genInfo.nickname );
 	emit haveBasicInfo( genInfo );
 	
 	ICQWorkUserInfo workInfo = mAccount->engine()->getWorkInfo( contact );