mirror of
https://invent.kde.org/marcoa/shift-shell.git
synced 2026-04-26 14:23:09 +00:00
[dialer] Implement hanging up in CallManager
This commit is contained in:
parent
cf00cb85f3
commit
bba2650087
2 changed files with 24 additions and 2 deletions
|
|
@ -42,6 +42,14 @@ CallManager::CallManager(const Tp::CallChannelPtr &callChannel, DialerUtils *dia
|
|||
connect(callChannel.data(), SIGNAL(callStateChanged(Tp::CallState)),
|
||||
SLOT(onCallStateChanged(Tp::CallState)));
|
||||
|
||||
connect(d->dialerUtils, &DialerUtils::acceptCall, this, &CallManager::onCallAccepted);
|
||||
connect(d->dialerUtils, &DialerUtils::rejectCall, this, &CallManager::onCallRejected);
|
||||
connect(d->dialerUtils, &DialerUtils::hangUp, this, &CallManager::onHangUpRequested);
|
||||
connect(d->callChannel.data(), &Tp::CallChannel::invalidated, this, [=]() {
|
||||
qDebug() << "Channel invalidated";
|
||||
d->dialerUtils->setCallState("idle");
|
||||
});
|
||||
|
||||
//create the channel handler
|
||||
// d->channelHandler = new CallChannelHandler(callChannel, this);
|
||||
|
||||
|
|
@ -96,8 +104,7 @@ void CallManager::onCallStateChanged(Tp::CallState state)
|
|||
// d->callWindow.data()->setStatus(CallWindow::StatusRemoteRinging);
|
||||
} else {
|
||||
d->dialerUtils->setCallState("incoming");
|
||||
connect(d->dialerUtils, &DialerUtils::acceptCall, this, &CallManager::onCallAccepted);
|
||||
connect(d->dialerUtils, &DialerUtils::rejectCall, this, &CallManager::onCallRejected);
|
||||
|
||||
//show approver;
|
||||
(void) d->callChannel->setRinging();
|
||||
}
|
||||
|
|
@ -162,6 +169,20 @@ void CallManager::onCallRejected()
|
|||
(void) d->callChannel->hangup(Tp::CallStateChangeReasonRejected, TP_QT_ERROR_REJECTED);
|
||||
}
|
||||
|
||||
void CallManager::onHangUpRequested()
|
||||
{
|
||||
if (d->callChannel && d->callChannel->isValid()) {
|
||||
qDebug() << "Hanging up";
|
||||
Tp::PendingOperation *op = d->callChannel->hangup();
|
||||
connect(op, &Tp::PendingOperation::finished, [=]() {
|
||||
if (op->isError()) {
|
||||
qWarning() << "Unable to hang up:" << op->errorMessage();
|
||||
}
|
||||
// d->callChannel->requestClose();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
void CallManager::ensureCallWindow()
|
||||
{
|
||||
// if (!d->callWindow) {
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@ private Q_SLOTS:
|
|||
void onCallStateChanged(Tp::CallState state);
|
||||
void onCallAccepted();
|
||||
void onCallRejected();
|
||||
void onHangUpRequested();
|
||||
|
||||
private:
|
||||
void ensureCallWindow();
|
||||
|
|
|
|||
Loading…
Reference in a new issue