diff --git a/cedit.cpp b/cedit.cpp index b89ad7a..e9dd925 100644 --- a/cedit.cpp +++ b/cedit.cpp @@ -19,6 +19,8 @@ #include #include +#include + #include #include @@ -50,6 +52,15 @@ cEdit::cEdit(QWidget *parent) : { ui->setupUi(this); + QSqlQuery query; + + query.prepare("SELECT resolution FROM resolution ORDER BY sort;"); + if(query.exec()) + { + while(query.next()) + ui->m_lpResolution->addItem(query.value("resolution").toString()); + } + QPalette palette = ui->m_lpDownloadLinkLabel->palette(); QColor col = palette.color(QPalette::Window); QString color = QString("background-color: rgb(%1,%2,%3,%4);").arg(col.red()).arg(col.green()).arg(col.blue()).arg(95); @@ -84,9 +95,9 @@ cEdit::~cEdit() cEpisode* lpEpisode = episodeList.at(y); if(lpEpisode) { - lpEpisode->setButton1(0); - lpEpisode->setButton2(0); - lpEpisode->setButton3(0); + lpEpisode->setButton1(nullptr); + lpEpisode->setButton2(nullptr); + lpEpisode->setButton3(nullptr); } } } @@ -109,7 +120,7 @@ void cEdit::setSerie(cSerie* lpSerie) ui->m_lpCliffhanger->setChecked(lpSerie->cliffhanger()); ui->m_lpDownloadLink->setText(lpSerie->download()); ui->m_lpLocalPath->setText(lpSerie->localPath()); - ui->m_lpResolution->setText(lpSerie->resolution()); + ui->m_lpResolution->setCurrentText(lpSerie->resolution()); QString szBanner = lpSerie->fanartBanner(); { @@ -245,19 +256,19 @@ void cEdit::lpAllDone_clicked() void cEdit::allInit_clicked() { - QPushButton* lpButton = (QPushButton*)sender(); + QPushButton* lpButton = static_cast(sender()); m_lpSerie->seasonInit(lpButton); } void cEdit::allProgress_clicked() { - QPushButton* lpButton = (QPushButton*)sender(); + QPushButton* lpButton = static_cast(sender()); m_lpSerie->seasonProgress(lpButton); } void cEdit::allDone_clicked() { - QPushButton* lpButton = (QPushButton*)sender(); + QPushButton* lpButton = static_cast(sender()); m_lpSerie->seasonDone(lpButton); } @@ -273,7 +284,7 @@ QString cEdit::localPath() QString cEdit::resolution() { - return(ui->m_lpResolution->text()); + return(ui->m_lpResolution->currentText()); } void cEdit::on_m_lpTabWidget_tabBarClicked(int index) diff --git a/cedit.ui b/cedit.ui index 20461e4..e123f06 100644 --- a/cedit.ui +++ b/cedit.ui @@ -66,7 +66,7 @@ - + @@ -95,7 +95,7 @@ - + diff --git a/cmainwindow.cpp b/cmainwindow.cpp index 1dead2a..c411950 100644 --- a/cmainwindow.cpp +++ b/cmainwindow.cpp @@ -235,7 +235,10 @@ void cMainWindow::initDB() m_db.setHostName("localhost"); m_db.setDatabaseName(szDBPath); if(!m_db.open()) + { + qDebug() << m_db.lastError().text(); return; + } QSqlQuery query; @@ -359,71 +362,24 @@ void cMainWindow::initDB() " cast TEXT," " crew TEXT," " localPath STRING," + " resolution STRING," " state INTEGER);"); } + + if(!m_db.tables().contains("resolution")) + { + query.exec("CREATE TABLE resolution (" + " resolution STRING," + " SORT INTEGER);"); + } } void cMainWindow::loadDB() { -// convertSeries(); loadSeriesDB(); loadMoviesDB(); } -void cMainWindow::convertSeries() -{ - QSqlQuery query; - QString szOldIMDBID = ""; - cTheMovieDBV3 theMovieDB; - cSerie* lpSerie = nullptr; - - if(query.exec("SELECT s.imdbid, s.download, s.cliffhanger, e.episodeNumber, e.seasonNumber, e.state FROM serie_old s LEFT JOIN episode_old e ON s.id = e.seriesID WHERE s.imdbid IS NOT NULL AND s.imdbid <> \"\" ORDER BY s.imdbid, e.seasonNumber, e.episodeNumber;")) - { - while(query.next()) - { - QString szIMDBID = query.value("imdbid").toString(); - - if(!szIMDBID.isEmpty()) - { - if(szIMDBID != szOldIMDBID) - { - if(lpSerie) - { - lpSerie->save(m_db); - delete lpSerie; - lpSerie = nullptr; - } - - szOldIMDBID = szIMDBID; - lpSerie = theMovieDB.loadSerie(szIMDBID); - if(lpSerie) - { - lpSerie->setDownload(query.value("download").toString()); - lpSerie->setCliffhanger(query.value("cliffhanger").toBool()); - } - } - - if(lpSerie) - { - cSeason* lpSeason = lpSerie->findSeason(query.value("seasonNumber").toInt()); - if(lpSeason) - { - cEpisode* lpEpisode = lpSeason->findEpisode(query.value("episodeNumber").toInt()); - if(lpEpisode) - lpEpisode->setState(query.value("state").value()); - } - } - } - } - } - if(lpSerie) - { - lpSerie->save(m_db); - delete lpSerie; - lpSerie = nullptr; - } -} - void cMainWindow::loadSeriesDB() { m_serieList.clear(); @@ -628,7 +584,7 @@ void cMainWindow::loadMoviesDB() QSqlQuery query; qint32 iMovieID; - if(query.exec("SELECT movieID, movieTitle, originalTitle, backdropPath, posterPath, overview, releaseDate, genre, imdbid, originalLanguage, popularity, productionCompanies, productionCountries, voteAverage, voteCount, adult, belongsToCollection, budget, homepage, revenue, runtime, spokenLanguages, status, tagline, video, `cast`, crew, state, sortText FROM (SELECT *, IFNULL(belongsToCollection, movieTitle) AS sortText FROM movie) ORDER BY sortText, releaseDate;")) + if(query.exec("SELECT movieID, movieTitle, originalTitle, backdropPath, posterPath, overview, releaseDate, genre, imdbid, originalLanguage, popularity, productionCompanies, productionCountries, voteAverage, voteCount, adult, belongsToCollection, budget, homepage, revenue, runtime, spokenLanguages, status, tagline, video, `cast`, crew, state, sortText, localPath, resolution FROM (SELECT *, IFNULL(belongsToCollection, movieTitle) AS sortText FROM movie) ORDER BY sortText, releaseDate;")) { while(query.next()) { @@ -662,6 +618,8 @@ void cMainWindow::loadMoviesDB() lpMovie->setCast(query.value("cast").toString().split("|")); lpMovie->setCrew(query.value("crew").toString().split("|")); lpMovie->setState(query.value("state").value()); + lpMovie->setLocalPath(query.value("localPath").toString()); + lpMovie->setResolution(query.value("resolution").toString()); } qint32 iOldMovieID = -1; diff --git a/cmainwindow.h b/cmainwindow.h index f90d8b6..c84bfb5 100644 --- a/cmainwindow.h +++ b/cmainwindow.h @@ -494,13 +494,6 @@ private: */ void loadDB(); - /*! - \brief - - \fn convertSeries - */ - void convertSeries(); - /*! \brief diff --git a/cmovie.cpp b/cmovie.cpp index c192efc..f4ba15b 100644 --- a/cmovie.cpp +++ b/cmovie.cpp @@ -23,7 +23,9 @@ cMovie::cMovie() : m_bVideo(false), m_dVoteAverage(0.0), m_iVoteCount(0), - m_iState(StateInit) + m_iState(StateInit), + m_szLocalPath(""), + m_szResolution("") { } @@ -327,6 +329,26 @@ cMovie::State cMovie::state() return(m_iState); } +void cMovie::setLocalPath(const QString& szLocalPath) +{ + m_szLocalPath = szLocalPath; +} + +QString cMovie::localPath() +{ + return(m_szLocalPath); +} + +void cMovie::setResolution(const QString& szResolution) +{ + m_szResolution = szResolution; +} + +QString cMovie::resolution() +{ + return(m_szResolution); +} + void cMovie::loadFanart() { cFanartTV fanartTV; @@ -349,8 +371,8 @@ bool cMovie::save(QSqlDatabase &db) QSqlQuery queryMovie; QSqlQuery queryFanart; - queryMovie.prepare("INSERT INTO movie (movieID,movieTitle,originalTitle,backdropPath,posterPath,overview,releaseDate,genre,imdbid,originalLanguage,popularity,productionCompanies,productionCountries,voteAverage,voteCount,adult,belongsToCollection,budget,homepage,revenue,runtime,spokenLanguages,status,tagline,video,cast,crew,state)" - " VALUES (:movieID,:movieTitle,:originalTitle,:backdropPath,:posterPath,:overview,:releaseDate,:genre,:imdbid,:originalLanguage,:popularity,:productionCompanies,:productionCountries,:voteAverage,:voteCount,:adult,:belongsToCollection,:budget,:homepage,:revenue,:runtime,:spokenLanguages,:status,:tagline,:video,:cast,:crew,:state);"); + queryMovie.prepare("INSERT INTO movie (movieID,movieTitle,originalTitle,backdropPath,posterPath,overview,releaseDate,genre,imdbid,originalLanguage,popularity,productionCompanies,productionCountries,voteAverage,voteCount,adult,belongsToCollection,budget,homepage,revenue,runtime,spokenLanguages,status,tagline,video,cast,crew,state,localPath,resolution)" + " VALUES (:movieID,:movieTitle,:originalTitle,:backdropPath,:posterPath,:overview,:releaseDate,:genre,:imdbid,:originalLanguage,:popularity,:productionCompanies,:productionCountries,:voteAverage,:voteCount,:adult,:belongsToCollection,:budget,:homepage,:revenue,:runtime,:spokenLanguages,:status,:tagline,:video,:cast,:crew,:state,:localPath,:resolution);"); queryFanart.prepare("INSERT INTO fanart (id,type,url,language,likes,discType,disc,active,movieID) VALUES (:id,:type,:url,:language,:likes,:discType,:disc,:active,:movieID);"); db.transaction(); @@ -385,6 +407,8 @@ bool cMovie::save(QSqlDatabase &db) queryMovie.bindValue(":cast", cast().join("|")); queryMovie.bindValue(":crew", crew().join("|")); queryMovie.bindValue(":state", state()); + queryMovie.bindValue(":localPath", localPath()); + queryMovie.bindValue(":resolution", resolution()); if(queryMovie.exec()) { @@ -452,7 +476,7 @@ cMovie* cMovieList::add(cMovie* lpMovie) for(int z = 0;z < count();z++) { if(at(z) == lpMovie) - return(0); + return(nullptr); } append(lpMovie); return(lpMovie); @@ -465,5 +489,5 @@ cMovie* cMovieList::find(const qint32& iID) if(at(z)->movieID() == iID) return(at(z)); } - return(0); + return(nullptr); } diff --git a/cmovie.h b/cmovie.h index 7b82b63..b12f6fa 100644 --- a/cmovie.h +++ b/cmovie.h @@ -482,6 +482,36 @@ public: */ State state(); + /*! + \brief + + \fn setLocalPath + \param szLocalPath + */ + void setLocalPath(const QString& szLocalPath); + /*! + \brief + + \fn localPath + \return QString + */ + QString localPath(); + + /*! + \brief + + \fn setResolution + \param szResolution + */ + void setResolution(const QString& szResolution); + /*! + \brief + + \fn resolution + \return QString + */ + QString resolution(); + /*! \brief @@ -549,6 +579,8 @@ private: QStringList m_szCast; /*!< TODO: describe */ QStringList m_szCrew; /*!< TODO: describe */ State m_iState; /*!< TODO: describe */ + QString m_szLocalPath; /*!< TODO: describe */ + QString m_szResolution; /*!< TODO: describe */ cFanartList m_fanartList; /*!< TODO: describe */ }; diff --git a/cmovieedit.cpp b/cmovieedit.cpp index 4adbb11..8fdcc14 100644 --- a/cmovieedit.cpp +++ b/cmovieedit.cpp @@ -3,16 +3,27 @@ #include "ui_cmovieedit.h" +#include + cMovieEdit::cMovieEdit(QWidget *parent) : QDialog(parent), ui(new Ui::cMovieEdit), - m_lpMovie(0), - m_lpActorsModel(0), - m_lpGenreModel(0) + m_lpMovie(nullptr), + m_lpActorsModel(nullptr), + m_lpGenreModel(nullptr) { ui->setupUi(this); + QSqlQuery query; + + query.prepare("SELECT resolution FROM resolution ORDER BY sort;"); + if(query.exec()) + { + while(query.next()) + ui->m_lpResolution->addItem(query.value("resolution").toString()); + } + m_lpActorsModel = new QStandardItemModel(0, 0); ui->m_lpDetailsActors->setModel(m_lpActorsModel); @@ -37,6 +48,8 @@ void cMovieEdit::setMovie(cMovie *lpMovie) ui->m_lpName->setText(lpMovie->movieTitle()); ui->m_lpFirstAired->setDate(lpMovie->releaseDate()); + ui->m_lpLocalPath->setText(lpMovie->localPath()); + ui->m_lpResolution->setCurrentText(lpMovie->resolution()); switch(lpMovie->state()) { @@ -78,17 +91,15 @@ void cMovieEdit::setMovie(cMovie *lpMovie) ui->m_lpDetailsGenre->resizeColumnToContents(0); } -void cMovieEdit::on_m_lpInit_clicked() +void cMovieEdit::on_buttonBox_accepted() { - m_lpMovie->setState(cMovie::StateInit); -} + m_lpMovie->setLocalPath(ui->m_lpLocalPath->text()); + m_lpMovie->setResolution(ui->m_lpResolution->currentText()); -void cMovieEdit::on_m_lpProgress_clicked() -{ - m_lpMovie->setState(cMovie::StateProgress); -} - -void cMovieEdit::on_m_lpDone_clicked() -{ - m_lpMovie->setState(cMovie::StateDone); + if(ui->m_lpInit->isChecked()) + m_lpMovie->setState(cMovie::StateInit); + else if(ui->m_lpProgress->isChecked()) + m_lpMovie->setState(cMovie::StateProgress); + else + m_lpMovie->setState(cMovie::StateDone); } diff --git a/cmovieedit.h b/cmovieedit.h index 7c8282b..72703d8 100644 --- a/cmovieedit.h +++ b/cmovieedit.h @@ -28,7 +28,7 @@ public: \fn cMovieEdit \param parent */ - explicit cMovieEdit(QWidget *parent = 0); + explicit cMovieEdit(QWidget *parent = nullptr); /*! \brief @@ -47,29 +47,15 @@ private slots: /*! \brief - \fn on_m_lpInit_clicked + \fn on_buttonBox_accepted */ - void on_m_lpInit_clicked(); - - /*! - \brief - - \fn on_m_lpProgress_clicked - */ - void on_m_lpProgress_clicked(); - - /*! - \brief - - \fn on_m_lpDone_clicked - */ - void on_m_lpDone_clicked(); + void on_buttonBox_accepted(); private: - Ui::cMovieEdit* ui; /*!< TODO: describe */ - cMovie* m_lpMovie; /*!< TODO: describe */ - QStandardItemModel* m_lpActorsModel; - QStandardItemModel* m_lpGenreModel; + Ui::cMovieEdit* ui; /*!< TODO: describe */ + cMovie* m_lpMovie; /*!< TODO: describe */ + QStandardItemModel* m_lpActorsModel; /*!< TODO: describe */ + QStandardItemModel* m_lpGenreModel; /*!< TODO: describe */ }; #endif // CMOVIEEDIT_H diff --git a/cmovieedit.ui b/cmovieedit.ui index 729db4c..d990fb1 100644 --- a/cmovieedit.ui +++ b/cmovieedit.ui @@ -43,6 +43,30 @@ + + + + + + Local Path: + + + + + + + + + + Resolution: + + + + + + + + diff --git a/cserie.cpp b/cserie.cpp index 95e52a0..88e5685 100644 --- a/cserie.cpp +++ b/cserie.cpp @@ -398,6 +398,16 @@ QString cSerie::localPath() return(m_szLocalPath); } +void cSerie::setResolution(const QString& szResolution) +{ + m_szResolution = szResolution; +} + +QString cSerie::resolution() +{ + return(m_szResolution); +} + void cSerie::setCliffhanger(const bool& bCliffhanger) { m_bCliffhanger = bCliffhanger; @@ -424,7 +434,7 @@ cSeason* cSerie::findSeason(const qint32& iSeason) if(m_seasonList.at(z)->seasonNumber() == iSeason) return(m_seasonList.at(z)); } - return(0); + return(nullptr); } QList cSerie::seasonList() @@ -468,7 +478,7 @@ cEpisode* cSerie::findEpisode(const qint32& id) return(lpEpisode); } } - return(0); + return(nullptr); } bool cSerie::isValid() diff --git a/cserie.h b/cserie.h index 7557258..dc54166 100644 --- a/cserie.h +++ b/cserie.h @@ -556,13 +556,6 @@ public: */ QString localPath(); - /*! - \brief - - \fn setCliffhanger - \param bCliffhanger - */ - /*! \brief