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
|
||||
*.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)
|
||||
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
|
||||
|
||||
@@ -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
|
||||
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 + '" ';
|
||||
|
||||
@@ -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": "",
|
||||
|
||||
@@ -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
@@ -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
@@ -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é
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user