=== modified file 'src/qml/DialerPage/DialerPage.qml' --- src/qml/DialerPage/DialerPage.qml 2014-12-11 19:03:12 +0000 +++ src/qml/DialerPage/DialerPage.qml 2015-03-03 11:31:49 +0000 @@ -29,7 +29,8 @@ PageWithBottomEdge { id: page - property alias dialNumber: keypadEntry.value + property alias displayNumber: keypadEntry.value + property string dialNumber: "" property alias input: keypadEntry.input property alias callAnimationRunning: callAnimation.running property bool greeterMode: false @@ -55,6 +56,7 @@ visible: mainView.greeterMode onTriggered: { greeter.showGreeter() + displayNumber = ""; dialNumber = ""; } } @@ -346,12 +348,24 @@ } onKeyPressed: { - callManager.playTone(label); + var raw = ""; + if (keycode == Qt.Key_Asterisk) { + raw = "*" + } else if (keycode == Qt.Key_ssharp) { + raw = "#" + } else { + raw = keycode - Qt.Key_0 + } + + callManager.playTone(raw); + + dialNumber = dialNumber.substring(0, input.cursorPosition) + raw + dialNumber.substring(input.cursorPosition); input.insert(input.cursorPosition, label) if(checkMMI(dialNumber)) { // check for custom strings for (var i in mmiPlugins) { if (mmiPlugins[i].code == dialNumber) { + displayNumber = "" dialNumber = "" mmiPlugins[i].trigger() } @@ -362,12 +376,15 @@ // we should only call voicemail if the keypad entry was empty, // but as we add numbers when onKeyPressed is triggered, the keypad entry will be "1" if (keycode == Qt.Key_1 && dialNumber == "1") { + displayNumber = "" dialNumber = "" mainView.callVoicemail() } else if (keycode == Qt.Key_0) { // replace 0 by + + displayNumber = displayNumber.substring(0, displayNumber.length - 1) + displayNumber += i18n.tr("+") dialNumber = dialNumber.substring(0, dialNumber.length - 1) - dialNumber += i18n.tr("+") + dialNumber += "+" } } } === modified file 'src/qml/LiveCallPage/LiveCall.qml' --- src/qml/LiveCallPage/LiveCall.qml 2015-02-16 18:24:27 +0000 +++ src/qml/LiveCallPage/LiveCall.qml 2015-03-03 11:35:08 +0000 @@ -305,6 +305,7 @@ } // TODO: we can't be sure that the currentPage is a DialerPage instance if (pageStackNormalMode.currentPage.dialNumber) { + pageStackNormalMode.currentPage.displayNumber = pendingNumberToDial; pageStackNormalMode.currentPage.dialNumber = pendingNumberToDial; } if (mainView.greeterMode) { === modified file 'src/qml/dialer-app.qml' --- src/qml/dialer-app.qml 2015-01-21 21:06:32 +0000 +++ src/qml/dialer-app.qml 2015-03-03 11:34:36 +0000 @@ -341,6 +341,7 @@ } if (pageStackNormalMode.currentPage && typeof(pageStackNormalMode.currentPage.dialNumber) != 'undefined') { + pageStackNormalMode.currentPage.displayNumber = number; pageStackNormalMode.currentPage.dialNumber = number; } }