/*
- Copyright (C) 2013 Jolla Ltd.
- Contact: Thomas Perl <thomas.perl@jollamobile.com>
+ Copyright (C) 2014 David Llewellyn-Jones
+ Contact: David Llewellyn-Jones <david@flypig.co.uk>
All rights reserved.
You may use this file under the terms of BSD license as follows:
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ Built using the standard template from Jolla
+ Copyright (C) 2013 Jolla Ltd.
+ Contact: Thomas Perl <thomas.perl@jollamobile.com>
*/
import QtQuick 2.0
import Sailfish.Silica 1.0
-
+import "../components"
+import "../filebrowse/pages/functions.js" as Functions
Dialog {
id: configurePage
canAccept: true
acceptDestinationAction: PageStackAction.Pop
+ property int _fileDialogue: 0
+
+ Connections {
+ target:VpnControl
+ }
+
+ // connect signals from engine to panels
+ Connections {
+ target: engine
+ onSelectedFilenameChanged: {
+ switch (_fileDialogue) {
+ case 1:
+ caCertFilename.value = engine.selectedFilename
+ break;
+ case 2:
+ clientCertFilename.value = engine.selectedFilename
+ break;
+ case 3:
+ clientKeyFilename.value = engine.selectedFilename
+ break;
+ case 4:
+ tlsKeyFilename.value = engine.selectedFilename
+ break;
+ }
+ _fileDialogue = 0;
+ }
+ }
+
SilicaFlickable {
// ComboBox requires a flickable ancestor
TextField {
id: configureAddress
width: parent.width
+ text: VpnControl.server
label: "Server address"
placeholderText: "Server address"
focus: true
TextField {
id: configurePort
width: parent.width
+ text: VpnControl.port;
inputMethodHints: Qt.ImhFormattedNumbersOnly
label: "Port number"
placeholderText: "Port number"
TextSwitch {
id: configureCompression
text: "Use Compression"
+ checked: VpnControl.compressed
+ automaticCheck: true
}
TextSwitch {
id: configureTLS
text: "Use TLS authentication"
- onCheckedChanged: {
- configureTLSdirection.enabled = checked
- configureTLSinfo.visible = checked
- }
+ checked: VpnControl.useTLS
+ automaticCheck: true
}
// set currentIndex to change the selected value
ComboBox {
id: configureTLSdirection
width: parent.width
label: "TLS direction"
- currentIndex: 1
- enabled: false
+ currentIndex: VpnControl.tlsDirection;
+ enabled: configureTLS.checked
menu: ContextMenu {
MenuItem { text: "0" }
}
}
- Label {
- text: "Place key files on SD card:"
- color: Theme.secondaryColor
- font.pixelSize: Theme.fontSizeSmall
- x: Theme.paddingLarge
- }
- Label {
- text: "\tca.crt"
- color: Theme.secondaryColor
- font.pixelSize: Theme.fontSizeSmall
- x: Theme.paddingLarge
- }
- Label {
- text: "\tclient.crt"
- color: Theme.secondaryColor
- font.pixelSize: Theme.fontSizeSmall
- x: Theme.paddingLarge
+ ValueButtonAlignRight {
+ id: caCertFilename
+ label: "CA cert"
+ value: "Select"
+ width: parent.width
+ onClicked: {
+ _fileDialogue = 1
+ Functions.goToInitial(Functions.folderFromFile(value), "crt")
+ }
}
- Label {
- text: "\tclient.key"
- color: Theme.secondaryColor
- font.pixelSize: Theme.fontSizeSmall
- x: Theme.paddingLarge
+
+ ValueButtonAlignRight {
+ id: clientCertFilename
+ value: "Select"
+ label: "Client cert"
+ width: parent.width
+ onClicked: {
+ _fileDialogue = 2;
+ Functions.goToInitial(Functions.folderFromFile(value), "crt")
+ }
}
- Label {
- id: configureTLSinfo
- visible: false
- text: "\tta.key"
- color: Theme.secondaryColor
- font.pixelSize: Theme.fontSizeSmall
- x: Theme.paddingLarge
+
+ ValueButtonAlignRight {
+ id: clientKeyFilename
+ value: "Select"
+ label: "Client key"
+ width: parent.width
+ onClicked: {
+ _fileDialogue = 3;
+ Functions.goToInitial(Functions.folderFromFile(value), "key")
+ }
}
+ ValueButtonAlignRight {
+ id: tlsKeyFilename
+ value: "Select"
+ label: "TLS key"
+ width: parent.width
+ enabled: configureTLS.checked
+ onClicked: {
+ _fileDialogue = 4;
+ Functions.goToInitial(Functions.folderFromFile(value), "key")
+ }
+ }
}
}
onAccepted: {
+ VpnControl.setServer(configureAddress.text)
+ VpnControl.setPort(configurePort.text)
+ VpnControl.setCompressed(configureCompression.checked)
+ VpnControl.setUseTLS(configureTLS.checked)
+ VpnControl.setTlsDirection(configureTLSdirection.currentIndex)
+ VpnControl.updateConfiguration()
}
}