fixing images not updating after items being deleted in middle

This commit is contained in:
Chris Cochrun 2022-09-28 11:12:47 -05:00
parent 893c32ea6f
commit cf15949347
2 changed files with 41 additions and 9 deletions

View file

@ -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<int> 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<int> 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();

View file

@ -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;
}
}