Compare commits
2 Commits
3697258d07
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 586d9e854e | |||
| 1b28d953c2 |
+7
-7
@@ -3,13 +3,6 @@ import fbx.application 1.0
|
||||
import "Views" as View
|
||||
|
||||
Application {
|
||||
// Liste des labels et types
|
||||
property var fields: [
|
||||
{label: "Server", type: "text"},
|
||||
{label: "User", type: "text"},
|
||||
{label: "Password", type: "password"}
|
||||
]
|
||||
|
||||
Row {
|
||||
anchors.fill: parent
|
||||
spacing: 10
|
||||
@@ -26,7 +19,14 @@ Application {
|
||||
|
||||
color: "#000B25"
|
||||
|
||||
focus: true
|
||||
|
||||
View.Login {}
|
||||
}
|
||||
|
||||
Component.onCompleted: {
|
||||
// Setup the login view to be focus on start
|
||||
columnLogin.updateSelection();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+49
-12
@@ -1,37 +1,74 @@
|
||||
import QtQuick 2.5
|
||||
|
||||
Column {
|
||||
anchors.fill: parent
|
||||
// Liste des labels et types
|
||||
property var fields: [
|
||||
{label: "Server", type: "text"},
|
||||
{label: "User", type: "text"},
|
||||
{label: "Password", type: "password"}
|
||||
]
|
||||
|
||||
property int currentIndex: 0
|
||||
|
||||
id: columnLogin
|
||||
|
||||
//anchors.centerIn: parent
|
||||
anchors.verticalCenter: parent.verticalCenter
|
||||
anchors.margins: 20
|
||||
spacing: 15
|
||||
width: parent.width * 0.8
|
||||
|
||||
function updateSelection() {
|
||||
for (let i = 0; i < repeater.count; i++) {
|
||||
repeater.itemAt(i).color = i === columnLogin.currentIndex ? "lightblue" : "transparent";
|
||||
}
|
||||
}
|
||||
|
||||
// Repeater pour générer les champs basés sur la liste des labels et types
|
||||
Repeater {
|
||||
model: fields
|
||||
|
||||
Row {
|
||||
width: parent.width
|
||||
spacing: 10
|
||||
|
||||
Text {
|
||||
width: parent.width / 2 - 5
|
||||
text: modelData.label + ":"
|
||||
width: 100
|
||||
color: "white"
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
font.pixelSize: 16
|
||||
}
|
||||
|
||||
// TextInput pour les champs Server et User, et mode Password pour Password
|
||||
TextInput {
|
||||
width: parent.width - 110
|
||||
height: 30
|
||||
font.pixelSize: 16
|
||||
Rectangle {
|
||||
width: 200
|
||||
height: 20
|
||||
color: "white"
|
||||
text: modelData.label
|
||||
//border.color: "black"
|
||||
//border.width: 3
|
||||
//radius: 5
|
||||
|
||||
// Détermine le mode de saisie en fonction du type
|
||||
echoMode: modelData.type === "password" ? TextInput.Password : TextInput.Normal
|
||||
//echoMode: TextInput.Password
|
||||
TextInput {
|
||||
font.pixelSize: 16
|
||||
color: "black"
|
||||
text: modelData.label
|
||||
|
||||
// Détermine le mode de saisie en fonction du type
|
||||
echoMode: modelData.type === "password" ? TextInput.Password : TextInput.Normal
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Keys.onPressed: {
|
||||
if (event.key === Qt.Key_Up) {
|
||||
if (currentIndex > 0) {
|
||||
currentIndex--;
|
||||
updateSelection();
|
||||
}
|
||||
} else if (event.key == Qt.Key_Down) {
|
||||
if (currentIndex < repeater.children.length - 1) {
|
||||
currentIndex++;
|
||||
updateSelection()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user