From cf15949347c8118ab86797ca121fd33852305cb5 Mon Sep 17 00:00:00 2001 From: Chris Cochrun Date: Wed, 28 Sep 2022 11:12:47 -0500 Subject: [PATCH] fixing images not updating after items being deleted in middle --- src/imagesqlmodel.cpp | 34 ++++++++++++++++++++++++------- src/qml/presenter/ImageEditor.qml | 16 +++++++++++++-- 2 files changed, 41 insertions(+), 9 deletions(-) diff --git a/src/imagesqlmodel.cpp b/src/imagesqlmodel.cpp index c2f0019..4bce13f 100644 --- a/src/imagesqlmodel.cpp +++ b/src/imagesqlmodel.cpp @@ -122,12 +122,24 @@ void ImageSqlModel::setTitle(const QString &title) { // This function is for updating the title from outside the delegate void ImageSqlModel::updateTitle(const int &row, const QString &title) { qDebug() << "Row is " << row; - QSqlRecord rowdata = record(row); - qDebug() << rowdata; + QSqlQuery query("select id from images"); + QList ids; + while (query.next()) { + ids.append(query.value(0).toInt()); + // qDebug() << ids; + } + int id = ids.indexOf(row,0); + + QSqlRecord rowdata = record(id); + // qDebug() << rowdata.value(0); rowdata.setValue("title", title); - setRecord(row, rowdata); - qDebug() << rowdata; - submitAll(); + bool suc = setRecord(id, rowdata); + qDebug() << "#############"; + qDebug() << rowdata.value("title"); + qDebug() << "was it successful? " << suc; + qDebug() << "#############"; + bool suca = submitAll(); + // qDebug() << suca; emit titleChanged(); } @@ -148,10 +160,18 @@ void ImageSqlModel::setFilePath(const QUrl &filePath) { // This function is for updating the filepath from outside the delegate void ImageSqlModel::updateFilePath(const int &row, const QUrl &filePath) { qDebug() << "Row is " << row; - QSqlRecord rowdata = record(row); + QSqlQuery query("select id from images"); + QList ids; + while (query.next()) { + ids.append(query.value(0).toInt()); + // qDebug() << ids; + } + int id = ids.indexOf(row,0); + + QSqlRecord rowdata = record(id); qDebug() << rowdata; rowdata.setValue("filePath", filePath); - setRecord(row, rowdata); + setRecord(id, rowdata); qDebug() << rowdata; submitAll(); emit filePathChanged(); diff --git a/src/qml/presenter/ImageEditor.qml b/src/qml/presenter/ImageEditor.qml index 530f7b4..2e27bc7 100644 --- a/src/qml/presenter/ImageEditor.qml +++ b/src/qml/presenter/ImageEditor.qml @@ -123,10 +123,10 @@ Item { Layout.leftMargin: 20 Layout.rightMargin: 20 - placeholderText: "Song Title..." + placeholderText: "Image Title..." text: image.title padding: 10 - /* onEditingFinished: updateTitle(text); */ + onEditingFinished: updateTitle(text); } Item { @@ -166,4 +166,16 @@ Item { root.image = image; print(image.filePath.toString()); } + + function updateTitle(text) { + changeTitle(text, false); + imagesqlmodel.updateTitle(image.id, text); + showPassiveNotification(image.title); + } + + function changeTitle(text, updateBox) { + if (updateBox) + imageTitleField.text = text; + image.title = text; + } }