A SailfishOS Qt Quick master-detail todo app for educational purposes
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
Alexis Drai c6a3e13351
✏️ 📝 Fix typo (#10)
2 years ago
docs 💄 ⚗️ Fix #4 Create an observable list and implement project view (#9) 2 years ago
icons 🎉 2 years ago
qml 💄 ⚗️ Fix #4 Create an observable list and implement project view (#9) 2 years ago
rpm 🎉 2 years ago
src 💄 ⚗️ Fix #4 Create an observable list and implement project view (#9) 2 years ago
translations 💄 ⚗️ Fix #4 Create an observable list and implement project view (#9) 2 years ago
.gitattributes 🎉 2 years ago
.gitignore 🎉 2 years ago
README.md ✏️ 📝 Fix typo (#10) 2 years ago
oh_the_things_you_ll_do.desktop 🎉 2 years ago
oh_the_things_you_ll_do.pro 💄 ⚗️ Fix #4 Create an observable list and implement project view (#9) 2 years ago

README.md

Oh the things you'll do

Auteur

Descriptif

Oh the things you'll do est une app de choses à faire. Elle affiche une liste de tasks qui appartiennent à un project.

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, et un niveau de priorité entre 0 et 3 (0 étant le plus critique).

classDiagram
    class Project {
        +String title
    }
    
    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 --> 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

"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

"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).