Files
2026-01-03 23:27:14 +01:00

87 lines
2.0 KiB
QML

import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
ApplicationWindow {
id: win
width: 420
height: 320
visible: true
title: "Navidrome Login"
ColumnLayout {
anchors.fill: parent
anchors.margins: 16
spacing: 10
Label {
text: "Server"
font.bold: true
}
TextField {
id: urlField
Layout.fillWidth: true
placeholderText: "https://navidrome.timvandenboom.eth64.de"
text: "https://navidrome.timvandenboom.eth64.de"
}
Label {
text: "Username"
font.bold: true
}
TextField {
id: userField
Layout.fillWidth: true
placeholderText: "username"
}
Label {
text: "Password"
font.bold: true
}
TextField {
id: passField
Layout.fillWidth: true
placeholderText: "password"
echoMode: TextInput.Password
}
RowLayout {
Layout.fillWidth: true
spacing: 10
Button {
text: navidromeApi.busy ? "Connecting..." : "Login (Ping)"
enabled: !navidromeApi.busy
Layout.fillWidth: true
onClicked: {
navidromeApi.ping(urlField.text, userField.text, passField.text)
}
}
}
Rectangle {
Layout.fillWidth: true
height: 1
opacity: 0.2
color: "white"
}
Label {
Layout.fillWidth: true
wrapMode: Text.WordWrap
text: {
if (navidromeApi.busy) return "Verbinde…"
if (navidromeApi.lastError.length > 0) return "❌ " + navidromeApi.lastError
if (navidromeApi.lastStatus.length > 0) return "✅ status: " + navidromeApi.lastStatus
return "Noch nicht verbunden."
}
}
}
}