From 1fc5347fd40c84b7a13d3707d39bd37de7871f11 Mon Sep 17 00:00:00 2001 From: thunder2 Date: Sat, 11 Sep 2010 18:08:38 +0000 Subject: [PATCH] Show current state after the name and location in MessengerWindow. git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@3468 b45a01b8-16f6-495d-af2f-9b41ad6348cc --- retroshare-gui/src/gui/MessengerWindow.cpp | 25 ++++++++++++++++++++-- retroshare-gui/src/gui/MessengerWindow.h | 2 ++ retroshare-gui/src/gui/MessengerWindow.ui | 21 ++++++------------ 3 files changed, 32 insertions(+), 16 deletions(-) diff --git a/retroshare-gui/src/gui/MessengerWindow.cpp b/retroshare-gui/src/gui/MessengerWindow.cpp index ec1e961dc..a0aaf0439 100644 --- a/retroshare-gui/src/gui/MessengerWindow.cpp +++ b/retroshare-gui/src/gui/MessengerWindow.cpp @@ -181,6 +181,7 @@ MessengerWindow::MessengerWindow(QWidget* parent, Qt::WFlags flags) connect(NotifyQt::getInstance(), SIGNAL(friendsChanged()), this, SLOT(updateMessengerDisplay())); connect(NotifyQt::getInstance(), SIGNAL(ownAvatarChanged()), this, SLOT(updateAvatar())); connect(NotifyQt::getInstance(), SIGNAL(ownStatusMessageChanged()), this, SLOT(loadmystatusmessage())); + connect(NotifyQt::getInstance(), SIGNAL(peerStatusChanged(QString,int)), this, SLOT(peerStatusChanged(QString,int))); #endif // MINIMAL_RSGUI timer = new QTimer(this); @@ -221,11 +222,21 @@ MessengerWindow::MessengerWindow(QWidget* parent, Qt::WFlags flags) // add self nick RsPeerDetails pd; - if (rsPeers->getPeerDetails(rsPeers->getOwnId(),pd)) { - ui.statusButton->setText(QString::fromStdString(pd.name) + tr(" - ") + QString::fromStdString(pd.location)); + std::string ownId = rsPeers->getOwnId(); + if (rsPeers->getPeerDetails(ownId, pd)) { + /* calculate only once */ + m_nickName = QString::fromStdString(pd.name) + tr(" - ") + QString::fromStdString(pd.location); +#ifdef MINIMAL_RSGUI + ui.statusButton->setText(m_nickName); +#endif } #ifndef MINIMAL_RSGUI + /* Show nick and current state */ + StatusInfo statusInfo; + rsStatus->getOwnStatus(statusInfo); + peerStatusChanged(QString::fromStdString(ownId), statusInfo.status); + MainWindow *pMainWindow = MainWindow::getInstance(); if (pMainWindow) { QMenu *pStatusMenu = new QMenu(); @@ -1195,6 +1206,16 @@ void MessengerWindow::savestatusmessage() { rsMsgs->setCustomStateString(ui.messagelineEdit->text().toStdString()); } + +void MessengerWindow::peerStatusChanged(const QString &peer_id, int status) +{ + if (peer_id.toStdString() == rsPeers->getOwnId()) { + std::string statusString; + rsStatus->getStatusString(status, statusString); + ui.statusButton->setText(m_nickName + " (" + tr(statusString.c_str()) + ")"); + } +} + #endif // MINIMAL_RSGUI void MessengerWindow::on_actionSort_Peers_Descending_Order_activated() diff --git a/retroshare-gui/src/gui/MessengerWindow.h b/retroshare-gui/src/gui/MessengerWindow.h index b281dcf50..9398aed2c 100644 --- a/retroshare-gui/src/gui/MessengerWindow.h +++ b/retroshare-gui/src/gui/MessengerWindow.h @@ -91,6 +91,7 @@ private slots: void getAvatar(); void changeAvatarClicked(); + void peerStatusChanged(const QString &peer_id, int status); void savestatusmessage(); #endif // MINIMAL_RSGUI @@ -128,6 +129,7 @@ private: LogoBar * _rsLogoBarmessenger; QFont itemFont; + QString m_nickName; /** Qt Designer generated object */ Ui::MessengerWindow ui; diff --git a/retroshare-gui/src/gui/MessengerWindow.ui b/retroshare-gui/src/gui/MessengerWindow.ui index 96a143e63..88b3c5554 100644 --- a/retroshare-gui/src/gui/MessengerWindow.ui +++ b/retroshare-gui/src/gui/MessengerWindow.ui @@ -86,8 +86,14 @@ stop:0 #05538B, stop:1 #E4F1E5); - + + + + 0 + 0 + + 100 @@ -130,19 +136,6 @@ stop:0 #05538B, stop:1 #E4F1E5); - - - - Qt::Horizontal - - - - 50 - 20 - - - -