From 4caa5f7eb74b20d577e452521fd329db512afa89 Mon Sep 17 00:00:00 2001 From: birkeh Date: Mon, 6 Nov 2017 18:14:50 +0100 Subject: [PATCH] . --- cmainwindow.cpp | 44 +++++++++++++++++++++++++++++++++++++------- cmovie.cpp | 19 +++++++++++++------ cmovie.h | 1 + 3 files changed, 51 insertions(+), 13 deletions(-) diff --git a/cmainwindow.cpp b/cmainwindow.cpp index 83afe97..3c336f9 100644 --- a/cmainwindow.cpp +++ b/cmainwindow.cpp @@ -307,13 +307,6 @@ void cMainWindow::loadDB() // convertSeries(); loadSeriesDB(); loadMoviesDB(); - - cMovie* lpMovie = m_movieList.at(0); - lpMovie->loadFanart(); - lpMovie->del(m_db); - lpMovie->save(m_db); - - lpMovie = 0; } void cMainWindow::convertSeries() @@ -605,6 +598,42 @@ void cMainWindow::loadMoviesDB() lpMovie->setCrew(query.value("crew").toString().split("|")); lpMovie->setState((cMovie::State)query.value("state").toInt()); } + + qint32 iOldMovieID = -1; + cFanartList fanartList; + + if(query.exec("SELECT id, type, url, language, likes, discType, disc, active, movieID FROM fanart ORDER BY movieID;")) + { + cMovie* lpMovie = 0; + + while(query.next()) + { + iMovieID = query.value("movieID").toInt(); + + if(iMovieID != iOldMovieID) + { + if(lpMovie) + lpMovie->setFanartList(fanartList); + + fanartList.clear(); + + lpMovie = m_movieList.find(iMovieID); + iOldMovieID = iMovieID; + } + + cFanart* lpFanart = fanartList.add((cFanart::Type)query.value("type").toInt()); + lpFanart->setActive(query.value("active").toBool()); + lpFanart->setID(query.value("id").toInt()); + lpFanart->setURL(query.value("url").toString()); + lpFanart->setLanguage(query.value("language").toString()); + lpFanart->setLikes(query.value("likes").toInt()); + lpFanart->setDiscType(query.value("discType").toString()); + lpFanart->setDisc(query.value("disc").toString()); + } + + if(lpMovie && fanartList.count()) + lpMovie->setFanartList(fanartList); + } } else { @@ -1258,6 +1287,7 @@ void cMainWindow::onActionMovieAdd() lpDialog->setMessage("Updating"); lpDialog->show(); + lpMovie->loadFanart(); lpMovie->save(m_db); } else diff --git a/cmovie.cpp b/cmovie.cpp index de7c2a2..c192efc 100644 --- a/cmovie.cpp +++ b/cmovie.cpp @@ -439,12 +439,9 @@ bool cMovie::del(QSqlDatabase& db) cMovie* cMovieList::add(const qint32& iID) { - for(int z = 0;z < count();z++) - { - if(at(z)->movieID() == iID) - return(at(z)); - } - cMovie* lpNew = new cMovie; + cMovie* lpNew = find(iID); + if(!lpNew) + lpNew = new cMovie; lpNew->setMovieID(iID); append(lpNew); return(lpNew); @@ -460,3 +457,13 @@ cMovie* cMovieList::add(cMovie* lpMovie) append(lpMovie); return(lpMovie); } + +cMovie* cMovieList::find(const qint32& iID) +{ + for(int z = 0;z < count();z++) + { + if(at(z)->movieID() == iID) + return(at(z)); + } + return(0); +} diff --git a/cmovie.h b/cmovie.h index d7af60a..723c6e5 100644 --- a/cmovie.h +++ b/cmovie.h @@ -158,6 +158,7 @@ class cMovieList : public QList public: cMovie* add(const qint32& iID); cMovie* add(cMovie* lpMovie); + cMovie* find(const qint32& iID); }; #endif // CMOVIE_H