Dans 'config_affichage.qml', ajout de la saisie manuelle du n° de MMSI
This commit is contained in:
@@ -19,3 +19,9 @@ _version.h
|
|||||||
# Fichiers de session/éditeur
|
# Fichiers de session/éditeur
|
||||||
*.autosave
|
*.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
@@ -1,5 +1,5 @@
|
|||||||
cmake_minimum_required(VERSION 3.16)
|
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 17)
|
||||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
@@ -70,6 +70,14 @@ add_executable(shipheart_qt
|
|||||||
|
|
||||||
add_dependencies(shipheart_qt generate_version)
|
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
|
target_link_libraries(shipheart_qt PRIVATE
|
||||||
Qt6::Quick
|
Qt6::Quick
|
||||||
Qt6::VirtualKeyboard
|
Qt6::VirtualKeyboard
|
||||||
|
|||||||
@@ -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
@@ -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
|
// Ligne de formulaire : Fuseau horaire
|
||||||
Rectangle {
|
Rectangle {
|
||||||
@@ -312,6 +335,13 @@ Shipheart_page {
|
|||||||
res = bdd.requete_unique(req);
|
res = bdd.requete_unique(req);
|
||||||
champ_formulaire_Nom_bateau.text = res[0];
|
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 :
|
// Fuseau horaire :
|
||||||
@@ -416,10 +446,19 @@ console.log("shipheart_time_out_economiseur : valeur de i après recherche = " +
|
|||||||
bdd.requete_unique(req);
|
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 :
|
// Fuseau horaire :
|
||||||
//---------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
|
|
||||||
shipheart_fuseau_horaire = champ_formulaire_Fuseau_horaire.model.get(champ_formulaire_Fuseau_horaire.currentIndex).valeur;
|
shipheart_fuseau_horaire = champ_formulaire_Fuseau_horaire.model.get(champ_formulaire_Fuseau_horaire.currentIndex).valeur;
|
||||||
|
|
||||||
req = 'UPDATE TB_Configuration ';
|
req = 'UPDATE TB_Configuration ';
|
||||||
@@ -432,7 +471,6 @@ console.log("shipheart_time_out_economiseur : valeur de i après recherche = " +
|
|||||||
//---------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
// Time-out économiseur :
|
// Time-out économiseur :
|
||||||
//---------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
|
|
||||||
shipheart_time_out_economiseur = champ_formulaire_Time_out_economiseur.model.get(champ_formulaire_Time_out_economiseur.currentIndex).valeur;
|
shipheart_time_out_economiseur = champ_formulaire_Time_out_economiseur.model.get(champ_formulaire_Time_out_economiseur.currentIndex).valeur;
|
||||||
|
|
||||||
req = 'UPDATE TB_Configuration ';
|
req = 'UPDATE TB_Configuration ';
|
||||||
@@ -448,7 +486,6 @@ console.log("shipheart_time_out_economiseur : valeur de i après recherche = " +
|
|||||||
//---------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
// Thème :
|
// Thème :
|
||||||
//---------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------
|
||||||
|
|
||||||
// Mise à jour dans la BDD :
|
// Mise à jour dans la BDD :
|
||||||
req = 'UPDATE TB_Configuration ';
|
req = 'UPDATE TB_Configuration ';
|
||||||
req += ' SET Valeur="' + champ_formulaire_Theme.model.get(champ_formulaire_Theme.currentIndex).valeur + '" ';
|
req += ' SET Valeur="' + champ_formulaire_Theme.model.get(champ_formulaire_Theme.currentIndex).valeur + '" ';
|
||||||
|
|||||||
@@ -664,10 +664,15 @@ Shipheart_page {
|
|||||||
champ_formulaire_Type_point.model.clear();
|
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') :
|
// 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( {
|
champ_formulaire_Type_point.model.append( {
|
||||||
"valeur": i,
|
"valeur": i,
|
||||||
"texte": "",
|
"texte": "",
|
||||||
|
|||||||
@@ -17,4 +17,6 @@ file(WRITE "${OUTPUT_FILE}"
|
|||||||
#endif // _VERSION_H
|
#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}")
|
message(STATUS "Version ShipHeart Qt régénérée : ${APP_VERSION}")
|
||||||
|
|||||||
+16
-4
@@ -11,6 +11,7 @@
|
|||||||
|
|
||||||
import QtQuick 2.12
|
import QtQuick 2.12
|
||||||
import QtQuick.Controls 2.12
|
import QtQuick.Controls 2.12
|
||||||
|
import QtQuick.Effects
|
||||||
|
|
||||||
import qt.koriolan.shipheart 1.0
|
import qt.koriolan.shipheart 1.0
|
||||||
import"fonctions.js" as Fonctions
|
import"fonctions.js" as Fonctions
|
||||||
@@ -123,7 +124,7 @@ Shipheart_page {
|
|||||||
width: shipheart_largeur_page
|
width: shipheart_largeur_page
|
||||||
height: affichage_hauteur_utile
|
height: affichage_hauteur_utile
|
||||||
color: "transparent"
|
color: "transparent"
|
||||||
border.color: couleur_gris_moyen
|
//border.color: couleur_gris_moyen
|
||||||
|
|
||||||
ListModel {
|
ListModel {
|
||||||
id: modele_liste_points
|
id: modele_liste_points
|
||||||
@@ -132,6 +133,7 @@ border.color: couleur_gris_moyen
|
|||||||
//==========================
|
//==========================
|
||||||
// Image de la silhouette :
|
// Image de la silhouette :
|
||||||
Image {
|
Image {
|
||||||
|
|
||||||
id: image_silhouette
|
id: image_silhouette
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
source: (fichier !== "")
|
source: (fichier !== "")
|
||||||
@@ -193,12 +195,20 @@ border.color: couleur_gris_moyen
|
|||||||
verticalCenter: parent.verticalCenter
|
verticalCenter: parent.verticalCenter
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* ColorOverlay {
|
MultiEffect {
|
||||||
anchors.fill: icone_point
|
anchors.fill: icone_point
|
||||||
source: 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 {
|
Glow {
|
||||||
anchors.fill: icone_point
|
anchors.fill: icone_point
|
||||||
radius: 30
|
radius: 30
|
||||||
@@ -208,6 +218,8 @@ border.color: couleur_gris_moyen
|
|||||||
source: icone_point
|
source: icone_point
|
||||||
visible: model.halo
|
visible: model.halo
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
//-----------------------------------------------------
|
//-----------------------------------------------------
|
||||||
// Nom :
|
// Nom :
|
||||||
|
|||||||
+3
-4
@@ -136,8 +136,7 @@ void Systeme::commande_shell_non_bloquante(QString commande)
|
|||||||
|
|
||||||
//qDebug() << "Commande shell à lancer = [" << commande << "]";
|
//qDebug() << "Commande shell à lancer = [" << commande << "]";
|
||||||
|
|
||||||
QProcess process;
|
QStringList args = QProcess::splitCommand(commande);
|
||||||
|
QString programme = args.takeFirst();
|
||||||
// Lancement de la commande :
|
QProcess::startDetached(programme, args); // Méthode statique, pas besoin d'instancier QProcess. Permer d'oublier le processus une fois lancé
|
||||||
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.")
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user