Import initial du projet shipheart_cm5
This commit is contained in:
@@ -0,0 +1,209 @@
|
||||
//========================================================================================================================================================================
|
||||
// SHIPHEART_TEST_HOME.QML
|
||||
// Ce fichier est la page de plus haut niveau des fonctions de test intégrées à l'application
|
||||
// La page est appelée depuis la page config_koriolan.qml qui n'est accessible qu'aux personnes connaissant le code spécifique à Koriolan.
|
||||
//========================================================================================================================================================================
|
||||
import QtQuick 2.12
|
||||
import QtQml.Models 2.1
|
||||
|
||||
import qt.koriolan.shipheart 1.0
|
||||
|
||||
|
||||
Shipheart_page {
|
||||
id: page_shipheart_test_home
|
||||
|
||||
readonly property double pourcentage_largeur_colonne_gauche: 0.75
|
||||
readonly property double espace_colonnes_principales: 20
|
||||
readonly property int hauteur_bouton_droit: 80
|
||||
readonly property double espace_lignes_principales: 20
|
||||
readonly property double affichage_hauteur_utile: shipheart_hauteur_page - shipheart_hauteur_bandeau_haut - shipheart_hauteur_bandeau_bas
|
||||
readonly property double pourcentage_bandeau_bas_largeur_zone_retour: 1
|
||||
|
||||
|
||||
// Modèles :
|
||||
property Bdd bdd : Bdd{}
|
||||
|
||||
|
||||
//===========================================================
|
||||
// Timer 1 seconde :
|
||||
//===========================================================
|
||||
Timer {
|
||||
id: timer_secondes
|
||||
interval: 1 // Cette valeur n'est utilisée qu'une fois au démarrage. Ensuite, elle est fixée à 1s
|
||||
triggeredOnStart: false
|
||||
running: true
|
||||
repeat: true
|
||||
onTriggered: {
|
||||
if (interval == 1) { // Premier passage, 1ms après le premier chargement
|
||||
init_page();
|
||||
interval = 1000;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Titre de la page :
|
||||
Shipheart_titre_1 {titre:qsTr("Tests matériel"); hauteur: shipheart_hauteur_bandeau_haut}
|
||||
|
||||
//-------------------------------------------------------
|
||||
// Ecran de gauche :
|
||||
//-------------------------------------------------------
|
||||
Rectangle {
|
||||
id: zone_affichage_haut_gauche
|
||||
x: 0
|
||||
y: shipheart_hauteur_bandeau_haut;
|
||||
width: (shipheart_largeur_page * pourcentage_largeur_colonne_gauche) - (espace_colonnes_principales / 2)
|
||||
height: affichage_hauteur_utile - espace_lignes_principales;
|
||||
color: "transparent"
|
||||
|
||||
ListView {
|
||||
id: grille_principale
|
||||
|
||||
width: parent.width
|
||||
height: parent.height
|
||||
spacing: 10
|
||||
snapMode: GridView.SnapToRow // L'arret de l'affichage se fera sur une rangée entière
|
||||
clip: true // Nécessaire pour que les Delegates s'arretent à l'intérieur de la GridView
|
||||
model: modele_grille_principale
|
||||
footer: Rectangle { // Permet de dégager la place suffisante en fin de GridView pour accéder même au dernier élément lorsque que clavier est déplié
|
||||
height: shipheart_hauteur_clavier
|
||||
color: "transparent"
|
||||
}
|
||||
|
||||
delegate: Rectangle {
|
||||
width: grille_principale.width
|
||||
height: visible ? hauteur_bouton_droit : 0
|
||||
color: "transparent"
|
||||
|
||||
Rectangle {
|
||||
width: parent.width
|
||||
height: hauteur_bouton_droit
|
||||
color: shipheart_couleur_fond_bouton
|
||||
radius: shipheart_rayon_bouton
|
||||
|
||||
Text {
|
||||
anchors.fill: parent
|
||||
horizontalAlignment: Qt.AlignLeft
|
||||
leftPadding: 30
|
||||
verticalAlignment: Qt.AlignVCenter
|
||||
font.pixelSize: 20
|
||||
text: model.texte
|
||||
color: couleur_blanc_casse
|
||||
}
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
onClicked: {
|
||||
shipheart_clic();
|
||||
stackView.push(model.lien)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ListModel {
|
||||
id: modele_grille_principale
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------------------------------
|
||||
// Ecran Droite :
|
||||
//-------------------------------------------------------
|
||||
Rectangle {
|
||||
id: zone_affichage_droite
|
||||
x: zone_affichage_haut_gauche.width + espace_colonnes_principales
|
||||
y: shipheart_hauteur_bandeau_haut;
|
||||
width: (shipheart_largeur_page * (1 - pourcentage_largeur_colonne_gauche)) - (espace_colonnes_principales / 2)
|
||||
height: affichage_hauteur_utile - (espace_lignes_principales / 2);
|
||||
color: "transparent"
|
||||
|
||||
|
||||
Column {
|
||||
anchors.fill: parent
|
||||
spacing: 10
|
||||
|
||||
// Bouton Config tests :
|
||||
Rectangle {
|
||||
width: parent.width
|
||||
height: hauteur_bouton_droit
|
||||
color: shipheart_couleur_fond_bouton
|
||||
radius: shipheart_rayon_bouton
|
||||
visible: !clavier.active
|
||||
Text {
|
||||
anchors {
|
||||
verticalCenter: parent.verticalCenter
|
||||
horizontalCenter: parent.horizontalCenter
|
||||
}
|
||||
font.pixelSize: 20
|
||||
text: qsTr("Configuration des tests")
|
||||
color: couleur_blanc_casse
|
||||
}
|
||||
MouseArea {
|
||||
anchors.fill: parent
|
||||
onClicked: {
|
||||
shipheart_clic();
|
||||
stackView.push("shipheart_test_config.qml")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//-------------------------------------------------------
|
||||
// Bandeau bas :
|
||||
//-------------------------------------------------------
|
||||
Row {
|
||||
x: 0
|
||||
y: shipheart_hauteur_page - shipheart_hauteur_bandeau_bas;
|
||||
width: shipheart_largeur_page;
|
||||
height: shipheart_hauteur_bandeau_bas;
|
||||
spacing: 5
|
||||
padding: 5
|
||||
|
||||
//.................................................
|
||||
// Bouton retour
|
||||
//.................................................
|
||||
Rectangle {
|
||||
id: bandeau_bas_zone_retour
|
||||
width: (parent.width * pourcentage_bandeau_bas_largeur_zone_retour) - (2 * parent.padding)
|
||||
height: shipheart_hauteur_bandeau_bas - parent.topPadding - parent.bottomPadding;
|
||||
radius: shipheart_rayon_bouton
|
||||
color: shipheart_couleur_fond_bouton
|
||||
|
||||
Image {
|
||||
source: "/images/icone_retour.png"
|
||||
sourceSize.height: 30
|
||||
anchors {
|
||||
verticalCenter: parent.verticalCenter
|
||||
horizontalCenter: parent.horizontalCenter
|
||||
}
|
||||
}
|
||||
|
||||
MouseArea { // Zone d'interaction. On est obligé de la mettre dans la grille pour que Rectangle et MouseArea soient frères ou parent/enfant ET qu'on n'occupe qu'un espace dans la grille.
|
||||
id: mouse_area_bandeau_bas_zone_retour
|
||||
anchors.fill: parent
|
||||
onClicked: { // Si la pression n'a pas duré assez longtemps, on ne fait rien
|
||||
stackView.pop()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//=================================================================================================
|
||||
// Fonction : Traite les tâches à effectuer à l'ouverture de la page
|
||||
//=================================================================================================
|
||||
function init_page()
|
||||
{
|
||||
|
||||
modele_grille_principale.clear();
|
||||
modele_grille_principale.append({"texte": qsTr("Test du backlight"), "lien": "shipheart_test_backlight.qml"});
|
||||
modele_grille_principale.append({"texte": qsTr("Test de l'écran"), "lien": "shipheart_test_screen.qml"});
|
||||
modele_grille_principale.append({"texte": qsTr("Test du touchpad"), "lien": "shipheart_test_touchpad.qml"});
|
||||
modele_grille_principale.append({"texte": qsTr("Liste des fonts disponibles"), "lien": "shipheart_test_liste_fonts.qml"});
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user