From 06f6f1949d8d14a647ebaba29686aa9541f3daba Mon Sep 17 00:00:00 2001 From: defnax Date: Sun, 20 Oct 2013 16:59:29 +0000 Subject: [PATCH] changed the voip icons, disable the voip buttons when friend is offline. git-svn-id: http://svn.code.sf.net/p/retroshare/code/trunk@6857 b45a01b8-16f6-495d-af2f-9b41ad6348cc --- plugins/VOIP/gui/AudioPopupChatDialog.cpp | 76 +++++++++++++++++++---- plugins/VOIP/gui/AudioPopupChatDialog.h | 4 ++ plugins/VOIP/gui/VOIP_images.qrc | 5 +- 3 files changed, 71 insertions(+), 14 deletions(-) diff --git a/plugins/VOIP/gui/AudioPopupChatDialog.cpp b/plugins/VOIP/gui/AudioPopupChatDialog.cpp index afa150ef2..e8454855b 100644 --- a/plugins/VOIP/gui/AudioPopupChatDialog.cpp +++ b/plugins/VOIP/gui/AudioPopupChatDialog.cpp @@ -4,9 +4,14 @@ #include "AudioPopupChatDialog.h" #include "interface/rsvoip.h" #include "gui/SoundManager.h" +#include "util/HandleRichText.h" +#include "gui/common/StatusDefs.h" +#include #define CALL_START ":/images/call-start-22.png" -#define CALL_STOP ":/images/call-stop-22.png" +#define CALL_STOP ":/images/call-stop-22.png" +#define CALL_HOLD ":/images/call-hold-22.png" + AudioPopupChatDialog::AudioPopupChatDialog(QWidget *parent) : PopupChatDialog(parent) @@ -20,11 +25,11 @@ AudioPopupChatDialog::AudioPopupChatDialog(QWidget *parent) std::cerr << "****** VOIPLugin: Creating new AudioPopupChatDialog !!" << std::endl; QIcon icon ; - icon.addPixmap(QPixmap(":/images/deafened_self.svg")) ; - icon.addPixmap(QPixmap(":/images/self_undeafened.svg"),QIcon::Normal,QIcon::On) ; - icon.addPixmap(QPixmap(":/images/self_undeafened.svg"),QIcon::Disabled,QIcon::On) ; - icon.addPixmap(QPixmap(":/images/self_undeafened.svg"),QIcon::Active,QIcon::On) ; - icon.addPixmap(QPixmap(":/images/self_undeafened.svg"),QIcon::Selected,QIcon::On) ; + icon.addPixmap(QPixmap(":/images/audio-volume-muted-22.png")) ; + icon.addPixmap(QPixmap(":/images/audio-volume-medium-22.png"),QIcon::Normal,QIcon::On) ; + icon.addPixmap(QPixmap(":/images/audio-volume-medium-22.png"),QIcon::Disabled,QIcon::On) ; + icon.addPixmap(QPixmap(":/images/audio-volume-medium-22.png"),QIcon::Active,QIcon::On) ; + icon.addPixmap(QPixmap(":/images/audio-volume-medium-22.png"),QIcon::Selected,QIcon::On) ; audioListenToggleButton->setIcon(icon) ; audioListenToggleButton->setIconSize(QSize(22,22)) ; @@ -39,21 +44,33 @@ AudioPopupChatDialog::AudioPopupChatDialog(QWidget *parent) QIcon icon2 ; icon2.addPixmap(QPixmap(":/images/call-start-22.png")) ; - icon2.addPixmap(QPixmap(":/images/call-stop-22.png"),QIcon::Normal,QIcon::On) ; - icon2.addPixmap(QPixmap(":/images/call-stop-22.png"),QIcon::Disabled,QIcon::On) ; - icon2.addPixmap(QPixmap(":/images/call-stop-22.png"),QIcon::Active,QIcon::On) ; - icon2.addPixmap(QPixmap(":/images/call-stop-22.png"),QIcon::Selected,QIcon::On) ; + icon2.addPixmap(QPixmap(":/images/call-hold-22.png"),QIcon::Normal,QIcon::On) ; + icon2.addPixmap(QPixmap(":/images/call-hold-22.png"),QIcon::Disabled,QIcon::On) ; + icon2.addPixmap(QPixmap(":/images/call-hold-22.png"),QIcon::Active,QIcon::On) ; + icon2.addPixmap(QPixmap(":/images/call-hold-22.png"),QIcon::Selected,QIcon::On) ; audioMuteCaptureToggleButton->setIcon(icon2) ; audioMuteCaptureToggleButton->setIconSize(QSize(22,22)) ; audioMuteCaptureToggleButton->setAutoRaise(true) ; audioMuteCaptureToggleButton->setCheckable(true) ; + + hangupButton = new QToolButton ; + hangupButton->setIcon(QIcon(":/images/call-stop-22.png")) ; + hangupButton->setIconSize(QSize(22,22)) ; + hangupButton->setMinimumSize(QSize(28,28)) ; + hangupButton->setMaximumSize(QSize(28,28)) ; + hangupButton->setCheckable(false) ; + hangupButton->setAutoRaise(true) ; + hangupButton->setText(QString()) ; + hangupButton->setToolTip(tr("Hangup Call")); connect(audioListenToggleButton, SIGNAL(clicked()), this , SLOT(toggleAudioListen())); connect(audioMuteCaptureToggleButton, SIGNAL(clicked()), this , SLOT(toggleAudioMuteCapture())); + connect(hangupButton, SIGNAL(clicked()), this , SLOT(hangupCall())); addChatBarWidget(audioListenToggleButton) ; addChatBarWidget(audioMuteCaptureToggleButton) ; + addChatBarWidget(hangupButton) ; //ui.chatWidget->resetStatusBar(); @@ -67,7 +84,9 @@ void AudioPopupChatDialog::toggleAudioListen() { std::cerr << "******** VOIPLugin: Toggling audio listen!" << std::endl; if (audioListenToggleButton->isChecked()) { + audioListenToggleButton->setToolTip(tr("Mute yourself")); } else { + audioListenToggleButton->setToolTip(tr("Unmute yourself")); //audioListenToggleButton->setChecked(false); /*if (outputDevice) { outputDevice->stop(); @@ -75,13 +94,30 @@ void AudioPopupChatDialog::toggleAudioListen() } } +void AudioPopupChatDialog::hangupCall() +{ + std::cerr << "******** VOIPLugin: Hangup call!" << std::endl; + + disconnect(inputProcessor, SIGNAL(networkPacketReady()), this, SLOT(sendAudioData())); + if (inputDevice) { + inputDevice->stop(); + } + if (outputDevice) { + outputDevice->stop(); + } + audioListenToggleButton->setChecked(false); + audioMuteCaptureToggleButton->setChecked(false); +} + void AudioPopupChatDialog::toggleAudioMuteCapture() { std::cerr << "******** VOIPLugin: Toggling audio mute capture!" << std::endl; if (audioMuteCaptureToggleButton->isChecked()) { //activate audio output audioListenToggleButton->setChecked(true); - audioMuteCaptureToggleButton->setToolTip(tr("Stop Call")); + audioMuteCaptureToggleButton->setToolTip(tr("Hold Call")); + + ChatWidget *cw = getChatWidget(); //activate audio input if (!inputProcessor) { @@ -96,12 +132,19 @@ void AudioPopupChatDialog::toggleAudioMuteCapture() } connect(inputProcessor, SIGNAL(networkPacketReady()), this, SLOT(sendAudioData())); inputDevice->start(inputProcessor); + + if (cw) { + cw->addChatMsg(true, tr("VoIP Status"), QDateTime::currentDateTime(), QDateTime::currentDateTime(), tr("Outgoing Call is started..."), ChatWidget::TYPE_SYSTEM); + } + } else { disconnect(inputProcessor, SIGNAL(networkPacketReady()), this, SLOT(sendAudioData())); if (inputDevice) { inputDevice->stop(); } - audioMuteCaptureToggleButton->setToolTip(tr("Start Call")); + audioMuteCaptureToggleButton->setToolTip(tr("Resume Call")); + + } } @@ -179,6 +222,15 @@ void AudioPopupChatDialog::updateStatus(int status) { audioListenToggleButton->setEnabled(true); audioMuteCaptureToggleButton->setEnabled(true); + hangupButton->setEnabled(true); + + switch (status) { + case RS_STATUS_OFFLINE: + audioListenToggleButton->setEnabled(false); + audioMuteCaptureToggleButton->setEnabled(false); + hangupButton->setEnabled(false); + break; + } PopupChatDialog::updateStatus(status) ; } diff --git a/plugins/VOIP/gui/AudioPopupChatDialog.h b/plugins/VOIP/gui/AudioPopupChatDialog.h index 41859761f..f29a68ce8 100644 --- a/plugins/VOIP/gui/AudioPopupChatDialog.h +++ b/plugins/VOIP/gui/AudioPopupChatDialog.h @@ -25,6 +25,8 @@ class AudioPopupChatDialog: public PopupChatDialog private slots: void toggleAudioListen(); void toggleAudioMuteCapture(); + void hangupCall() ; + public slots: void sendAudioData(); @@ -39,5 +41,7 @@ class AudioPopupChatDialog: public PopupChatDialog QToolButton *audioListenToggleButton ; QToolButton *audioMuteCaptureToggleButton ; + QToolButton *hangupButton ; + }; diff --git a/plugins/VOIP/gui/VOIP_images.qrc b/plugins/VOIP/gui/VOIP_images.qrc index c536a73e6..57b524325 100644 --- a/plugins/VOIP/gui/VOIP_images.qrc +++ b/plugins/VOIP/gui/VOIP_images.qrc @@ -1,12 +1,13 @@ - images/deafened_self.svg + images/audio-volume-medium-22.png images/muted_self.svg - images/self_undeafened.svg + images/audio-volume-muted-22.png images/talking_on.svg images/talking_off.svg images/call-start-22.png images/call-stop-22.png + images/call-hold-22.png