From 8b9f9524629a46299de1db43cf473a5a73f60603 Mon Sep 17 00:00:00 2001 From: Laurent Cozic Date: Thu, 12 Jan 2017 19:22:05 +0100 Subject: [PATCH] abstract folder list to reuse bits for notelist --- QtClient/JoplinQtClient/MainPage.qml | 48 +++++++++++++++++++------ QtClient/JoplinQtClient/application.cpp | 4 +++ 2 files changed, 41 insertions(+), 11 deletions(-) diff --git a/QtClient/JoplinQtClient/MainPage.qml b/QtClient/JoplinQtClient/MainPage.qml index 8d59f4691e..5acc4f091d 100755 --- a/QtClient/JoplinQtClient/MainPage.qml +++ b/QtClient/JoplinQtClient/MainPage.qml @@ -10,6 +10,28 @@ Item { function onShown() {} + function handleItemListEditingAccepted(list, index, text) { + if (list.model.virtualItemShown()) { + list.model.hideVirtualItem(); + list.model.addData(text) + list.selectItemById(list.model.lastInsertId()); + } else { + list.model.setData(index, text) + } + } + + function handleItemListStoppedEditing(list) { + if (folderList.model.virtualItemShown()) { + folderList.model.hideVirtualItem(); + } + } + + function handleItemListAction(list, action) { + if (action === "delete") { + list.model.deleteData(list.index) + } + } + RowLayout { id: layout anchors.fill: parent @@ -30,23 +52,15 @@ Item { } onEditingAccepted: function(index, text) { - if (folderList.model.virtualItemShown()) { - folderList.model.hideVirtualItem(); - folderList.model.addData(text) - folderList.selectItemById(folderList.model.lastInsertId()); - } else { - folderList.model.setData(index, text) - } + handleItemListEditingAccepted(folderList, index, text); } onStoppedEditing: { - if (folderList.model.virtualItemShown()) { - folderList.model.hideVirtualItem(); - } + handleItemListStoppedEditing(folderList); } onDeleteButtonClicked: { - folderList.model.deleteData(index) + handleItemListAction(folderList, "delete"); } } @@ -63,6 +77,18 @@ Item { onCurrentItemChanged: { appRoot.currentNoteChanged() } + + onEditingAccepted: function(index, text) { + handleItemListEditingAccepted(noteList, index, text); + } + + onStoppedEditing: { + handleItemListStoppedEditing(noteList); + } + + onDeleteButtonClicked: { + handleItemListAction(noteList, "delete"); + } } NoteEditor { diff --git a/QtClient/JoplinQtClient/application.cpp b/QtClient/JoplinQtClient/application.cpp index cf30762d98..2ab83dd4d4 100755 --- a/QtClient/JoplinQtClient/application.cpp +++ b/QtClient/JoplinQtClient/application.cpp @@ -157,6 +157,10 @@ void Application::synchronizerTimer_timeout() { QString Application::selectedFolderId() const { QObject* rootObject = (QObject*)view_.rootObject(); + if (!rootObject) { + qCritical() << "Calling selectedFolderId() when root is null"; + return ""; + } int index = rootObject->property("currentFolderIndex").toInt(); QModelIndex modelIndex = folderModel_.index(index);