Files
harbour-calibreweb/qml/pages/SettingsPage.qml
T

104 lines
3.0 KiB
QML

import QtQuick 2.0
import Sailfish.Silica 1.0
Page {
id: page
property string testResult: ""
property bool testOk: false
SilicaFlickable {
anchors.fill: parent
contentHeight: column.height
Column {
id: column
width: parent.width
PageHeader { title: "Impostazioni" }
SectionHeader { text: "Server" }
TextField {
id: serverField
width: parent.width
label: "Indirizzo Calibre Web"
placeholderText: "https://calibre.example.com"
text: appSettings.serverUrl
inputMethodHints: Qt.ImhUrlCharactersOnly
onTextChanged: appSettings.serverUrl = text
}
TextField {
id: userField
width: parent.width
label: "Utente (vuoto = accesso anonimo)"
text: appSettings.username
onTextChanged: appSettings.username = text
}
TextField {
id: passField
width: parent.width
label: "Password"
text: appSettings.password
echoMode: TextInput.Password
onTextChanged: appSettings.password = text
}
Switch {
text: "Ignora errori certificato SSL"
description: "Da attivare se il server usa un certificato autofirmato"
checked: appSettings.ignoreSslErrors
onCheckedChanged: appSettings.ignoreSslErrors = checked
}
SectionHeader { text: "Connessione" }
Button {
anchors.horizontalCenter: parent.horizontalCenter
text: "Prova connessione"
onClicked: testConnection()
}
Label {
x: Theme.horizontalPageMargin
width: parent.width - 2 * Theme.horizontalPageMargin
text: page.testResult
color: page.testOk ? Theme.secondaryHighlightColor : Theme.errorColor
wrapMode: Text.Wrap
visible: text.length > 0
}
Item { width: 1; height: Theme.paddingLarge }
}
}
function testConnection() {
var base = appSettings.baseUrl
if (base.length === 0) {
page.testResult = "Inserisci l'indirizzo del server"
page.testOk = false
return
}
page.testResult = "Verifica in corso…"
apiClient.getFeed(base + "/opds")
}
Connections {
target: apiClient
onFeedReady: {
if (pageStack.currentPage !== page)
return
page.testOk = true
page.testResult = "Connessione OK: " + entries.length + " sezioni trovate"
}
onFeedError: {
if (pageStack.currentPage !== page)
return
page.testOk = false
page.testResult = message
}
}
}