ne sont jamais directement visibles dans le modèle affiché dans la partie haute de
l'interface, l'utilisateur doit valider cette opération.
RowLayout {
spacing: 60 anchors.horizontalCenter: parent.horizontalCenter anchors.top:
detailsGroup.bottom anchors.topMargin: 20 Button { text: "Nouveau" onClicked: {
booksList.currentRow = -1; booksList.selection.deselect(); } } Button { text:
"Sauvegarder" onClicked: { var contents = { title: fieldTitle.text, author:
fieldAuthor.text… }; if (booksList.currentRow >= 0) {
bookModel.set(booksList.currentRow, contents); } else {
bookModel.append(contents); } } } Button { text: "Supprimer" enabled:
booksList.currentRow >= 0 onClicked: if (booksList.currentRow >= 0)
bookModel.remove(booksList.currentRow); } }
Les trois boutons sont affichés en bas de l'interface, alignés et espacés.
Pour créer un nouveau livre, la seule étape à effectuer est d'invalider la sélection
actuelle dans le tableau — sinon, les données seront reportées comme modifications
dans un livre existant. De par les liens qui ont été créés entre le tableau et la partie
d'édition, tous les champs seront remis à leur valeur par défaut pour ce nouveau
livre, sans code supplémentaire.
La sauvegarde doit distinguer deux cas : soit l'utilisateur édite un élément existant,
soit il en crée un nouveau. Dans tous les cas, les fonctions à appeler prennent en
argument la même structure de données décrivant les valeurs à modifier.
Si une sélection est effectuée dans le tableau, alors la sauvegarde remplace un
élément existant avec la fonction set.
Sinon, il faut créer un nouvel élément en fin de modèle avec append.
La suppression s'effectue uniquement si un élément est sélectionné avec remove.
Pour fignoler cet exemple, le bouton de suppression n'est activé que lorsqu'il peut
effectuer une action ; sinon, il est grisé.
350
Précédent

- 351/494

Suivant