Version: (using KDE Devel) Installed from: Compiled sources OS: Linux System Message 17:43:36 SomeLinuxGuy has changed their status to Offline. System Message 17:43:36 Chris Hammock has changed their status to Offline. Only one of us went offline, and it was me. Thus Kopete shouldn't tell me that the person I was chatting with went offline, too.
Subject: Re: [Kopete-devel] New: Notification when you go offline is wrong in chatwindow On December 22, 2003 06:54 pm, Casey Allen Shobe wrote: > Only one of us went offline, and it was me. Thus Kopete shouldn't tell me > that the person I was chatting with went offline, too. When you go offline, everyone goes offline. Thats how IM works...
Subject: Re: [Kopete-devel] Notification when you go offline is wrong in chatwindow Monday 22 December 2003 17:59 > When you go offline, everyone goes offline. Uhh....no. When I go offline, everyone else stays on chatting or whatever until they feel like signing off themselves. Just because Kopete cannot see them as online anymore does not mean that they are really not online. > Thats how IM works... Only if you're on a whole lot of crack.
Well I don't understand what you expect to happen here.. should Kopete communicate via some fictional networking protocol that doesn't require a TCP connection to see if the users are online or not? Or do you want all the users to always be marked online even when you aren't connected? Really, this is a pretty bizzare bug report that is impossible to resolve.
Just make it NOT say "MyContact is now off-line". Perhaps a more descriptive "Disconnected; connection to user not available".
But Kopete does not have any idea at this point in the code *why* the contact is offline. All the chatview knows is "hey, this guy is offline". It doesn't know why.
> But Kopete does not have any idea at this point in the code *why* the > contact is offline. That is irrelevant. This bug does not have to be fixed today, and that fix can be made, in time. > Well I don't understand what you expect to happen here.. should Kopete > communicate via some fictional networking protocol that doesn't require a > TCP connection to see if the users are online or not? What I would expect to see is "You have gone offline" or as Thiago suggested, "Disconnected; connection to user not available". I would want to see *one* message, not two.
Originaly, i set status to Unknown when we are offline. But this has been quickly reverted. I think like you Casey, When we are offline, everybody contact's status should be set to unknown.
Subject: Re: [Kopete-devel] Notification when you go offline is wrong in chatwindow > ------- Additional Comments From ogoffart@tiscalinet.be 2003-12-23 09:46 > ------- Originaly, i set status to Unknown when we are offline. But this > has been quickly reverted. > I think like you Casey, When we are offline, everybody contact's status > should be set to unknown. _______________________________________________ - This would be contrary to every IM client known to man - This would mean that the "show only online contacts" would not work, since unknown is always shown - If you tried to fix the above by changing it to not show unknown *or* online, SMS and WInpopup users will *never* show online Anyways, this is not what Unknown was intended for. Unknown is for when you *can't* know the other guy's status, not that you *don't* know because you aren't connected. Why would you care about someones status when you are disconnected anyway?
> When we are offline, everybody contact's status should be set to unknown. I'm not sure if that is necessary (though as you might guess, I do agree with it), I just don't think we need to see "other user changed status" when *we* go offline, whether that's "user has gone offline" or "user's status is now unknown". An Unknown status would be very nice though. Because sometimes I don't notice that an account has disconnected, and look at a metacontact thinking a couple different accounts are offline, when really they're unknown and *I'm* offline. A simple question mark overlay on the icons for Unknown status would make this immediately clear. But now I'm digressing far out of this bug report, so I'll open a new wishlist item.
These are now the same bug, there is no need having two in here. *** This bug has been marked as a duplicate of 71113 ***
Didn't you read what I wrote at the top of the bug you marked this a duplicate of? This is *NOT* a duplicate - this concerns two messages being printed in a chatwindow, nothing about what statuses may exist.
Somehow the original submitter of the bug got lost and is now replaced by 'Account Deleted'. Weird...
Subject: kdenetwork/kopete CVS commit by mklingens: Add going Offline to the list of changes that should be suppressed; use the suppressions also when displaying of events in the chat window is enabled. Don't display an event for Connecting, there's Offline and the various Online/Away states for that. CCMAIL: 71076-done@bugs.kde.org The fix is dependent on the suppression of status notifications, so it can't easily get backported. It also adds a new string, but that is in theory avoidable. However, the bug is fairly minor, so I personally would like to keep this in HEAD only for Kopete 0.9. M +24 -14 kopete/chatwindow/chatview.cpp 1.121 M +2 -1 libkopete/kopeteaccount.cpp 1.85 --- kdenetwork/kopete/kopete/chatwindow/chatview.cpp #1.120:1.121 @@ -886,15 +886,24 @@ void ChatView::slotMarkMessageRead() } -void ChatView::slotContactStatusChanged( KopeteContact *contact, const KopeteOnlineStatus & /* newStatus */ , const KopeteOnlineStatus & /* oldstatus */) +void ChatView::slotContactStatusChanged( KopeteContact *contact, const KopeteOnlineStatus &newStatus, const KopeteOnlineStatus & /* oldstatus */) { - if(KopetePrefs::prefs()->showEvents() && contact) + if ( contact && KopetePrefs::prefs()->showEvents() ) + { + if ( contact->account() && contact == contact->account()->myself() ) + { + // Separate notification for the 'self' contact + if ( newStatus.status() != KopeteOnlineStatus::Connecting ) + sendInternalMessage( i18n( "You have changed your status to %1." ).arg( newStatus.description() ) ); + } + else if ( !contact->account() || !contact->account()->suppressStatusNotification() ) { + // Don't send notifications when we just connected ourselves, i.e. when suppressions are still active if( contact->metaContact() ) { sendInternalMessage( i18n( "%2 has changed their status to %1." ) #if QT_VERSION < 0x030200 - .arg(contact->onlineStatus().description() ).arg( contact->metaContact()->displayName() ) + .arg( newStatus.description() ).arg( contact->metaContact()->displayName() ) #else - .arg(contact->onlineStatus().description(), contact->metaContact()->displayName() ) + .arg( newStatus.description(), contact->metaContact()->displayName() ) #endif ); @@ -904,11 +913,12 @@ void ChatView::slotContactStatusChanged( sendInternalMessage( i18n( "%2 has changed their status to %1." ) #if QT_VERSION < 0x030200 - .arg( contact->onlineStatus().description() ).arg( contact->displayName() ) + .arg( newStatus.description() ).arg( contact->displayName() ) #else - .arg( contact->onlineStatus().description(), contact->displayName() ) + .arg( newStatus.description(), contact->displayName() ) #endif ); } } + } if(m_tabBar) --- kdenetwork/kopete/libkopete/kopeteaccount.cpp #1.84:1.85 @@ -606,5 +606,6 @@ void KopeteAccount::setMyself( KopeteCon void KopeteAccount::slotOnlineStatusChanged( KopeteContact * /* contact */, const KopeteOnlineStatus &newStatus, const KopeteOnlineStatus &oldStatus ) { - if ( oldStatus.status() == KopeteOnlineStatus::Offline || oldStatus.status() == KopeteOnlineStatus::Connecting ) + if ( oldStatus.status() == KopeteOnlineStatus::Offline || oldStatus.status() == KopeteOnlineStatus::Connecting || + newStatus.status() == KopeteOnlineStatus::Offline ) { // Wait for five seconds until we treat status notifications for contacts as