Files
shipheart-qt/Shipheart_bouton_capteur.qml
T

163 lines
5.5 KiB
QML

//-----------------------------------------------------------------------------------------------------
// Fichier définissant un bouton de type Capteur sur la page d'accueil
// A priori, appelé depuis "home.qml"
//-----------------------------------------------------------------------------------------------------
import QtQuick 2.12
//=======================================================
// Ensemble du bouton
//=======================================================
Rectangle {
id: bouton_capteur
readonly property int largeur_bouton: capteurs_grid.cellWidth - espace_colonnes_secondaires;
readonly property int hauteur_bouton: capteurs_grid.cellHeight - espace_lignes_secondaires;
readonly property int rayon_bouton: 5
width: largeur_bouton
height: hauteur_bouton
radius: rayon_bouton
color: "transparent" // On ne peut pas mettre l'opacité sur celui-ci, sinon tous ses enfants sont aussi semi-transparents...
//-------------------------------------------------------
// Fond de bouton :
Rectangle {
anchors.fill: parent
color: shipheart_couleur_fond_bouton
radius: rayon_bouton
border.color: couleur_rouge
border.width: (model.Etat_systeme === 0) ? 0 : 3
//-------------------------
// Triangle orange d'alerte :
Image {
source: "/images/coin_bas_droite_orange.png"
sourceSize.height: 20
anchors {
bottom: parent.bottom
right: parent.right
}
visible: (model.Etat_systeme === 0) && // SDIR #285
((model.Etat_capteur === shipheart_capteur_etat_alerte) ||
(model.Etat > 0) || // Nb alertes d'Events > 0
(model.Obsolete) )
}
//-------------------------
// Triangle rouge d'alarme :
Image {
source: "/images/coin_bas_droite_rouge.png"
sourceSize.height: 20
anchors {
bottom: parent.bottom
right: parent.right
}
visible: (model.Etat_systeme === 0) && // SDIR #285
(model.Etat_capteur === shipheart_capteur_etat_alarme)
}
}
//-------------------------------------------------------
// Nom du capteur :
Rectangle {
id: nom_capteur
width: parent.width
height: parent.height * 0.25;
color: "transparent"
Text {
text: model.Nom
anchors.fill: parent
verticalAlignment: Text.AlignVCenter
horizontalAlignment: Text.AlignLeft
leftPadding: 10
font.pixelSize: 15
font.weight: Font.Bold
color: couleur_blanc_casse
elide: Text.ElideRight // Pas de wrap car on ne peut afficher qu'une seule ligne quoi qu'il arrive...
}
}
//-------------------------------------------------------
// Valeur si aucune unité :
Rectangle {
id: valeur_capteur_sans_unite
anchors.top: nom_capteur.bottom
width: parent.width
height: parent.height - nom_capteur.height
color: "transparent"
visible: (model.Etat_systeme === 0) && (model.Unite === "")
Text {
anchors.fill: parent
horizontalAlignment: Text.AlignHCenter
verticalAlignment: Text.AlignVCenter
padding: 10
text: model.Valeur
font.family: "Montserrat"
fontSizeMode: Text.HorizontalFit;
minimumPixelSize: 20;
font.pixelSize: 50
elide: Text.ElideRight
wrapMode: Text.Wrap
font.weight: Font.Bold
// color: (model.Etat === 0) ? couleur_blanc_casse : couleur_rouge
color: couleur_blanc_casse
}
}
//-------------------------------------------------------
// Valeur si unité :
Rectangle {
id: valeur_capteur_avec_unite
anchors.top: nom_capteur.bottom
width: parent.width
height: parent.height - nom_capteur.height
color: "transparent"
visible: (model.Etat_systeme === 0) && (model.Unite !== "")
Text {
id: valeur_actuelle
anchors {
verticalCenter: parent.verticalCenter
horizontalCenter: parent.horizontalCenter
horizontalCenterOffset: -20
}
text: model.Valeur
font.family: "Montserrat"
font.pixelSize: 50
font.weight: Font.Bold
// color: (model.Etat === 0) ? couleur_blanc_casse : couleur_rouge
color: couleur_blanc_casse
}
//-------------------------------------------------------
// Unite :
Text {
anchors {
baseline: valeur_actuelle.baseline
left: valeur_actuelle.right
leftMargin: 10
}
text: model.Unite
font.pixelSize: 15
color: couleur_gris_pale
}
}
//-------------------------------------------------------
// Zone de clic :
MouseArea { // Zone d'interaction Paramètres du reservoir
id: mouse_area_zone_parametres
anchors.fill: parent
onClicked: {
shipheart_clic();
stackView.push("capteur.qml", {"id_capteur": model.Cle_primaire})
}
}
}