Jak uzyskać dostęp do bieżącego elementu ListView z qml

Mam aplikację, która przechowuje i edytuje notatki. Lista notatek jest wyświetlana w widoku listy takim jak ten:

Page {
        id: noteList
        title: i18n.tr("QNote")
        visible: false

        Column {
            anchors.fill: parent

            ListView {
                anchors.fill: parent
                model: notes
                delegate: ListItem.Standard {
                    text: Title
                    onClicked: editNote(NoteText, Title, modelData);
                    progression: true
                }
            }
        }
    }

function editNote(text, title, item) {
    pageStack.push(noteEdit, {title: title, text: text});
    handler.setActiveItem(item);
}

Przedmiotem notatek jest NoteListModel, który podklasuje QAbstractListModel i zawiera NoteListItems. Chciałbym zapisać aktualnie wybrany obiekt NoteListItem, aby móc łatwo uzyskać dostęp do obiektu Note wewnątrz, gdy użytkownik chce zapisać zmodyfikowaną notatkę. Jednak nie wiem, jak uzyskać dostęp do NoteListItem kopii zapasowej z delegata qml. modelData wydaje się być czymś innym. Czy jest jakiś sposób, aby to zrobić? Gdybym mógł zawinąć obiekt Note w wariancie QVariant, mógłbym uzyskać do niego łatwy dostęp poprzez role, ale gdy spróbowałem w ten sposób

QVariant NoteListItem::data(int role) {
    switch (role) {
    case Title:
        return note.getTitle();
    case NoteText:
        return note.getText();
    case NoteObject:
        return QVariant::fromValue(note);
    default:
        return QVariant();
    }
}

spowodowało to błąd kompilatora

qmetatype.h: 642: error: nieprawidłowa aplikacja „sizeof” na niekompletny typ „QStaticAssertFailure”

Czy powinienem spróbować uzyskać dostęp do wybranego elementu listy z kodu kopii zapasowej? Czy jest na to jakiś sposób? Czy masz jakieś pomysły?

Dziękuję za Twój czas. Pozdrawiam, Peter

questionAnswers(1)

yourAnswerToTheQuestion