call: add cancel button for dialing call

Refs #76414

Change-Id: I5d9c160f64c93205be275ad09a3e08b055de0380
diff --git a/callwidget.cpp b/callwidget.cpp
index 398433b..fdf245d 100644
--- a/callwidget.cpp
+++ b/callwidget.cpp
@@ -49,7 +49,7 @@
     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 @@
         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 @@
 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);
+}