import QtQuick 1.1 import com.nokia.meego 1.0 import "Library/js/DBUtility.js" as DBUtility Sheet{ id: screen acceptButtonText: qsTr("Done") rejectButtonText: qsTr("Cancel") signal sheetDestroyed() property int ruleID:0 property string numberpattern:"" property string gatewaynumber:"" property string dtmfformat:"" property int numberFormatIndex:0 property string dtmfprefix: "" property string dtmfsuffix: "" Component.onCompleted: { if (ruleID != 0){ var ruleObj = DBUtility.getRuleByID(ruleID); if (ruleObj !== null){ numberpattern = ruleObj.numberpattern; gatewaynumber = ruleObj.gatewaynumber; dtmfformat = ruleObj.dtmfformat; var i; for (i = 0; i < numberFormatModel.count; i++){ if (numberFormatModel.get(i).name == dtmfformat) { numberFormatIndex = i; break; } } dtmfprefix = ruleObj.dtmfprefix; dtmfsuffix = ruleObj.dtmfsuffix; } } } Component.onDestruction: { console.log("OnDestruction"); sheetDestroyed(); } ListModel { id: numberFormatModel ListElement { name: "" } ListElement { name: "+" } ListElement { name: "00" } ListElement { name: "011" } } SelectionDialog { id: numberFormatDialog titleText: "Number Format" width: container.width selectedIndex: numberFormatIndex model: numberFormatModel } content: Flickable { id: container anchors.fill: parent anchors.leftMargin: 10 anchors.topMargin: 10 flickableDirection: Flickable.VerticalFlick Column { id: col width: parent.width spacing: 10 Label { text: (ruleID != 0)? qsTr("Edit Rule"):qsTr("Add Rule"); font.bold: true; } Label { text: qsTr("For numbers starting with:") } TextField { id: numberStartingWith anchors { left: parent.left; right: parent.right; } //height: implicitHeight inputMethodHints: Qt.ImhDialableCharactersOnly | Qt.ImhNoPredictiveText text: screen.numberpattern } Label { text: qsTr("Route call via:") } TextField { id: gatewayNumber anchors { left: parent.left; right: parent.right; } //height: implicitHeight inputMethodHints: Qt.ImhDialableCharactersOnly | Qt.ImhNoPredictiveText text: screen.gatewaynumber } Label { text: qsTr("Dial number in this format:") } Button { anchors { horizontalCenter: parent.horizontalCenter } //height: implicitHeight text: "Change Format" onClicked: { numberFormatDialog.open(); } } Rectangle { width: parent.width height: 30 color: "lightgray" Text { anchors.horizontalCenter: parent.horizontalCenter text: numberFormatDialog.selectedIndex >= 0 ? numberFormatDialog.model.get(numberFormatDialog.selectedIndex).name : "None" font.pixelSize: 16 //font.bold: true } } Label { text: qsTr("Include this tone before dialing:") } TextField { id: dtmfPrefix anchors { left: parent.left; right: parent.right; } height: implicitHeight inputMethodHints: Qt.ImhDialableCharactersOnly | Qt.ImhNoPredictiveText } Label { text: qsTr("Include this tone after dialing:") } TextField { id: dtmfSuffix anchors { left: parent.left; right: parent.right; } height: implicitHeight inputMethodHints: Qt.ImhDialableCharactersOnly | Qt.ImhNoPredictiveText } } } onAccepted: { //id, numberpattern, gatewaynumber, dtmfformat, dtmfprefix, dtmfsuffix var ruleObj = new Object(); ruleObj.id = ruleID; ruleObj.numberpattern = numberStartingWith.text; ruleObj.gatewaynumber = gatewayNumber.text; ruleObj.dtmfformat = numberFormatDialog.model.get(numberFormatDialog.selectedIndex).name; ruleObj.dtmfprefix = dtmfPrefix.text; ruleObj.dtmfsuffix = dtmfSuffix.text; if (ruleID != 0) DBUtility.updateRule(ruleID,ruleObj); else DBUtility.addRule(ruleObj); destroy(); } onRejected: destroy(); }