p3ConnectMgr::connectResult

- added "mStatusChanged = true" on disconnect of a peer - the statusChange was not notified in time

MessengerWindow
- removed unused method updatePeersAvatar

Changes in status service:
- removed unused method statusAvailable
- new notifier for status change
- enabled the tick for receiving items
  - always up to date status map
  - no huge memory usage, if no list is visible who call getStatus and processed the received items
  - send notify on status change
- renamed getStatus to getStatusList and created a new method getStatus to get status of one peer
- fixed: send status directly after the connect of a peer

Now the frame around the avatar in private chat changes when the peer change the state.


git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3380 b45a01b8-16f6-495d-af2f-9b41ad6348cc
This commit is contained in:
thunder2 2010-08-20 18:45:44 +00:00
parent 331ed93720
commit 340982b996
14 changed files with 198 additions and 138 deletions

View file

@ -208,6 +208,10 @@ class NotifyBase
virtual void notifyOwnAvatarChanged() {}
virtual void notifyOwnStatusMessageChanged() {}
virtual void notifyDiskFull(uint32_t /* location */,uint32_t /* size limit in MB */) {}
/* peer has changed the status */
virtual void notifyPeerStatusChanged(const std::string& /* peer_id */, uint32_t /* status */) {}
/* one or more peers has changed the states */
virtual void notifyPeerStatusChangedSummary() {}
virtual std::string askForPassword(const std::string& /* key_details */ ,bool /* prev_is_bad */ ) { return "" ;}
};

View file

@ -36,6 +36,7 @@ extern RsStatus *rsStatus;
#include <list>
const uint32_t RS_STATUS_OFFLINE = 0x0000;
const uint32_t RS_STATUS_AWAY = 0x0001;
const uint32_t RS_STATUS_BUSY = 0x0002;
const uint32_t RS_STATUS_ONLINE = 0x0003;
@ -79,7 +80,13 @@ class RsStatus
* This retrieves the status info on the client's peers
* @param statusInfo is populated with client's peer's status
*/
virtual bool getStatus(std::list<StatusInfo>& statusInfo) = 0;
virtual bool getStatusList(std::list<StatusInfo>& statusInfo) = 0;
/**
* This retrieves the status info one peer
* @param statusInfo is populated with client's peer's status
*/
virtual bool getStatus(std::string &id, StatusInfo &statusInfo) = 0;
/**
* send the client's status to his/her peers
@ -89,11 +96,6 @@ class RsStatus
*/
virtual bool sendStatus(std::string id, uint32_t status) = 0;
/**
* checks to see if any status items have been received
*/
virtual bool statusAvailable() = 0;
/**
* translates the status field of a peer to a string
* @status the status id that needs to be translated