diff --git a/dialer/package/contents/ui/Dialer/History.qml b/dialer/package/contents/ui/Dialer/History.qml index ea29fd4b..4760465a 100644 --- a/dialer/package/contents/ui/Dialer/History.qml +++ b/dialer/package/contents/ui/Dialer/History.qml @@ -26,7 +26,6 @@ import org.kde.plasma.extras 2.0 as PlasmaExtras Item { function secondsToTimeString(seconds) { - seconds = Math.floor(seconds/1000) var h = Math.floor(seconds / 3600); var m = Math.floor((seconds - (h * 3600)) / 60); var s = seconds - h * 3600 - m * 60; @@ -105,4 +104,4 @@ Item { } } } -} \ No newline at end of file +} diff --git a/dialer/package/contents/ui/Dialer/HistoryDelegate.qml b/dialer/package/contents/ui/Dialer/HistoryDelegate.qml index c14cd3e2..21a09b9d 100644 --- a/dialer/package/contents/ui/Dialer/HistoryDelegate.qml +++ b/dialer/package/contents/ui/Dialer/HistoryDelegate.qml @@ -102,7 +102,7 @@ Item { text: "Name (todo)" } PlasmaComponents.Label { - text: i18n("Number: %1", model.number) + text: model.number Layout.fillWidth: true } } diff --git a/dialer/package/contents/ui/main.qml b/dialer/package/contents/ui/main.qml index 9f889c8a..6ae11868 100644 --- a/dialer/package/contents/ui/main.qml +++ b/dialer/package/contents/ui/main.qml @@ -47,6 +47,9 @@ ApplicationWindow { onMissedCallsActionTriggered: { root.visible = true; } + onCallEnded: { + insertCallInHistory(callContactNumber, callDuration, incomingCall ? 1 : 2); + } } onVisibleChanged: { diff --git a/dialer/src/call-manager.cpp b/dialer/src/call-manager.cpp index 9e672b74..9cacce4f 100644 --- a/dialer/src/call-manager.cpp +++ b/dialer/src/call-manager.cpp @@ -56,6 +56,7 @@ CallManager::CallManager(const Tp::CallChannelPtr &callChannel, DialerUtils *dia connect(d->callChannel.data(), &Tp::CallChannel::invalidated, this, [=]() { qDebug() << "Channel invalidated"; d->dialerUtils->setCallState("idle"); + d->dialerUtils->emitCallEnded(); }); d->ringingNotification = nullptr; @@ -197,7 +198,6 @@ void CallManager::onCallStateChanged(Tp::CallState state) d->callTimer->stop(); d->callTimer->deleteLater(); d->callTimer = nullptr; - d->dialerUtils->setCallDuration(0); } //if we requested the call, make sure we have a window to show the error (if any) // if (d->callChannel->isRequested()) { diff --git a/dialer/src/dialerutils.cpp b/dialer/src/dialerutils.cpp index 37b908aa..ccfece83 100644 --- a/dialer/src/dialerutils.cpp +++ b/dialer/src/dialerutils.cpp @@ -122,6 +122,15 @@ void DialerUtils::setCallContactNumber(const QString &contactNumber) } } +void DialerUtils::emitCallEnded() +{ + qDebug() << "Call ended:" << m_callContactNumber << m_callDuration; + Q_EMIT callEnded(m_callContactNumber, m_callDuration, true); + m_callDuration = 0; + m_callContactNumber = QString(); + m_callContactAlias = QString(); +} + void DialerUtils::resetMissedCalls() { m_missedCalls = 0; diff --git a/dialer/src/dialerutils.h b/dialer/src/dialerutils.h index f797bb6c..944a678f 100644 --- a/dialer/src/dialerutils.h +++ b/dialer/src/dialerutils.h @@ -50,6 +50,8 @@ public: QString callContactNumber() const; void setCallContactNumber(const QString &contactNumber); + void emitCallEnded(); + Q_INVOKABLE void resetMissedCalls(); Q_INVOKABLE void dial(const QString &number); @@ -62,6 +64,7 @@ Q_SIGNALS: void acceptCall(); void rejectCall(); void hangUp(); + void callEnded(const QString &callContactNumber, uint callDuration, bool incomingCall); private: QPointer m_callsNotification;