Bug 64912 - when buddy goes offline and online icon is not restored
Summary: when buddy goes offline and online icon is not restored
Status: RESOLVED FIXED
Alias: None
Product: kopete
Classification: Applications
Component: Chat Window (show other bugs)
Version: unspecified
Platform: Compiled Sources Linux
: NOR normal
Target Milestone: ---
Assignee: Kopete Developers
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2003-09-25 11:50 UTC by _
Modified: 2004-02-07 20:57 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 _ 2003-09-25 11:50:01 UTC
Version:           unknown (using KDE 3.1.4)
Installed from:    compiled sources
Compiler:          gcc version 3.2.2
OS:          Linux (i686) release 2.4.22.2-mark-athlon-

i lost the connection with the msn network, and the icon in the taskbar got gray. then i reconnected again, and the icon didnt restore itself.
i believe this is the same when the buddy goes offline-online.
Comment 1 Olivier Goffart 2003-09-26 14:45:24 UTC
You mean in the chatwindow? 
Comment 2 _ 2003-09-26 15:48:28 UTC
The icon of the window itself.
Comment 3 Casey Allen Shobe 2003-09-27 09:46:11 UTC
I cannot reproduce this using current CVS...I did indeed see that the icon goes 
grey, but it comes back for me, in the titlebar (tested with the keramik 
theme), in the taskbar if enabled...indeed everywhere that I can tell. 
Comment 4 Olivier Goffart 2003-09-27 17:07:51 UTC
This is the case with MSN.  In fact, the windows caption is no longner updated iff the 
user lefft the chat. 
Comment 5 Jason Keirstead 2003-10-20 00:31:05 UTC
Is this bug still around? I never get disconnected from MSN without doing it by hand so I don't know.

I suspect that some fixes I made today will fix the titlebar updaing though.
Comment 6 Olivier Goffart 2003-10-20 14:41:20 UTC
Yes this bug is still around.
Like i said, the problem is all QT signals are disconnected when the user quit the chat. (which is generaly the case when he goes offline)  
So the ChatWindows icon is no longer updated if the user change his status
Comment 7 Jason Keirstead 2003-10-27 03:59:48 UTC
Yes but if he was then reconnected, then he woudl re-join the chat, and the signals get re-connected, right?

If not then how do the messages appear in the window?
Comment 8 Casey Allen Shobe 2003-10-28 04:27:26 UTC
Also, if you are in away mode, open a chatwindow (on AIM at least), then your user icon in the member list has the away icon.  If you then change your status to online, the member list does not update, and shows the away icon indefinitely.
Comment 9 Olivier Goffart 2003-12-31 14:31:59 UTC
(this is a chatwindow problem)
Comment 10 Martijn Klingens 2004-02-07 20:57:50 UTC
Subject: KDE_3_2_BRANCH: kdenetwork/kopete/kopete/chatwindow

CVS commit by mklingens: 

Update status properly even when the user has left the chat in 1-to-1 chats

CCMAIL: 64912-done@bugs.kde.org


  M +12 -9     chatview.cpp   1.113.2.1


--- kdenetwork/kopete/kopete/chatwindow/chatview.cpp  #1.113:1.113.2.1
@@ -682,12 +682,18 @@ void ChatView::slotContactRemoved( const
                 m_remoteTypingMap.remove( const_cast<KopeteContact *>( contact ) );
 
-                disconnect( contact, SIGNAL( displayNameChanged( const QString &, const QString & ) ),
-                        this, SLOT( slotContactNameChanged( const QString &, const QString & ) ) );
-
                 QString contactName = contact->displayName();
                 mComplete->removeItem( contactName );
 
+                delete memberContactMap[ contact ];
+                memberContactMap.remove( contact );
+
+                // When the last person leaves, don't disconnect the signals, since we're in a one-to-one chat
+                if ( msgManager()->members().count() > 0 )
+                {
                 disconnect( contact, SIGNAL( onlineStatusChanged( KopeteContact *, const KopeteOnlineStatus &, const KopeteOnlineStatus & ) ),
                         this, SLOT( slotContactStatusChanged( KopeteContact *, const KopeteOnlineStatus &, const KopeteOnlineStatus & ) ) );
+                        disconnect( contact, SIGNAL( displayNameChanged( const QString &, const QString & ) ),
+                                this, SLOT( slotContactNameChanged( const QString &, const QString & ) ) );
+                }
 
                 if ( reason.isEmpty() )
@@ -703,7 +709,4 @@ void ChatView::slotContactRemoved( const
                         );
                 }
-
-                delete memberContactMap[ contact ];
-                memberContactMap.remove( contact );
         }