------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
http://bugs.kde.org/show_bug.cgi?id=157444
------- Additional Comments From kevin.mets gmail com 2008-02-26 22:46 -------
I tried to reproduce this and it only happened exactly like described when I
used 2 accounts. When I worked with 1 account I observed something similar.
I tried this in Kopete 0.50.50 (updated svn today, revision 779627). In order
to learn the Kopete code I tried to locate the source and possibly find a
solution. I'm very new to Kopete code so there probably are errors in my
explanation, but I hope it can be of any use. Here are my findings+notes:
Reproduction (1)
- 2 accounts: MSN and Jabber
- use the auto login feature to connect both (online status)
-> systemtray tooltip for MSN is connecting, Jabber online
Reproduction (2):
- You need 2 accounts ( I used Jabber+MSN or Jabber+Jabber ) in your identity
- Log in (online status) with your Jabber account
- Log in (online status) with your MSN account.
-> Your jabber account should be online and your msn account should be offline
when you check the systemtray tooltip
Reproduction (3):
- You can also do it with 1 account (tried with jabber and msn)
- Log in with your account (online status)
- Change online status to away
- Change online status to busy
-> Your account should still be away in the systemtray tooltip
Problem identification (from what I could find out):
The tray tooltip gets regenerated whenever the status of the identity changes:
kopetewindow.cpp:
- the systemtray tooltip is created by makeTrayToolTip()
- slotIdentityStatusIconChanged() calls makeTrayToolTip()
- this slot is called on the onlineStatusChanged() (*) signal of the Identity
kopeteidentity.cpp:
- When the status of an account changes ( onlineStatusChanged() signal) the
slot updateOnlineStatus() is called
- updateOnlineStatus() does emit onlineStatusChanged() (*) BUT only in certain
cases
- the signal is only emitted when the the new onlinestatus of one of the
accounts has a higher significance than the onlinestatus of the identity
(Reproduction 2) It is because of the selection in updateOnlineStatus()
(kopeteidentity.cpp) that you don't get the correct info. Your identity will
allready the have most significant status. Since your Jabber is allready
connected the new msn connection won't have an impact on your idenitity status.
In this case the emit onlineStatusChanged doesn't happen. Because of that
kopetewindow won't regenerate the tooltip.
Similar for (Reproduction 3) because Away and Busy have the the same
onlinestatus significance (Kopete::OnlineStatus::StatusType) and the
regeneration won't happen.
Workaround:
- You can move the emit onlineStatusChanged( this ) out of the loop in
Identity::updateOnlineStatus(). But this does change the meaning of this signal
(I think), because not necessarely the status of the identity changed but
rather the status of one of the subaccounts. So this may be not an ideal
solution.
_______________________________________________
kopete-devel mailing list
[email protected]
https://mail.kde.org/mailman/listinfo/kopete-devel