From b3af84b4a6b9e97755e548a0babe2903f7ccb9d0 Mon Sep 17 00:00:00 2001 From: Martin Klapetek Date: Mon, 29 Jun 2015 18:17:19 +0200 Subject: [PATCH] [dialer] Add contact info to the call page --- dialer/package/contents/ui/Call/CallPage.qml | 4 ++-- dialer/src/call-manager.cpp | 4 ++++ dialer/src/dialerutils.cpp | 14 ++++++++++++++ dialer/src/dialerutils.h | 7 +++++++ 4 files changed, 27 insertions(+), 2 deletions(-) diff --git a/dialer/package/contents/ui/Call/CallPage.qml b/dialer/package/contents/ui/Call/CallPage.qml index 0b7b2f16..db742f90 100644 --- a/dialer/package/contents/ui/Call/CallPage.qml +++ b/dialer/package/contents/ui/Call/CallPage.qml @@ -109,7 +109,7 @@ Item { horizontalAlignment: Qt.AlignHCenter verticalAlignment: Qt.AlignVCenter font.pointSize: theme.defaultFont.pointSize * 2 - text: ofonoWrapper.lineId + text: dialerUtils.callContactId } PlasmaComponents.Label { Layout.fillWidth: true @@ -120,7 +120,7 @@ Item { if (!ofonoWrapper.hasActiveCall) { return ''; //STATUS_DIALING - } else if (ofonoWrapper.status == "dialing") { + } else if (dialerUtils.status == "dialing") { return i18n("Calling..."); } else if (dialerUtils.duration > 0) { return secondsToTimeString(ofonoWrapper.duration); diff --git a/dialer/src/call-manager.cpp b/dialer/src/call-manager.cpp index 38791d73..1e290954 100644 --- a/dialer/src/call-manager.cpp +++ b/dialer/src/call-manager.cpp @@ -92,6 +92,10 @@ void CallManager::onCallStateChanged(Tp::CallState state) { qDebug() << "new call state:" << state; + if (d->callChannel->targetContact()) { + d->dialerUtils->setCallContactId(d->callChannel->targetContact()->alias()); + } + switch (state) { case Tp::CallStatePendingInitiator: Q_ASSERT(d->callChannel->isRequested()); diff --git a/dialer/src/dialerutils.cpp b/dialer/src/dialerutils.cpp index 8a547748..f3312e1c 100644 --- a/dialer/src/dialerutils.cpp +++ b/dialer/src/dialerutils.cpp @@ -34,6 +34,7 @@ DialerUtils::DialerUtils(const Tp::AccountPtr &simAccount, QObject *parent) m_missedCalls(0), m_simAccount(simAccount), m_callDuration(0), + m_callContactId(QString()) { Tp::PendingReady *op = m_simAccount->becomeReady(Tp::Features() << Tp::Account::FeatureCore); @@ -94,6 +95,19 @@ void DialerUtils::setCallDuration(uint duration) Q_EMIT callDurationChanged(); } +QString DialerUtils::callContactId() const +{ + return m_callContactId; +} + +void DialerUtils::setCallContactId(const QString &contactId) +{ + if (m_callContactId != contactId) { + m_callContactId = contactId; + Q_EMIT callContactIdChanged(); + } +} + void DialerUtils::resetMissedCalls() { m_missedCalls = 0; diff --git a/dialer/src/dialerutils.h b/dialer/src/dialerutils.h index af792101..598a1722 100644 --- a/dialer/src/dialerutils.h +++ b/dialer/src/dialerutils.h @@ -30,6 +30,7 @@ class DialerUtils : public QObject Q_OBJECT Q_PROPERTY(QString callState READ callState NOTIFY callStateChanged); Q_PROPERTY(uint callDuration READ callDuration NOTIFY callDurationChanged); + Q_PROPERTY(QString callContactId READ callContactId NOTIFY callContactIdChanged); public: DialerUtils(const Tp::AccountPtr &simAccount, QObject *parent = 0); @@ -40,6 +41,10 @@ public: uint callDuration() const; void setCallDuration(uint duration); + + QString callContactId() const; + void setCallContactId(const QString &contactId); + Q_INVOKABLE void resetMissedCalls(); Q_INVOKABLE void dial(const QString &number); @@ -47,6 +52,7 @@ Q_SIGNALS: void missedCallsActionTriggered(); void callStateChanged(); void callDurationChanged(); + void callContactIdChanged(); void acceptCall(); void rejectCall(); void hangUp(); @@ -57,6 +63,7 @@ private: int m_missedCalls; QString m_callState; Tp::AccountPtr m_simAccount; + QString m_callContactId; uint m_callDuration; };