Dans 'config_affichage.qml', ajout de la saisie manuelle du n° de MMSI

This commit is contained in:
2026-09-30 14:21:53 +02:00
parent 53e47729fb
commit 215499369b
8 changed files with 102 additions and 24 deletions
+6
View File
@@ -19,3 +19,9 @@ _version.h
# Fichiers de session/éditeur
*.autosave
*~
# Historique des builds horodatés (générés par archive_version.cmake)
versions/
# Marqueur de version courant (régénéré à chaque build)
.current_version
+9 -1
View File
@@ -1,5 +1,5 @@
cmake_minimum_required(VERSION 3.16)
project(shipheart_cm5 LANGUAGES CXX)
project(shipheart_qt LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
@@ -70,6 +70,14 @@ add_executable(shipheart_qt
add_dependencies(shipheart_qt generate_version)
add_custom_command(TARGET shipheart_qt POST_BUILD
COMMAND ${CMAKE_COMMAND}
-DEXE_PATH=$<TARGET_FILE:shipheart_qt>
-DSRC_DIR=${CMAKE_CURRENT_SOURCE_DIR}
-P ${CMAKE_CURRENT_SOURCE_DIR}/archive_version.cmake
COMMENT "Archivage d'une copie horodatée de l'exécutable"
)
target_link_libraries(shipheart_qt PRIVATE
Qt6::Quick
Qt6::VirtualKeyboard
+9
View File
@@ -0,0 +1,9 @@
file(READ "${SRC_DIR}/.current_version" APP_VERSION)
string(STRIP "${APP_VERSION}" APP_VERSION)
file(MAKE_DIRECTORY "${SRC_DIR}/versions")
file(COPY "${EXE_PATH}" DESTINATION "${SRC_DIR}/versions")
file(RENAME "${SRC_DIR}/versions/shipheart_qt" "${SRC_DIR}/versions/shipheart_qt_${APP_VERSION}")
message(STATUS "Exécutable archivé : versions/shipheart_qt_${APP_VERSION}")
+40 -3
View File
@@ -117,6 +117,29 @@ Shipheart_page {
}
}
//-------------------------------------------------------------------------------
// Ligne de formulaire : No MMSI
Rectangle {
width: (shipheart_largeur_page * pourcentage_largeur_colonne_gauche) - (espace_colonnes_principales / 2)
height: visible ? hauteur_ligne_formulaire : 0
color: "transparent"
Shipheart_formulaire_label {
text: qsTr("No MMSI du bateau")
width: parent.width * pourcentage_largeur_labels_formulaire
}
Shipheart_formulaire_textfield {
id: champ_formulaire_No_mmsi
width: parent.width * (1 - pourcentage_largeur_labels_formulaire)
x: parent.width * pourcentage_largeur_labels_formulaire
}
Shipheart_formulaire_ligne_separation {
haut_bas_hautbas: shipheart_formulaire_ligne_separation_basse
}
}
//-------------------------------------------------------------------------------
// Ligne de formulaire : Fuseau horaire
Rectangle {
@@ -312,6 +335,13 @@ Shipheart_page {
res = bdd.requete_unique(req);
champ_formulaire_Nom_bateau.text = res[0];
//---------------------------------------------------------------------------------------
// Nom du bateau :
//---------------------------------------------------------------------------------------
req = 'SELECT Valeur FROM TB_Configuration WHERE Nom="No_mmsi" ';
res = bdd.requete_unique(req);
champ_formulaire_No_mmsi.text = res[0];
//---------------------------------------------------------------------------------------
// Fuseau horaire :
@@ -416,10 +446,19 @@ console.log("shipheart_time_out_economiseur : valeur de i après recherche = " +
bdd.requete_unique(req);
//---------------------------------------------------------------------------------------
// No MMSI du bateau :
//---------------------------------------------------------------------------------------
req = 'UPDATE TB_Configuration ';
req += ' SET Valeur="' + champ_formulaire_No_mmsi.text + '" ';
req += ' WHERE Nom="No_mmsi" ';
//console.log("Requête = " + req)
bdd.requete_unique(req);
//---------------------------------------------------------------------------------------
// Fuseau horaire :
//---------------------------------------------------------------------------------------
shipheart_fuseau_horaire = champ_formulaire_Fuseau_horaire.model.get(champ_formulaire_Fuseau_horaire.currentIndex).valeur;
req = 'UPDATE TB_Configuration ';
@@ -432,7 +471,6 @@ console.log("shipheart_time_out_economiseur : valeur de i après recherche = " +
//---------------------------------------------------------------------------------------
// Time-out économiseur :
//---------------------------------------------------------------------------------------
shipheart_time_out_economiseur = champ_formulaire_Time_out_economiseur.model.get(champ_formulaire_Time_out_economiseur.currentIndex).valeur;
req = 'UPDATE TB_Configuration ';
@@ -448,7 +486,6 @@ console.log("shipheart_time_out_economiseur : valeur de i après recherche = " +
//---------------------------------------------------------------------------------------
// Thème :
//---------------------------------------------------------------------------------------
// Mise à jour dans la BDD :
req = 'UPDATE TB_Configuration ';
req += ' SET Valeur="' + champ_formulaire_Theme.model.get(champ_formulaire_Theme.currentIndex).valeur + '" ';
+7 -2
View File
@@ -664,10 +664,15 @@ Shipheart_page {
champ_formulaire_Type_point.model.clear();
// Boucle sur toutes les entrées du tableau des types de points correspondant au 'type_source' (cf dans 'main.qml') :
for (i = 0; i < shipheart_page_personnalisee_type_point_icones[type_source].length; i ++)
var start = 0;
if (type_source === shipheart_type_source_circuits)
{
if ((type_source === shipheart_type_source_circuits) && (i === 0)) continue; // Pour les circuits, on n'autorise pas le premier élément qui correspond à l'icone OFF
start = 1;
if (type_point === 0) type_point = 1; // Pour les circuits, on n'autorise pas le premier élément qui correspond à l'icone OFF
}
for (i = start; i < shipheart_page_personnalisee_type_point_icones[type_source].length; i ++)
{
champ_formulaire_Type_point.model.append( {
"valeur": i,
"texte": "",
+2
View File
@@ -17,4 +17,6 @@ file(WRITE "${OUTPUT_FILE}"
#endif // _VERSION_H
")
file(WRITE "${CMAKE_CURRENT_LIST_DIR}/.current_version" "${APP_VERSION}")
message(STATUS "Version ShipHeart Qt régénérée : ${APP_VERSION}")
+16 -4
View File
@@ -11,6 +11,7 @@
import QtQuick 2.12
import QtQuick.Controls 2.12
import QtQuick.Effects
import qt.koriolan.shipheart 1.0
import"fonctions.js" as Fonctions
@@ -123,7 +124,7 @@ Shipheart_page {
width: shipheart_largeur_page
height: affichage_hauteur_utile
color: "transparent"
border.color: couleur_gris_moyen
//border.color: couleur_gris_moyen
ListModel {
id: modele_liste_points
@@ -132,6 +133,7 @@ border.color: couleur_gris_moyen
//==========================
// Image de la silhouette :
Image {
id: image_silhouette
anchors.fill: parent
source: (fichier !== "")
@@ -193,12 +195,20 @@ border.color: couleur_gris_moyen
verticalCenter: parent.verticalCenter
}
}
/* ColorOverlay {
MultiEffect {
anchors.fill: icone_point
source: icone_point
color: couleur_green_yellow
visible: model.halo
shadowEnabled: true
shadowColor: couleur_blanc
shadowBlur: 1.0 // Entre 0 et 1. Plus il est haut, plus l'étalement est progressif. Plus il est bas, plus la transition est abrupte.
shadowScale: 2.0 // Distance d'étalement du halo
shadowHorizontalOffset: 0
shadowVerticalOffset: 0
shadowOpacity: 1.0
}
*/
/* Plus valable sur Qt6 :
Glow {
anchors.fill: icone_point
radius: 30
@@ -208,6 +218,8 @@ border.color: couleur_gris_moyen
source: icone_point
visible: model.halo
}
*/
//-----------------------------------------------------
// Nom :
+3 -4
View File
@@ -136,8 +136,7 @@ void Systeme::commande_shell_non_bloquante(QString commande)
//qDebug() << "Commande shell à lancer = [" << commande << "]";
QProcess process;
// Lancement de la commande :
process.startDetached(commande); // Permer d'oublier le processus une fois lancé (sinon, on peut générer une erreur du type "QProcess: Destroyed while process ("sudo") is still running.")
QStringList args = QProcess::splitCommand(commande);
QString programme = args.takeFirst();
QProcess::startDetached(programme, args); // Méthode statique, pas besoin d'instancier QProcess. Permer d'oublier le processus une fois lancé
}