From af9974600b836bfc45cc3f881a0f2a54c12cf2ce Mon Sep 17 00:00:00 2001 From: Chris Cochrun Date: Fri, 27 Oct 2023 15:10:24 -0500 Subject: [PATCH] Using the right id rather than the index from the item --- TODO.org | 6 ++++-- src/qml/presenter/SongEditor.qml | 35 ++++++++++++++++---------------- 2 files changed, 22 insertions(+), 19 deletions(-) diff --git a/TODO.org b/TODO.org index 6b5f182..524b326 100644 --- a/TODO.org +++ b/TODO.org @@ -3,9 +3,11 @@ :CATEGORY: dev :END: -* Tasks [0%] [0/0] -** TODO Fix updating things in the song editor +* Tasks [58%] [43/74] +** TODO [#B] Fix updating things in the song editor [[file:~/dev/lumina/src/qml/presenter/SongEditor.qml::function updateLyrics(lyrics) {]] +The core problem with this is that when we set the song, the index to get the item is the index of the item in the vector, not the ID in the DB. So, when we get a song, we can't use that index to update things, we need to make sure we are using the id so that all the new work in updating the right item is done correctly. + ** TODO Make saving file auto use the last save file and go from there [[file:~/dev/lumina/src/qml/main.qml::function save() {]] ** TODO Write a function to handle switching to the next fragment in revealjs diff --git a/src/qml/presenter/SongEditor.qml b/src/qml/presenter/SongEditor.qml index a242cbd..2da8434 100644 --- a/src/qml/presenter/SongEditor.qml +++ b/src/qml/presenter/SongEditor.qml @@ -9,7 +9,7 @@ import "./" as Presenter Item { id: root - property int songIndex + property int songID property var song: songEditorModel GridLayout { @@ -491,6 +491,7 @@ Item { songEditorModel.verticalTextAlignment = thisSong.verticalTextAlignment; songEditorModel.font = thisSong.font; songEditorModel.fontSize = thisSong.fontSize; + songID = thisSong.id; updateHorizontalTextAlignment("Center"); updateVerticalTextAlignment("Center"); @@ -522,14 +523,14 @@ Item { song.font = updatedSong.font; song.fontSize = updatedSong.fontSize; song.checkVerseOrder(); - songIndex = updatedSong.id; + songID = updatedSong.id; /* changeSlideHAlignment(song.horizontalTextAlignment); */ /* changeSlideVAlignment(song.verticalTextAlignment); */ /* changeSlideFont(song.font, true); */ /* changeSlideFontSize(song.fontSize, true) */ /* changeSlideText(songProxyModel.modelIndex(index).row); */ - console.log("Changing to song: " + song.title + " with ID: " + songIndex); + console.log("Changing to song: " + song.title + " with ID: " + songID); footerFirstText = "Song: "; footerSecondText = song.title; songList.loadVideo(); @@ -537,31 +538,31 @@ Item { } function updateLyrics(lyrics) { - songProxyModel.songModel.updateLyrics(songIndex, lyrics); + songProxyModel.songModel.updateLyrics(songID, lyrics); /* songLyrics = lyrics; */ clearSlides(); - changeSlideText(songIndex); + changeSlideText(songID); } function updateTitle(title) { - songProxyModel.songModel.updateTitle(songIndex, title) + songProxyModel.songModel.updateTitle(songID, title) song.title = title; } function updateAuthor(author) { - songProxyModel.songModel.updateAuthor(songIndex, author) + songProxyModel.songModel.updateAuthor(songID, author) } function updateAudio(audio) { - songProxyModel.songModel.updateAudio(songIndex, audio) + songProxyModel.songModel.updateAudio(songID, audio) } function updateCcli(ccli) { - songProxyModel.songModel.updateCcli(songIndex, ccli) + songProxyModel.songModel.updateCcli(songID, ccli) } function updateVerseOrder(vorder) { - songProxyModel.songModel.updateVerseOrder(songIndex, vorder) + songProxyModel.songModel.updateVerseOrder(songID, vorder) songEditorModel.verseOrder = vorder; songEditorModel.checkVerseOrder(); } @@ -569,39 +570,39 @@ Item { function updateAudioFile() { const file = fileHelper.loadFile("Pick Audio", "audio"); songEditorModel.audio = file - songProxyModel.songModel.updateAudio(songIndex, file); + songProxyModel.songModel.updateAudio(songID, file); } function updateBackground(backgroundType) { songEditorModel.backgroundType = backgroundType; const file = fileHelper.loadFile("Pick Background", backgroundType); songEditorModel.background = file; - songProxyModel.songModel.updateBackground(songIndex, file); - songProxyModel.songModel.updateBackgroundType(songIndex, backgroundType); + songProxyModel.songModel.updateBackground(songID, file); + songProxyModel.songModel.updateBackgroundType(songID, backgroundType); console.log("changed background"); } function updateHorizontalTextAlignment(textAlignment) { changeSlideHAlignment(textAlignment); - songProxyModel.songModel.updateHorizontalTextAlignment(songIndex, textAlignment); + songProxyModel.songModel.updateHorizontalTextAlignment(songID, textAlignment); } function updateVerticalTextAlignment(textAlignment) { changeSlideVAlignment(textAlignment); - songProxyModel.songModel.updateVerticalTextAlignment(songIndex, textAlignment) + songProxyModel.songModel.updateVerticalTextAlignment(songID, textAlignment) } function updateFont(font) { showPassiveNotification(font); changeSlideFont(font, false); - songProxyModel.songModel.updateFont(songIndex, font); + songProxyModel.songModel.updateFont(songID, font); song.font = font; } function updateFontSize(fontSize) { changeSlideFontSize(fontSize, false); - songProxyModel.songModel.updateFontSize(songIndex, fontSize); + songProxyModel.songModel.updateFontSize(songID, fontSize); song.fontSize = fontSize; }