diff --git a/callwidget.cpp b/callwidget.cpp index 398433b1f7ed76835428975e963fe1673821f27d..fdf245d743822090d70a9c6b850175fec32ed278 100644 --- a/callwidget.cpp +++ b/callwidget.cpp @@ -49,7 +49,7 @@ CallWidget::CallWidget(QWidget *parent) : connect(ui->videoWidget, SIGNAL(setChatVisibility(bool)), ui->instantMessagingWidget, SLOT(setVisible(bool))); - ui->spinnerLabel->hide(); + ui->spinnerWidget->hide(); spinner_ = new QMovie(":/images/spinner.gif"); if (spinner_->isValid()) { ui->spinnerLabel->setMovie(spinner_); @@ -262,7 +262,7 @@ CallWidget::callStateChanged(Call* call, Call::State previousState) ui->videoWidget->hide(); displaySpinner(false); auto onHoldCall = callModel_->getActiveCalls().first(); - if (onHoldCall != nullptr) { + if (onHoldCall != nullptr && onHoldCall->state() == Call::State::HOLD) { setActualCall(onHoldCall); onHoldCall->performAction(Call::Action::HOLD); } @@ -349,7 +349,13 @@ CallWidget::on_sortComboBox_currentIndexChanged(int index) void CallWidget::displaySpinner(bool display) { - display ? ui->spinnerLabel->show() : ui->spinnerLabel->hide(); + display ? ui->spinnerWidget->show() : ui->spinnerWidget->hide(); if (ui->spinnerLabel->movie()) display ? ui->spinnerLabel->movie()->start() : ui->spinnerLabel->movie()->stop(); } + +void CallWidget::on_cancelButton_clicked() +{ + if (actualCall_) + actualCall_->performAction(Call::Action::REFUSE); +} diff --git a/callwidget.h b/callwidget.h index 55fdf190a12419807b1f91f88270b38e22c80a48..81f5022bcf9c17be397c080d295117ee7a9f9a11 100644 --- a/callwidget.h +++ b/callwidget.h @@ -66,6 +66,8 @@ private slots: void findRingAccount(QModelIndex idx1, QModelIndex idx2, QVector<int> vec); void checkRegistrationState(Account* account,Account::RegistrationState state); + void on_cancelButton_clicked(); + private: Ui::CallWidget *ui; Call* actualCall_; diff --git a/callwidget.ui b/callwidget.ui index 221ebd6b5a501220b2fee83c2d5020e039c474a0..a90c3ad49d91e9b2b1283e104ff20fc73bc93562 100644 --- a/callwidget.ui +++ b/callwidget.ui @@ -51,13 +51,32 @@ <widget class="VideoView" name="videoWidget" native="true"/> </item> <item> - <widget class="QLabel" name="spinnerLabel"> - <property name="text"> - <string/> - </property> - <property name="alignment"> - <set>Qt::AlignCenter</set> - </property> + <widget class="QWidget" name="spinnerWidget" native="true"> + <layout class="QVBoxLayout" name="spinnerLayout"> + <item> + <widget class="QLabel" name="spinnerLabel"> + <property name="text"> + <string/> + </property> + <property name="alignment"> + <set>Qt::AlignCenter</set> + </property> + </widget> + </item> + <item alignment="Qt::AlignHCenter"> + <widget class="QPushButton" name="cancelButton"> + <property name="maximumSize"> + <size> + <width>100</width> + <height>16777215</height> + </size> + </property> + <property name="text"> + <string>Cancel</string> + </property> + </widget> + </item> + </layout> </widget> </item> <item alignment="Qt::AlignHCenter|Qt::AlignVCenter">