Update 'README.md'

pull/9/head
Alexis Drai 2 years ago
parent 4f85b8d669
commit e1fcf4e199

@ -1,11 +1,16 @@
# Oh the things you'll do
- [Model](#model)
- [View](#view)
- [Auteur](#auteur)
- [Descriptif](#descriptif)
- [Usage](#usage)
- [Techniques de programmation utilisées](#techniques-de-programmation-utilisées)
- ["master" : SilicaListView](#master--silicalistview)
- ["detail": champs modifiables avec validation](#detail--champs-modifiables-avec-validation)
## Auteur
- Alexis Drai
- [Alexis Drai](https://codefirst.iut.uca.fr/git/alexis.drai)
## Descriptif
@ -15,21 +20,59 @@ On peut faire des opérations CRUD sur les `tasks`.
Un projet a un titre et des `tasks`.
Une `task` a un titre, une description optionnelle, et un niveau de priorité entre 0 et 3, 0 étant le plus critique.
Une `task` a un titre, une description, et un niveau de priorité entre `0` et `3` (`0` étant le plus critique).
```mermaid
classDiagram
class Project {
+String title
+List<Task> tasks
}
class Task {
+String title
+String description
+int priority
}
class ObservableTaskList {
+addTask(Task*)
+removeTask(int)
+updateTask(int, Task*)
+rowCount(QModelIndex) const
+data(QModelIndex, int) const
+setData(QModelIndex, QVariant, int)
+flags(QModelIndex) const
+removeRows(int, int, QModelIndex)
+insertRows(int, int, QModelIndex)
+roleNames() const
}
Project --> "*" Task
Project --> ObservableTaskList : tasks
ObservableTaskList --> "*" Task : m_tasks
QAbstractListModel <|-- ObservableTaskList
```
## Usage
Il suffit de lancer l'application, et vous pouvez tester les opérations CRUD sur les `tasks`.
Les boutons disponibles sont décrits [plus bas](#techniques-de-programmation-utilisées).
## Techniques de programmation utilisées
### "master" : SilicaListView
La liste présente sur la page principale est une `ObservableTaskList`, une redéfinition maison de
`QAbstractListModel`. Ainsi, l'app peut observer la liste, et afficher tous les changements qu'on lui inflige.
On y voit:
* un bouton `Create` en haut de l'écran pour créer des `tasks`
* un bouton `Delete` en dessous de chaque `task` pour l'effacer
* un bouton `GoTo` en dessous de chaque `task` pour accéder à ses détails
<img src="./docs/main.png" width="410" style="margin:20px" alt="">
### "detail" : champs modifiables avec validation
Le titre et la description de la `task` sont éditables. C'est aussi le cas pour la priorité -- et l'utilisateur ne peut entrer qu'un entier entre `0` (le plus critique) et `3` (le moins critique).
<img src="./docs/detail.png" width="410" style="margin:20px" alt="">

Loading…
Cancel
Save