From 8c85c31fae382482981334ff9e7a626f5df1c789 Mon Sep 17 00:00:00 2001 From: Marco Martin Date: Thu, 30 Oct 2014 16:44:32 +0100 Subject: [PATCH] dialer and pin uis loaded only on demand --- shell/contents/views/Desktop.qml | 50 ++++++++++++-------------------- shell/contents/views/Dialer.qml | 25 +++++++++++++++- 2 files changed, 43 insertions(+), 32 deletions(-) diff --git a/shell/contents/views/Desktop.qml b/shell/contents/views/Desktop.qml index 455de3e3..c0f127f9 100644 --- a/shell/contents/views/Desktop.qml +++ b/shell/contents/views/Desktop.qml @@ -126,15 +126,15 @@ Item { onActiveVoiceCallChanged: { if (activeVoiceCall) { - dialer.calling = true; + dialerOverlay.open(); //main.activeVoiceCallPerson = people.personByPhoneNumber(activeVoiceCall.lineId); - dialer.numberEntryText = activeVoiceCall.lineId; + dialerOverlay.item.numberEntryText = activeVoiceCall.lineId; } else { - dialer.calling = false; + dialerOverlay.close(); dialer.numberEntryText = ''; - main.activeVoiceCallPerson = null; + //main.activeVoiceCallPerson = null; } } @@ -216,7 +216,15 @@ Item { } } - Pin { + Loader { + id: dialerOverlay + function open() { + source = Qt.resolvedUrl("Dialer.qml") + dialerOverlay.item.open(); + } + function close() { + dialerOverlay.item.close(); + } anchors { left: parent.left top: statusPanel.bottom @@ -225,36 +233,16 @@ Item { } z: 20 } - - Dialer { - id: dialer + Loader { + id: pinOverlay anchors { left: parent.left top: statusPanel.bottom right: parent.right bottom: parent.bottom } - z: 20 - opacity: calling ? 1 : 0 - visible: false - - Behavior on opacity { - NumberAnimation { properties: "opacity"; duration: 100 } - } - - onOpacityChanged: { - visible = opacity > 0; - } - - onVisibleChanged: { - opacity = visible ? 0.9 : 0; - } - - onCallingChanged: { - if (!calling) { - opacity = 0; - } - } + z: 21 + source: simManager.pinRequired != OfonoSimManager.NoPin ? Qt.resolvedUrl("Pin.qml") : "" } Rectangle { @@ -389,9 +377,9 @@ Item { svg: stripeIcons elementId: "phone" callback: function() { + dialerOverlay.open() //TODO remove - dialer.state = "disconnected" - dialer.open() + dialerOverlay.item.state = "disconnected" } } diff --git a/shell/contents/views/Dialer.qml b/shell/contents/views/Dialer.qml index 47c4dae9..2c5a6743 100644 --- a/shell/contents/views/Dialer.qml +++ b/shell/contents/views/Dialer.qml @@ -28,6 +28,7 @@ Rectangle { id: dialer color: "black" opacity: 0.8 + visible: false state: manager.activeVoiceCall ? manager.activeVoiceCall.statusText : "disconnected" property color textColor: "white" @@ -43,6 +44,10 @@ Rectangle { opacity = 0.8; } + function close() { + opacity = 0; + } + function addNumber(number) { status.text = status.text + number } @@ -79,7 +84,25 @@ Rectangle { return '' + h + ':' + m + ':' + s; } - onCallingChanged: if (calling) {open();} + Behavior on opacity { + NumberAnimation { properties: "opacity"; duration: 100 } + } + + onOpacityChanged: { + visible = opacity > 0; + } + + onVisibleChanged: { + opacity = visible ? 0.9 : 0; + } + + onCallingChanged: { + if (calling) { + open(); + } else { + opacity = 0; + } + } MouseArea { anchors.fill: parent