diff --git a/retroshare-gui/src/gui/PeersDialog.cpp b/retroshare-gui/src/gui/PeersDialog.cpp index 010e37ac5..aab93bfa0 100644 --- a/retroshare-gui/src/gui/PeersDialog.cpp +++ b/retroshare-gui/src/gui/PeersDialog.cpp @@ -43,6 +43,7 @@ #include #include #include "settings/rsharesettings.h" +#include "notifyqt.h" #include "chat/PopupChatDialog.h" #include "msgs/MessageComposer.h" @@ -129,6 +130,8 @@ PeersDialog::PeersDialog(QWidget *parent) connect( ui.peertreeWidget, SIGNAL( customContextMenuRequested( QPoint ) ), this, SLOT( peertreeWidgetCostumPopupMenu( QPoint ) ) ); connect( ui.peertreeWidget, SIGNAL( itemDoubleClicked ( QTreeWidgetItem *, int)), this, SLOT(chatfriend(QTreeWidgetItem *))); + + connect(NotifyQt::getInstance(), SIGNAL(peerStatusChanged(QString,int)), this, SLOT(updateOwnStatus(QString,int))); connect( ui.avatartoolButton, SIGNAL(clicked()), SLOT(getAvatar())); connect( ui.mypersonalstatuslabel, SIGNAL(clicked()), SLOT(statusmessage())); @@ -2152,3 +2155,36 @@ void PeersDialog::newsFeedChanged(int count) ui.peertabWidget->tabBar()->setTabIcon(newsFeedTabIndex, QIcon(IMAGE_NEWSFEED)); } } + +void PeersDialog::updateOwnStatus(const QString &peer_id, int status) +{ + // add self nick + own status + if (peer_id.toStdString() == rsPeers->getOwnId()) + { + // my status has changed + + switch (status) { + case RS_STATUS_OFFLINE: + ui.avatartoolButton->setStyleSheet("QToolButton#avatartoolButton{border-image:url(:/images/mystatus_bg_offline.png); }"); + break; + + case RS_STATUS_INACTIVE: + ui.avatartoolButton->setStyleSheet("QToolButton#avatartoolButton{border-image:url(:/images/mystatus_bg_idle.png); }"); + break; + + case RS_STATUS_ONLINE: + ui.avatartoolButton->setStyleSheet("QToolButton#avatartoolButton{border-image:url(:/images/mystatus_bg_online.png); }"); + break; + + case RS_STATUS_AWAY: + ui.avatartoolButton->setStyleSheet("QToolButton#avatartoolButton{border-image:url(:/images/mystatus_bg_idle.png); }"); + break; + + case RS_STATUS_BUSY: + ui.avatartoolButton->setStyleSheet("QToolButton#avatartoolButton{border-image:url(:/images/mystatus_bg_busy.png); }"); + break; + } + + return; + } +} diff --git a/retroshare-gui/src/gui/PeersDialog.h b/retroshare-gui/src/gui/PeersDialog.h index dec0d9c34..8e43bd1b5 100644 --- a/retroshare-gui/src/gui/PeersDialog.h +++ b/retroshare-gui/src/gui/PeersDialog.h @@ -145,6 +145,7 @@ private slots: void changeAvatarClicked(); void getAvatar(); + void updateOwnStatus(const QString &peer_id, int status); void on_actionAdd_Group_activated(); void on_actionCreate_New_Forum_activated();