MTES-MCT / metadata-postgresql

Plume : gestion des métadonnées du patrimoine PostgreSQL
https://mtes-mct.github.io/metadata-postgresql/
GNU Affero General Public License v3.0
1 stars 1 forks source link

Boutons de sélection de l'unité #7

Closed alhyss closed 2 years ago

alhyss commented 2 years ago

C'est quelque chose que j'avais laissé de côté jusqu'ici, car ça ne concernait qu'une seule catégorie commune, à savoir la résolution temporelle : une manière propre et simple pour saisir des durées.

En RDF, une durée est représentée comme ça : "PnYnMnDTnHnMnS"^^xsd:duration, où les n sont des nombres d'années, mois, jours, heures, minutes et secondes. Tous les éléments sont optionnels, donc en pratique on aura plutôt des durées telles que "P10D"^^xsd:duration (10 jours) ou "PT15M"^^xsd:duration (15 minutes). Évidemment, on ne peut pas attendre de l'utilisateur qu'il connaisse et respecte cette syntaxe.

Le fait de pouvoir combiner plusieurs unités complique fortement la gestion de ces valeurs, alors que ça apporte finalement très peu. En pratique, on doit pouvoir se débrouiller avec une seule unité 99% du temps (quitte à écrire "PT26H"^^xsd:duration au lieu de "P1DT2H"^^xsd:duration, par exemple), donc je suis finalement partie là-dessus : pour saisir une durée, l'utilisateur rentre la valeur dans un QLineEdit (avec un QIntValidator pour n'autoriser que les entiers) et déclare l'unité via un QToolButton dit "bouton de sélection de l'unité".

Ces boutons de sélection de l'unité fonctionnent exactement comme les boutons de sélection de la langue. Le menu liste toutes les unités disponibles et l'unité sélectionnée est affichée sur le bouton.

Normalement tout est prêt pour que tu puisses l'implémenter. J'ai complété la doc pour expliquer comment créer ces boutons et comment définir les actions associées.

WREATCHED commented 2 years ago

Vidéo envoyée ce jour pour confirmation et fermeture de l'issue

alhyss commented 2 years ago

C'est parfait ! J'hésite juste à abréger davantage les noms des unités pour que ça prenne moins de place, mais ça n'aura aucun impact de ton côté de toute façon. On verra ça plus tard, pour le moment je clos !