From 42cd6df5c11c6452dbf7773c9fdc232c144463dc Mon Sep 17 00:00:00 2001 From: birkeh Date: Thu, 3 Nov 2016 15:29:14 +0100 Subject: [PATCH] Init --- ckodivideolibrary.cpp | 42 ++++-- ckodivideolibrary.h | 4 + cmyvideos.cpp | 162 ++++++++++++++------ cmyvideos.h | 69 +++++++-- cvideowidget.cpp | 336 ++++++++++++++++++++++++++++++++---------- cvideowidget.h | 15 ++ cvideowidget.ui | 15 +- 7 files changed, 498 insertions(+), 145 deletions(-) diff --git a/ckodivideolibrary.cpp b/ckodivideolibrary.cpp index b261956..3a9ed98 100644 --- a/ckodivideolibrary.cpp +++ b/ckodivideolibrary.cpp @@ -66,6 +66,7 @@ qint32 cKodiVideoLibrary::load() loadCountries(); loadGenres(); loadStudios(); + loadSets(); return(loadVideos()); } @@ -131,6 +132,20 @@ qint32 cKodiVideoLibrary::loadStudios() return(m_videosStudioList.count()); } +qint32 cKodiVideoLibrary::loadSets() +{ + QSqlQuery query(m_db); + + query.exec("SELECT idSet, strSet, strOverview FROM sets ORDER BY strSet;"); + while(query.next()) + { + m_videosSetList.add(query.value("idSet").toInt(), + query.value("strSet").toString(), + query.value("strOverview").toString()); + } + return(m_videosSetList.count()); +} + qint32 cKodiVideoLibrary::loadVideos() { QSqlQuery query(m_db); @@ -210,18 +225,15 @@ qint32 cKodiVideoLibrary::loadVideos() query.value("c21").toString(), query.value("c22").toString(), query.value("c23").toInt(), - query.value("idSet").toInt(), query.value("userrating").toInt(), - query.value("strSet").toString(), - query.value("strSetOverview").toString(), query.value("strFileName").toString(), query.value("strPath").toString(), query.value("playCount").toInt(), QDateTime::fromString(query.value("lastPlayed").toString(), "yyyy-MM-dd HH:mm:ss"), QDateTime::fromString(query.value("dateAdded").toString(), "yyyy-MM-dd HH:mm:ss"), query.value("resumeTimeInSeconds").toDouble(), - query.value("totalTimeInSeconds").toDouble()); - + query.value("totalTimeInSeconds").toDouble(), + m_videosSetList.get(query.value("idSet").toInt())); } return(m_videosList.count()); } @@ -250,13 +262,13 @@ void cKodiVideoLibrary::fillVideoList(QStandardItemModel* lpModel) { cMyVideos* lpVideos = m_videosList.at(z); - if(lpVideos->set().length()) + if(lpVideos->set()) { - if(szOldSet != lpVideos->set()) + if(szOldSet != lpVideos->set()->strSet()) { - szOldSet = lpVideos->set(); - lpRoot = new QStandardItem(QString("%1").arg(lpVideos->set())); - QVariant v = qVariantFromValue(lpVideos); + szOldSet = lpVideos->set()->strSet(); + lpRoot = new QStandardItem(QString("%1").arg(lpVideos->set()->strSet())); + QVariant v = qVariantFromValue(lpVideos->set()); lpRoot->setData(v, Qt::UserRole); lpModel->appendRow(lpRoot); } @@ -322,6 +334,16 @@ void cKodiVideoLibrary::fillStudiosList(QStandardItemModel *lpModel) } } +void cKodiVideoLibrary::fillSetsList(QComboBox* lpComboBox) +{ + lpComboBox->addItem(""); + for(int z = 0;z < m_videosSetList.count();z++) + { + QVariant v = QVariant::fromValue(m_videosSetList.at(z)); + lpComboBox->addItem(m_videosSetList.at(z)->strSet(), v); + } +} + void cKodiVideoLibrary::fillActorList(QStandardItemModel *lpList, cMyVideos* lpVideos) { lpList->clear(); diff --git a/ckodivideolibrary.h b/ckodivideolibrary.h index fd766c4..1f2c9bb 100644 --- a/ckodivideolibrary.h +++ b/ckodivideolibrary.h @@ -10,6 +10,7 @@ #include #include +#include class cKodiVideoLibrary @@ -28,6 +29,7 @@ public: void fillCountriesList(QStandardItemModel* lpModel); void fillGenresList(QStandardItemModel* lpModel); void fillStudiosList(QStandardItemModel* lpModel); + void fillSetsList(QComboBox* lpComboBox); void fillActorList(QStandardItemModel* lpList, cMyVideos* lpVideos); void fillDirectorsList(QStandardItemModel* lpList, cMyVideos* lpVideos); void fillWritersList(QStandardItemModel* lpList, cMyVideos* lpVideos); @@ -48,6 +50,7 @@ private: cMyVideosCountryList m_videosCountryList; cMyVideosGenreList m_videosGenreList; cMyVideosStudioList m_videosStudioList; + cMyVideosSetList m_videosSetList; cMyVideosList m_videosList; qint32 loadActors(); @@ -55,6 +58,7 @@ private: qint32 loadGenres(); qint32 loadStudios(); qint32 loadVideos(); + qint32 loadSets(); }; #endif // CKODIVIDEOLIBRARY_H diff --git a/cmyvideos.cpp b/cmyvideos.cpp index 12dff25..91f3902 100644 --- a/cmyvideos.cpp +++ b/cmyvideos.cpp @@ -4,6 +4,98 @@ #include +cMyVideosSetValues::cMyVideosSetValues() : + m_idSet(-1), + m_strSet("UNSET"), + m_strOverview("UNSET") +{ +} + +cMyVideosSetValues::cMyVideosSetValues(qint32 idSet, const QString& strSet, const QString& strOverview) : + m_idSet(idSet), + m_strSet(strSet), + m_strOverview(strOverview) +{ +} + +void cMyVideosSetValues::set(qint32 idSet, const QString& strSet, const QString& strOverview) +{ + m_idSet = idSet; + m_strSet = strSet; + m_strOverview = strOverview; +} + +inline bool cMyVideosSetValues::operator==(const cMyVideosSetValues b) const +{ + if(m_idSet != b.m_idSet) return(false); + if(m_strSet != b.m_strSet) return(false); + if(m_strOverview != b.m_strOverview) return(false); + return(true); +} + +inline bool cMyVideosSetValues::operator!=(const cMyVideosSetValues b) const +{ + if(m_idSet != b.m_idSet + || m_strSet != b.m_strSet + || m_strOverview != b.m_strOverview) + return(true); + return(false); +} + +cMyVideosSet::cMyVideosSet(qint32 idSet, const QString& strSet, const QString& strOverview) : + m_values(idSet, strSet, strOverview) +{ + m_oValues = m_values; +} + +qint32 cMyVideosSet::idSet() +{ + return(m_values.m_idSet); +} + +QString cMyVideosSet::strSet() +{ + return(m_values.m_strSet); +} + +QString cMyVideosSet::strOverview() +{ + return(m_values.m_strOverview); +} + +bool cMyVideosSet::isNew() +{ + return(false); +} + +bool cMyVideosSet::isChanged() +{ + if(m_values != m_oValues) + return(true); + return(false); +} + +cMyVideosSetList::cMyVideosSetList() +{ +} + +cMyVideosSet* cMyVideosSetList::add(qint32 idSet, const QString& strSet, const QString& strOverview) +{ + cMyVideosSet* lpNew = new cMyVideosSet(idSet, strSet, strOverview); + append(lpNew); + return(lpNew); +} + +cMyVideosSet* cMyVideosSetList::get(qint32 idSet) +{ + for(int z = 0;z < count();z++) + { + if(at(z)->idSet() == idSet) + return(at(z)); + } + return(0); +} + cMyVideosStreamDetailsVideoValues::cMyVideosStreamDetailsVideoValues() : m_szVideoCodec("UNSET"), m_dAspectRatio(-1), @@ -921,9 +1013,9 @@ cMyVideosValues::cMyVideosValues() : m_szMovieTagline("UNSET"), m_iRatingVotes(-1), m_dRating(-1), m_szWriters("UNSET"), m_iYearReleased(-1), m_szThumbnails("UNSET"), m_szIMDBID("UNSET"), m_szTitleFormattedForSorting("UNSET"), m_iRuntime(-1), m_szMPAARating("UNSET"), m_iIMDBTop250Ranking(-1), m_szGenre("UNSET"), m_szDirector("UNSET"), m_szOriginalMovieTitle("UNSET"), - m_szStudio("UNSET"), m_szTrailerURL("UNSET"), m_szFanartURLs("UNSET"), m_szCountry("UNSET"), m_szFilePath("UNSET"), m_idPath(-1), m_idSet(-1), - m_iUserrating(-1), m_szSet("UNSET"), m_szSetOverview("UNSET"), m_szFileName("UNSET"), m_szPathURL("UNSET"), m_iPlayCount(-1), - m_dResumeTimeInSeconds(-1), m_dTotalTimeInSeconds(-1), m_iVideoDuration(-1) + m_szStudio("UNSET"), m_szTrailerURL("UNSET"), m_szFanartURLs("UNSET"), m_szCountry("UNSET"), m_szFilePath("UNSET"), m_idPath(-1), + m_iUserrating(-1), m_szFileName("UNSET"), m_szPathURL("UNSET"), m_iPlayCount(-1), + m_dResumeTimeInSeconds(-1), m_dTotalTimeInSeconds(-1), m_lpSet(0), m_iVideoDuration(-1) { } @@ -932,16 +1024,16 @@ cMyVideosValues::cMyVideosValues(qint32 idMovie, qint32 idFile, const QString& s const QString& szThumbnails, const QString& szIMDBID, const QString& szTitleFormattedForSorting, qint32 iRuntime, const QString& szMPAARating, qint32 iIMDBTop250Ranking, const QString& szGenre, const QString& szDirector, const QString& szOriginalMovieTitle, const QString& szStudio, const QString& szTrailerURL, const QString& szFanartURLs, - const QString& szCountry, const QString& szFilePath, qint32 idPath, qint32 idSet, qint32 iUserrating, const QString& szSet, const QString& szSetOverview, + const QString& szCountry, const QString& szFilePath, qint32 idPath, qint32 iUserrating, const QString& szFileName, const QString& szPathURL, qint32 iPlayCount, const QDateTime& lastPlayed, const QDateTime& dateAdded, - qreal dResumeTimeInSeconds, qreal dTotalTimeInSeconds) : + qreal dResumeTimeInSeconds, qreal dTotalTimeInSeconds, cMyVideosSet* lpSet) : m_idMovie(idMovie), m_idFile(idFile), m_szLocalMovieTitle(szLocalMovieTitle), m_szMoviePlot(szMoviePlot), m_szMoviePlotOutline(szMoviePlotOutline), m_szMovieTagline(szMovieTagline), m_iRatingVotes(iRatingVotes), m_dRating(dRating), m_szWriters(szWriters), m_iYearReleased(iYearReleased), m_szThumbnails(szThumbnails), m_szIMDBID(szIMDBID), m_szTitleFormattedForSorting(szTitleFormattedForSorting), m_iRuntime(iRuntime), m_szMPAARating(szMPAARating), m_iIMDBTop250Ranking(iIMDBTop250Ranking), m_szGenre(szGenre), m_szDirector(szDirector), m_szOriginalMovieTitle(szOriginalMovieTitle), - m_szStudio(szStudio), m_szTrailerURL(szTrailerURL), m_szFanartURLs(szFanartURLs), m_szCountry(szCountry), m_szFilePath(szFilePath), m_idPath(idPath), m_idSet(idSet), - m_iUserrating(iUserrating), m_szSet(szSet), m_szSetOverview(szSetOverview), m_szFileName(szFileName), m_szPathURL(szPathURL), m_iPlayCount(iPlayCount), - m_lastPlayed(lastPlayed), m_dateAdded(dateAdded), m_dResumeTimeInSeconds(dResumeTimeInSeconds), m_dTotalTimeInSeconds(dTotalTimeInSeconds), m_iVideoDuration(-1) + m_szStudio(szStudio), m_szTrailerURL(szTrailerURL), m_szFanartURLs(szFanartURLs), m_szCountry(szCountry), m_szFilePath(szFilePath), m_idPath(idPath), + m_iUserrating(iUserrating), m_szFileName(szFileName), m_szPathURL(szPathURL), m_iPlayCount(iPlayCount), + m_lastPlayed(lastPlayed), m_dateAdded(dateAdded), m_dResumeTimeInSeconds(dResumeTimeInSeconds), m_dTotalTimeInSeconds(dTotalTimeInSeconds), m_lpSet(lpSet), m_iVideoDuration(-1) { } @@ -950,9 +1042,9 @@ void cMyVideosValues::set(qint32 idMovie, qint32 idFile, const QString& szLocalM const QString& szThumbnails, const QString& szIMDBID, const QString& szTitleFormattedForSorting, qint32 iRuntime, const QString& szMPAARating, qint32 iIMDBTop250Ranking, const QString& szGenre, const QString& szDirector, const QString& szOriginalMovieTitle, const QString& szStudio, const QString& szTrailerURL, const QString& szFanartURLs, - const QString& szCountry, const QString& szFilePath, qint32 idPath, qint32 idSet, qint32 iUserrating, const QString& szSet, const QString& szSetOverview, + const QString& szCountry, const QString& szFilePath, qint32 idPath, qint32 iUserrating, const QString& szFileName, const QString& szPathURL, qint32 iPlayCount, const QDateTime& lastPlayed, const QDateTime& dateAdded, - qreal dResumeTimeInSeconds, qreal dTotalTimeInSeconds) + qreal dResumeTimeInSeconds, qreal dTotalTimeInSeconds, cMyVideosSet* lpSet) { m_idMovie = idMovie; m_idFile = idFile; @@ -979,10 +1071,7 @@ void cMyVideosValues::set(qint32 idMovie, qint32 idFile, const QString& szLocalM m_szCountry = szCountry; m_szFilePath = szFilePath; m_idPath = idPath; - m_idSet = idSet; m_iUserrating = iUserrating; - m_szSet = szSet; - m_szSetOverview = szSetOverview; m_szFileName = szFileName; m_szPathURL = szPathURL; m_iPlayCount = iPlayCount; @@ -990,6 +1079,7 @@ void cMyVideosValues::set(qint32 idMovie, qint32 idFile, const QString& szLocalM m_dateAdded = dateAdded; m_dResumeTimeInSeconds = dResumeTimeInSeconds; m_dTotalTimeInSeconds = dTotalTimeInSeconds; + m_lpSet = lpSet; } inline bool cMyVideosValues::operator==(const cMyVideosValues b) const @@ -1019,10 +1109,7 @@ inline bool cMyVideosValues::operator==(const cMyVideosValues b) const if(m_szCountry != b.m_szCountry) return(false); if(m_szFilePath != b.m_szFilePath) return(false); if(m_idPath != b.m_idPath) return(false); - if(m_idSet != b.m_idSet) return(false); if(m_iUserrating != b.m_iUserrating) return(false); - if(m_szSet != b.m_szSet) return(false); - if(m_szSetOverview != b.m_szSetOverview) return(false); if(m_szFileName != b.m_szFileName) return(false); if(m_szPathURL != b.m_szPathURL) return(false); if(m_iPlayCount != b.m_iPlayCount) return(false); @@ -1031,6 +1118,7 @@ inline bool cMyVideosValues::operator==(const cMyVideosValues b) const if(m_dResumeTimeInSeconds != b.m_dResumeTimeInSeconds) return(false); if(m_dTotalTimeInSeconds != b.m_dTotalTimeInSeconds) return(false); if(m_iVideoDuration != b.m_iVideoDuration) return(false); + if(m_lpSet != b.m_lpSet) return(false); return(true); } @@ -1061,10 +1149,7 @@ inline bool cMyVideosValues::operator!=(const cMyVideosValues b) const || m_szCountry != b.m_szCountry || m_szFilePath != b.m_szFilePath || m_idPath != b.m_idPath - || m_idSet != b.m_idSet || m_iUserrating != b.m_iUserrating - || m_szSet != b.m_szSet - || m_szSetOverview != b.m_szSetOverview || m_szFileName != b.m_szFileName || m_szPathURL != b.m_szPathURL || m_iPlayCount != b.m_iPlayCount @@ -1072,7 +1157,8 @@ inline bool cMyVideosValues::operator!=(const cMyVideosValues b) const || m_dateAdded != b.m_dateAdded || m_dResumeTimeInSeconds != b.m_dResumeTimeInSeconds || m_dTotalTimeInSeconds != b.m_dTotalTimeInSeconds - || m_iVideoDuration != b.m_iVideoDuration) + || m_iVideoDuration != b.m_iVideoDuration + || m_lpSet != b.m_lpSet) return(true); return(false); } @@ -1082,13 +1168,13 @@ cMyVideos::cMyVideos(qint32 idMovie, qint32 idFile, const QString& szLocalMovieT const QString& szThumbnails, const QString& szIMDBID, const QString& szTitleFormattedForSorting, qint32 iRuntime, const QString& szMPAARating, qint32 iIMDBTop250Ranking, const QString& szGenre, const QString& szDirector, const QString& szOriginalMovieTitle, const QString& szStudio, const QString& szTrailerURL, const QString& szFanartURLs, - const QString& szCountry, const QString& szFilePath, qint32 idPath, qint32 idSet, qint32 iUserrating, const QString& szSet, const QString& szSetOverview, + const QString& szCountry, const QString& szFilePath, qint32 idPath, qint32 iUserrating, const QString& szFileName, const QString& szPathURL, qint32 iPlayCount, const QDateTime& lastPlayed, const QDateTime& dateAdded, - qreal dResumeTimeInSeconds, qreal dTotalTimeInSeconds) : + qreal dResumeTimeInSeconds, qreal dTotalTimeInSeconds, cMyVideosSet* lpSet) : m_values(idMovie, idFile, szLocalMovieTitle, szMoviePlot, szMoviePlotOutline, szMovieTagline, iRatingVotes, dRating, szWriters, iYearReleased, szThumbnails, szIMDBID, szTitleFormattedForSorting, iRuntime, szMPAARating, iIMDBTop250Ranking, szGenre, szDirector, szOriginalMovieTitle, - szStudio, szTrailerURL, szFanartURLs, szCountry, szFilePath, idPath, idSet, iUserrating, szSet, szSetOverview, szFileName, szPathURL, iPlayCount, - lastPlayed, dateAdded, dResumeTimeInSeconds, dTotalTimeInSeconds) + szStudio, szTrailerURL, szFanartURLs, szCountry, szFilePath, idPath, iUserrating, szFileName, szPathURL, iPlayCount, + lastPlayed, dateAdded, dResumeTimeInSeconds, dTotalTimeInSeconds, lpSet) { m_oValues = m_values; } @@ -1102,15 +1188,15 @@ cMyVideos* cMyVideosList::add(qint32 idMovie, qint32 idFile, const QString& szLo const QString& szThumbnails, const QString& szIMDBID, const QString& szTitleFormattedForSorting, qint32 iRuntime, const QString& szMPAARating, qint32 iIMDBTop250Ranking, const QString& szGenre, const QString& szDirector, const QString& szOriginalMovieTitle, const QString& szStudio, const QString& szTrailerURL, const QString& szFanartURLs, - const QString& szCountry, const QString& szFilePath, qint32 idPath, qint32 idSet, qint32 iUserrating, const QString& szSet, const QString& szSetOverview, + const QString& szCountry, const QString& szFilePath, qint32 idPath, qint32 iUserrating, const QString& szFileName, const QString& szPathURL, qint32 iPlayCount, const QDateTime& lastPlayed, const QDateTime& dateAdded, - qreal dResumeTimeInSeconds, qreal dTotalTimeInSeconds) + qreal dResumeTimeInSeconds, qreal dTotalTimeInSeconds, cMyVideosSet *lpSet) { cMyVideos* lpNew = new cMyVideos(idMovie, idFile, szLocalMovieTitle, szMoviePlot, szMoviePlotOutline, szMovieTagline, iRatingVotes, dRating, szWriters, iYearReleased, szThumbnails, szIMDBID, szTitleFormattedForSorting, iRuntime, szMPAARating, iIMDBTop250Ranking, szGenre, szDirector, szOriginalMovieTitle, szStudio, szTrailerURL, szFanartURLs, - szCountry, szFilePath, idPath, idSet, iUserrating, szSet, szSetOverview, szFileName, szPathURL, iPlayCount, - lastPlayed, dateAdded, dResumeTimeInSeconds, dTotalTimeInSeconds); + szCountry, szFilePath, idPath, iUserrating, szFileName, szPathURL, iPlayCount, + lastPlayed, dateAdded, dResumeTimeInSeconds, dTotalTimeInSeconds, lpSet); append(lpNew); return(lpNew); } @@ -1546,26 +1632,11 @@ QString cMyVideos::filePath() return(m_values.m_szFilePath); } -qint32 cMyVideos::idSet() -{ - return(m_values.m_idSet); -} - qint32 cMyVideos::userRating() { return(m_values.m_iUserrating); } -QString cMyVideos::set() -{ - return(m_values.m_szSet); -} - -QString cMyVideos::setOverview() -{ - return(m_values.m_szSetOverview); -} - QString cMyVideos::fileName() { return(m_values.m_szFileName); @@ -1601,6 +1672,11 @@ qreal cMyVideos::totalTimeInSeconds() return(m_values.m_dTotalTimeInSeconds); } +cMyVideosSet* cMyVideos::set() +{ + return(m_values.m_lpSet); +} + bool cMyVideos::isNew() { if(m_values.m_idMovie == -1) diff --git a/cmyvideos.h b/cmyvideos.h index aff7063..4fbe8ac 100644 --- a/cmyvideos.h +++ b/cmyvideos.h @@ -17,6 +17,49 @@ typedef struct tagSTRING2 QString _2; } STRING2; +class cMyVideosSetValues +{ +public: + cMyVideosSetValues(); + cMyVideosSetValues(qint32 idSet, const QString& strSet, const QString& strOverview); + + void set(qint32 idSet, const QString& strSet, const QString& strOverview); + + inline bool operator==(const cMyVideosSetValues b) const; + inline bool operator!=(const cMyVideosSetValues b) const; + + qint32 m_idSet; + QString m_strSet; + QString m_strOverview; +}; + +class cMyVideosSet +{ +public: + cMyVideosSet(qint32 idSet, const QString& strSet, const QString& strOverview); + + qint32 idSet(); + QString strSet(); + QString strOverview(); + + bool isNew(); + bool isChanged(); + + cMyVideosSetValues m_values; + cMyVideosSetValues m_oValues; +}; + +Q_DECLARE_METATYPE(cMyVideosSet*) + +class cMyVideosSetList : public QList +{ +public: + cMyVideosSetList(); + cMyVideosSet* add(qint32 idSet, const QString& strSet, const QString& strOverview); + cMyVideosSet* get(qint32 idSet); +private: +}; + class cMyVideosStreamDetailsVideoValues { public: @@ -544,18 +587,18 @@ public: const QString& szThumbnails, const QString& szIMDBID, const QString& szTitleFormattedForSorting, qint32 iRuntime, const QString& szMPAARating, qint32 iIMDBTop250Ranking, const QString& szGenre, const QString& szDirector, const QString& szOriginalMovieTitle, const QString& szStudio, const QString& szTrailerURL, const QString& szFanartURLs, - const QString& szCountry, const QString& szFilePath, qint32 idPath, qint32 idSet, qint32 iUserrating, const QString& szSet, const QString& szSetOverview, + const QString& szCountry, const QString& szFilePath, qint32 idPath, qint32 iUserrating, const QString& szFileName, const QString& szPathURL, qint32 iPlayCount, const QDateTime& lastPlayed, const QDateTime& dateAdded, - qreal dResumeTimeInSeconds, qreal dTotalTimeInSeconds); + qreal dResumeTimeInSeconds, qreal dTotalTimeInSeconds, cMyVideosSet* lpSet); void set(qint32 idMovie, qint32 idFile, const QString& szLocalMovieTitle, const QString& szMoviePlot, const QString& szMoviePlotOutline, const QString& szMovieTagline, qint32 iRatingVotes, qreal dRating, const QString& szWriters, qint32 iYearReleased, const QString& szThumbnails, const QString& szIMDBID, const QString& szTitleFormattedForSorting, qint32 iRuntime, const QString& szMPAARating, qint32 iIMDBTop250Ranking, const QString& szGenre, const QString& szDirector, const QString& szOriginalMovieTitle, const QString& szStudio, const QString& szTrailerURL, const QString& szFanartURLs, - const QString& szCountry, const QString& szFilePath, qint32 idPath, qint32 idSet, qint32 iUserrating, const QString& szSet, const QString& szSetOverview, + const QString& szCountry, const QString& szFilePath, qint32 idPath, qint32 iUserrating, const QString& szFileName, const QString& szPathURL, qint32 iPlayCount, const QDateTime& lastPlayed, const QDateTime& dateAdded, - qreal dResumeTimeInSeconds, qreal dTotalTimeInSeconds); + qreal dResumeTimeInSeconds, qreal dTotalTimeInSeconds, cMyVideosSet* lpSet); inline bool operator==(const cMyVideosValues b) const; inline bool operator!=(const cMyVideosValues b) const; @@ -585,10 +628,7 @@ public: QString m_szCountry; // c21 QString m_szFilePath; // c22 qint32 m_idPath; // c23 - qint32 m_idSet; // idSet qint32 m_iUserrating; // userrating - QString m_szSet; // strSet - QString m_szSetOverview; // Set overview QString m_szFileName; // strFileName QString m_szPathURL; // strPath qint32 m_iPlayCount; // playCount @@ -596,6 +636,8 @@ public: QDateTime m_dateAdded; // dateAdded qreal m_dResumeTimeInSeconds; // resumeTimeInSeconds qreal m_dTotalTimeInSeconds; // totalTimeInSeconds + cMyVideosSet* m_lpSet; + cMyVideosActorLinkList m_actors; cMyVideosDirectorLinkList m_directors; cMyVideosWriterLinkList m_writers; @@ -616,9 +658,9 @@ public: const QString& szThumbnails, const QString& szIMDBID, const QString& szTitleFormattedForSorting, qint32 iRuntime, const QString& szMPAARating, qint32 iIMDBTop250Ranking, const QString& szGenre, const QString& szDirector, const QString& szOriginalMovieTitle, const QString& szStudio, const QString& szTrailerURL, const QString& szFanartURLs, - const QString& szCountry, const QString& szFilePath, qint32 idPath, qint32 idSet, qint32 iUserrating, const QString& szSet, const QString& szSetOverview, + const QString& szCountry, const QString& szFilePath, qint32 idPath, qint32 iUserrating, const QString& szFileName, const QString& szPathURL, qint32 iPlayCount, const QDateTime& lastPlayed, const QDateTime& dateAdded, - qreal dResumeTimeInSeconds, qreal dTotalTimeInSeconds); + qreal dResumeTimeInSeconds, qreal dTotalTimeInSeconds, cMyVideosSet* lpSet); void loadActors(QSqlDatabase& m_db, cMyVideosActorList videosActorList); void loadDirectors(QSqlDatabase& m_db, cMyVideosActorList videosActorList); @@ -664,10 +706,7 @@ public: QList fanartURL(); QStringList country(); QString filePath(); - qint32 idSet(); qint32 userRating(); - QString set(); - QString setOverview(); QString fileName(); QString pathURL(); qint32 playCount(); @@ -675,6 +714,8 @@ public: QDateTime dateAdded(); qreal resumeTimeInSeconds(); qreal totalTimeInSeconds(); + QString strSet(); + cMyVideosSet* set(); bool isNew(); bool isChanged(); @@ -694,9 +735,9 @@ public: const QString& szThumbnails, const QString& szIMDBID, const QString& szTitleFormattedForSorting, qint32 iRuntime, const QString& szMPAARating, qint32 iIMDBTop250Ranking, const QString& szGenre, const QString& szDirector, const QString& szOriginalMovieTitle, const QString& szStudio, const QString& szTrailerURL, const QString& szFanartURLs, - const QString& szCountry, const QString& szFilePath, qint32 idPath, qint32 idSet, qint32 iUserrating, const QString& szSet, const QString& szSetOverview, + const QString& szCountry, const QString& szFilePath, qint32 idPath, qint32 iUserrating, const QString& szFileName, const QString& szPathURL, qint32 iPlayCount, const QDateTime& lastPlayed, const QDateTime& dateAdded, - qreal dResumeTimeInSeconds, qreal dTotalTimeInSeconds); + qreal dResumeTimeInSeconds, qreal dTotalTimeInSeconds, cMyVideosSet* lpSet); private: }; diff --git a/cvideowidget.cpp b/cvideowidget.cpp index d0a6508..4622ca7 100644 --- a/cvideowidget.cpp +++ b/cvideowidget.cpp @@ -143,9 +143,12 @@ void cVideoWidget::showList() m_lpStudioModel->clear(); m_lpVideoLibrary->fillStudiosList(m_lpStudioModel); + + ui->m_lpSet->clear(); + m_lpVideoLibrary->fillSetsList(ui->m_lpSet); } -void cVideoWidget::videoSelectionChanged(const QItemSelection& /*newSelection*/, const QItemSelection& /*oldSelection*/) +void cVideoWidget::displaySet(cMyVideosSet* lpSet) { QPixmap thumb; QPixmap fanart; @@ -156,93 +159,64 @@ void cVideoWidget::videoSelectionChanged(const QItemSelection& /*newSelection*/, QString szPoster; QString szBanner; - const QModelIndex index = ui->m_lpVideoView->selectionModel()->currentIndex(); - cMyVideos* lpVideos = index.data(Qt::UserRole).value(); + ui->m_lpSet->setVisible(false); + ui->m_lpSetText->setVisible(true); m_lpCastModel->clear(); m_lpDirectorModel->clear(); m_lpWriterModel->clear(); - // Basic Tab - ui->m_lpTitle->setText(lpVideos->localMovieTitle()); - ui->m_lpOriginalTitle->setText(lpVideos->originalMovieTitle()); - ui->m_lpTitleForSorting->setText(lpVideos->titleFormattedForSorting()); - ui->m_lpSet->setText(lpVideos->set()); - ui->m_lpTagline->setText(lpVideos->movieTagline()); - ui->m_lpRating->setValue(lpVideos->rating()); - ui->m_lpRatingVotes->setValue(lpVideos->ratingVotes()); - ui->m_lpTop250->setValue(lpVideos->imdbTop250Ranking()); - ui->m_lpReleased->setValue(lpVideos->yearReleased()); - ui->m_lpRuntime->setValue(lpVideos->runtime()); - ui->m_lpCertification->setText(lpVideos->mpaaRating()); - ui->m_lpTrailer->setText(lpVideos->trailerURL()); - ui->m_lpPlayCount->setValue(lpVideos->playCount()); - ui->m_lpLastPlayed->setDateTime(lpVideos->lastPlayed()); - ui->m_lpPlot->setText(lpVideos->moviePlot()); - ui->m_lpOutline->setText(lpVideos->moviePlotOutline()); + m_lpVideoStreamModel->clear(); + m_lpAudioStreamModel->clear(); + m_lpSubtitleStreamModel->clear(); - // Extended Tab - m_lpVideoLibrary->fillCountriesList(m_lpCountryModel, lpVideos); - m_lpVideoLibrary->fillGenresList(m_lpGenreModel, lpVideos); - m_lpVideoLibrary->fillStudiosList(m_lpStudioModel, lpVideos); - - // Crew Tab + ui->m_lpCastView->setEnabled(false); + ui->m_lpDirectorView->setEnabled(false); + ui->m_lpWriterView->setEnabled(false); ui->m_lpCastPicture->clear(); ui->m_lpDirectorPicture->clear(); ui->m_lpWriterPicture->clear(); + ui->m_lpCastPicture->setEnabled(false); + ui->m_lpDirectorPicture->setEnabled(false); + ui->m_lpWriterPicture->setEnabled(false); - m_lpVideoLibrary->fillActorList(m_lpCastModel, lpVideos); - ui->m_lpCastView->resizeColumnToContents(0); - ui->m_lpCastView->resizeColumnToContents(1); + ui->m_lpGenresGroup->setEnabled(false); + ui->m_lpCountriesGroup->setEnabled(false); + ui->m_lpStudiosGroup->setEnabled(false); + ui->m_lpVideoStreamBox->setEnabled(false); + ui->m_lpAudioStreamBox->setEnabled(false); + ui->m_lpSubtitleStreamBox->setEnabled(false); - m_lpVideoLibrary->fillDirectorsList(m_lpDirectorModel, lpVideos); + // Basic Tab + setValue(ui->m_lpTitle, QString(""), false); + setValue(ui->m_lpOriginalTitle, QString(""), false); + setValue(ui->m_lpTitleForSorting, QString(""), false); + ui->m_lpSet->setCurrentIndex(ui->m_lpSet->findText(lpSet->strSet())); + ui->m_lpSetText->setText(lpSet->strSet()); + setValue(ui->m_lpTagline, QString(""), false); + setValue(ui->m_lpRating, 0, false); + setValue(ui->m_lpRatingVotes, 0, false); + setValue(ui->m_lpTop250, 0, false); + setValue(ui->m_lpReleased, 0, false); + setValue(ui->m_lpRuntime, 0, false); + setValue(ui->m_lpCertification, 0, false); + setValue(ui->m_lpTrailer, QString(""), false); + setValue(ui->m_lpPlayCount, 0, false); + setValue(ui->m_lpLastPlayed, QDateTime(), false); + setValue(ui->m_lpPlot, QString(""), false); + setValue(ui->m_lpOutline, QString(""), false); - m_lpVideoLibrary->fillWritersList(m_lpWriterModel, lpVideos); + setValue(ui->m_lpVideoDuration, QTime::fromMSecsSinceStartOfDay(0), false); - // Stream Tab - m_lpVideoLibrary->fillVideoStreamList(m_lpVideoStreamModel, lpVideos); - ui->m_lpVideoStreamView->resizeColumnToContents(0); - ui->m_lpVideoStreamView->resizeColumnToContents(1); - ui->m_lpVideoStreamView->resizeColumnToContents(2); - ui->m_lpVideoStreamView->resizeColumnToContents(3); + thumb = m_lpImageList->get(cImage::MEDIATYPE_set, cImage::TYPE_thumb, lpSet->idSet()); + fanart = m_lpImageList->get(cImage::MEDIATYPE_set, cImage::TYPE_fanart, lpSet->idSet()); + poster = m_lpImageList->get(cImage::MEDIATYPE_set, cImage::TYPE_poster, lpSet->idSet()); + banner = m_lpImageList->get(cImage::MEDIATYPE_set, cImage::TYPE_banner, lpSet->idSet()); - m_lpVideoLibrary->fillAudioStreamList(m_lpAudioStreamModel, lpVideos); - ui->m_lpAudioStreamView->resizeColumnToContents(0); - ui->m_lpAudioStreamView->resizeColumnToContents(1); - ui->m_lpAudioStreamView->resizeColumnToContents(2); - ui->m_lpAudioStreamView->resizeColumnToContents(3); - - m_lpVideoLibrary->fillSubtitleStreamList(m_lpSubtitleStreamModel, lpVideos); - - if(lpVideos->m_values.m_iVideoDuration != -1) - ui->m_lpVideoDuration->setTime(QTime::fromMSecsSinceStartOfDay(lpVideos->m_values.m_iVideoDuration*1000)); - else - ui->m_lpVideoDuration->setTime(QTime::fromMSecsSinceStartOfDay(0)); - - if(m_lpVideoModel->itemFromIndex(index)->hasChildren()) - { - thumb = m_lpImageList->get(cImage::MEDIATYPE_set, cImage::TYPE_thumb, lpVideos->idSet()); - fanart = m_lpImageList->get(cImage::MEDIATYPE_set, cImage::TYPE_fanart, lpVideos->idSet()); - poster = m_lpImageList->get(cImage::MEDIATYPE_set, cImage::TYPE_poster, lpVideos->idSet()); - banner = m_lpImageList->get(cImage::MEDIATYPE_set, cImage::TYPE_banner, lpVideos->idSet()); - - szThumb = m_lpImageList->fileName(cImage::MEDIATYPE_set, cImage::TYPE_thumb, lpVideos->idSet()); - szFanart = m_lpImageList->fileName(cImage::MEDIATYPE_set, cImage::TYPE_fanart, lpVideos->idSet()); - szPoster = m_lpImageList->fileName(cImage::MEDIATYPE_set, cImage::TYPE_poster, lpVideos->idSet()); - szBanner = m_lpImageList->fileName(cImage::MEDIATYPE_set, cImage::TYPE_banner, lpVideos->idSet()); - } - else - { - thumb = m_lpImageList->get(cImage::MEDIATYPE_movie, cImage::TYPE_thumb, lpVideos->idMovie()); - fanart = m_lpImageList->get(cImage::MEDIATYPE_movie, cImage::TYPE_fanart, lpVideos->idMovie()); - poster = m_lpImageList->get(cImage::MEDIATYPE_movie, cImage::TYPE_poster, lpVideos->idMovie()); - banner = m_lpImageList->get(cImage::MEDIATYPE_movie, cImage::TYPE_banner, lpVideos->idMovie()); - - szThumb = m_lpImageList->fileName(cImage::MEDIATYPE_movie, cImage::TYPE_thumb, lpVideos->idMovie()); - szFanart = m_lpImageList->fileName(cImage::MEDIATYPE_movie, cImage::TYPE_fanart, lpVideos->idMovie()); - szPoster = m_lpImageList->fileName(cImage::MEDIATYPE_movie, cImage::TYPE_poster, lpVideos->idMovie()); - szBanner = m_lpImageList->fileName(cImage::MEDIATYPE_movie, cImage::TYPE_banner, lpVideos->idMovie()); - } + szThumb = m_lpImageList->fileName(cImage::MEDIATYPE_set, cImage::TYPE_thumb, lpSet->idSet()); + szFanart = m_lpImageList->fileName(cImage::MEDIATYPE_set, cImage::TYPE_fanart, lpSet->idSet()); + szPoster = m_lpImageList->fileName(cImage::MEDIATYPE_set, cImage::TYPE_poster, lpSet->idSet()); + szBanner = m_lpImageList->fileName(cImage::MEDIATYPE_set, cImage::TYPE_banner, lpSet->idSet()); if(thumb.width()) { @@ -297,6 +271,220 @@ void cVideoWidget::videoSelectionChanged(const QItemSelection& /*newSelection*/, } } +void cVideoWidget::displayVideo(cMyVideos* lpVideos) +{ + QPixmap thumb; + QPixmap fanart; + QPixmap poster; + QPixmap banner; + QString szThumb; + QString szFanart; + QString szPoster; + QString szBanner; + + ui->m_lpSet->setVisible(true); + ui->m_lpSetText->setVisible(false); + + m_lpCastModel->clear(); + m_lpDirectorModel->clear(); + m_lpWriterModel->clear(); + + ui->m_lpCastView->setEnabled(true); + ui->m_lpDirectorView->setEnabled(true); + ui->m_lpWriterView->setEnabled(true); + ui->m_lpCastPicture->clear(); + ui->m_lpDirectorPicture->clear(); + ui->m_lpWriterPicture->clear(); + ui->m_lpCastPicture->setEnabled(true); + ui->m_lpDirectorPicture->setEnabled(true); + ui->m_lpWriterPicture->setEnabled(true); + + ui->m_lpGenresGroup->setEnabled(true); + ui->m_lpCountriesGroup->setEnabled(true); + ui->m_lpStudiosGroup->setEnabled(true); + ui->m_lpVideoStreamBox->setEnabled(true); + ui->m_lpAudioStreamBox->setEnabled(true); + ui->m_lpSubtitleStreamBox->setEnabled(true); + + // Basic Tab + setValue(ui->m_lpTitle, lpVideos->localMovieTitle(), true); + setValue(ui->m_lpOriginalTitle, lpVideos->originalMovieTitle(), true); + setValue(ui->m_lpTitleForSorting, lpVideos->titleFormattedForSorting(), true); + if(lpVideos->set()) + { + ui->m_lpSet->setCurrentIndex(ui->m_lpSet->findText(lpVideos->set()->strSet())); + ui->m_lpSetText->setText(lpVideos->set()->strSet()); + } + else + { + ui->m_lpSet->setCurrentIndex(0); + ui->m_lpSetText->setText(""); + } + setValue(ui->m_lpTagline, lpVideos->movieTagline(), true); + setValue(ui->m_lpRating, lpVideos->rating(), true); + setValue(ui->m_lpRatingVotes, lpVideos->ratingVotes(), true); + setValue(ui->m_lpTop250, lpVideos->imdbTop250Ranking(), true); + setValue(ui->m_lpReleased, lpVideos->yearReleased(), true); + setValue(ui->m_lpRuntime, lpVideos->runtime(), true); + setValue(ui->m_lpCertification, lpVideos->mpaaRating(), true); + setValue(ui->m_lpTrailer, lpVideos->trailerURL(), true); + setValue(ui->m_lpPlayCount, lpVideos->playCount(), true); + setValue(ui->m_lpLastPlayed, lpVideos->lastPlayed(), true); + setValue(ui->m_lpPlot, lpVideos->moviePlot(), true); + setValue(ui->m_lpOutline, lpVideos->moviePlotOutline(), true); + + // Extended Tab + m_lpVideoLibrary->fillCountriesList(m_lpCountryModel, lpVideos); + m_lpVideoLibrary->fillGenresList(m_lpGenreModel, lpVideos); + m_lpVideoLibrary->fillStudiosList(m_lpStudioModel, lpVideos); + + // Crew Tab + ui->m_lpCastPicture->clear(); + ui->m_lpDirectorPicture->clear(); + ui->m_lpWriterPicture->clear(); + + m_lpVideoLibrary->fillActorList(m_lpCastModel, lpVideos); + ui->m_lpCastView->resizeColumnToContents(0); + ui->m_lpCastView->resizeColumnToContents(1); + + m_lpVideoLibrary->fillDirectorsList(m_lpDirectorModel, lpVideos); + + m_lpVideoLibrary->fillWritersList(m_lpWriterModel, lpVideos); + + // Stream Tab + m_lpVideoLibrary->fillVideoStreamList(m_lpVideoStreamModel, lpVideos); + ui->m_lpVideoStreamView->resizeColumnToContents(0); + ui->m_lpVideoStreamView->resizeColumnToContents(1); + ui->m_lpVideoStreamView->resizeColumnToContents(2); + ui->m_lpVideoStreamView->resizeColumnToContents(3); + + m_lpVideoLibrary->fillAudioStreamList(m_lpAudioStreamModel, lpVideos); + ui->m_lpAudioStreamView->resizeColumnToContents(0); + ui->m_lpAudioStreamView->resizeColumnToContents(1); + ui->m_lpAudioStreamView->resizeColumnToContents(2); + ui->m_lpAudioStreamView->resizeColumnToContents(3); + + m_lpVideoLibrary->fillSubtitleStreamList(m_lpSubtitleStreamModel, lpVideos); + + if(lpVideos->m_values.m_iVideoDuration != -1) + setValue(ui->m_lpVideoDuration, QTime::fromMSecsSinceStartOfDay(lpVideos->m_values.m_iVideoDuration*1000), true); + else + setValue(ui->m_lpVideoDuration, QTime::fromMSecsSinceStartOfDay(0), true); + + thumb = m_lpImageList->get(cImage::MEDIATYPE_movie, cImage::TYPE_thumb, lpVideos->idMovie()); + fanart = m_lpImageList->get(cImage::MEDIATYPE_movie, cImage::TYPE_fanart, lpVideos->idMovie()); + poster = m_lpImageList->get(cImage::MEDIATYPE_movie, cImage::TYPE_poster, lpVideos->idMovie()); + banner = m_lpImageList->get(cImage::MEDIATYPE_movie, cImage::TYPE_banner, lpVideos->idMovie()); + + szThumb = m_lpImageList->fileName(cImage::MEDIATYPE_movie, cImage::TYPE_thumb, lpVideos->idMovie()); + szFanart = m_lpImageList->fileName(cImage::MEDIATYPE_movie, cImage::TYPE_fanart, lpVideos->idMovie()); + szPoster = m_lpImageList->fileName(cImage::MEDIATYPE_movie, cImage::TYPE_poster, lpVideos->idMovie()); + szBanner = m_lpImageList->fileName(cImage::MEDIATYPE_movie, cImage::TYPE_banner, lpVideos->idMovie()); + + if(thumb.width()) + { + ui->m_lpThumb->setPixmap(thumb.scaled(THUMB_WIDTH, THUMB_HEIGHT, Qt::KeepAspectRatio, Qt::SmoothTransformation)); + ui->m_lpThumbBox->setTitle(QString(tr("Thumb (%1 x %2)")).arg(thumb.width()).arg(thumb.height())); + ui->m_lpThumb->setToolTip(szThumb); + } + else + { + ui->m_lpThumb->clear(); + ui->m_lpThumbBox->setTitle("Thumb"); + ui->m_lpThumb->setToolTip(""); + } + + if(fanart.width()) + { + ui->m_lpFanart->setPixmap(fanart.scaled(FANART_WIDTH, FANART_HEIGHT, Qt::KeepAspectRatio, Qt::SmoothTransformation)); + ui->m_lpFanartBox->setTitle(QString(tr("Fanart (%1 x %2)")).arg(fanart.width()).arg(fanart.height())); + ui->m_lpFanart->setToolTip(szFanart); + } + else + { + ui->m_lpFanart->clear(); + ui->m_lpFanartBox->setTitle(tr("Fanart")); + ui->m_lpFanart->setToolTip(""); + } + + if(poster.width()) + { + ui->m_lpPoster->setPixmap(poster.scaled(POSTER_WIDTH, POSTER_HEIGHT, Qt::KeepAspectRatio, Qt::SmoothTransformation)); + ui->m_lpPosterBox->setTitle(QString(tr("Poster (%1 x %2)")).arg(poster.width()).arg(poster.height())); + ui->m_lpPoster->setToolTip(szPoster); + } + else + { + ui->m_lpPoster->clear(); + ui->m_lpPosterBox->setTitle(tr("Poster")); + ui->m_lpPoster->setToolTip(""); + } + + if(banner.width()) + { + ui->m_lpBanner->setPixmap(banner.scaled(BANNER_WIDTH, BANNER_HEIGHT, Qt::KeepAspectRatio, Qt::SmoothTransformation)); + ui->m_lpBannerBox->setTitle(QString(tr("Banner (%1 x %2)")).arg(banner.width()).arg(banner.height())); + ui->m_lpBanner->setToolTip(szBanner); + } + else + { + ui->m_lpBanner->clear(); + ui->m_lpBannerBox->setTitle(tr("Banner")); + ui->m_lpBanner->setToolTip(""); + } +} +void cVideoWidget::setValue(QLineEdit* lpLineEdit, QString szText, bool bEnable) +{ + lpLineEdit->setText(szText); + lpLineEdit->setEnabled(bEnable); +} + +void cVideoWidget::setValue(QTextEdit* lpTextEdit, QString szText, bool bEnable) +{ + lpTextEdit->setText(szText); + lpTextEdit->setEnabled(bEnable); +} + +void cVideoWidget::setValue(QDoubleSpinBox* lpSpinBox, qreal dValue, bool bEnable) +{ + lpSpinBox->setValue(dValue); + lpSpinBox->setEnabled(bEnable); +} + +void cVideoWidget::setValue(QSpinBox* lpSpinBox, qint32 iValue, bool bEnable) +{ + lpSpinBox->setValue(iValue); + lpSpinBox->setEnabled(bEnable); +} + +void cVideoWidget::setValue(QDateTimeEdit* lpDateTimeEdit, QDateTime value, bool bEnable) +{ + lpDateTimeEdit->setDateTime(value); + lpDateTimeEdit->setEnabled(bEnable); +} + +void cVideoWidget::setValue(QTimeEdit* lpTimeEdit, QTime value, bool bEnable) +{ + lpTimeEdit->setTime(value); + lpTimeEdit->setEnabled(bEnable); +} + +void cVideoWidget::videoSelectionChanged(const QItemSelection& /*newSelection*/, const QItemSelection& /*oldSelection*/) +{ + const QModelIndex index = ui->m_lpVideoView->selectionModel()->currentIndex(); + + if(m_lpVideoModel->itemFromIndex(index)->hasChildren()) + { + cMyVideosSet* lpSet = index.data(Qt::UserRole).value(); + displaySet(lpSet); + } + else + { + cMyVideos* lpVideos = index.data(Qt::UserRole).value(); + displayVideo(lpVideos); + } +} + void cVideoWidget::castSelectionChanged(const QItemSelection& /*newSelection*/, const QItemSelection& /*oldSelection*/) { ui->m_lpCastPicture->clear(); diff --git a/cvideowidget.h b/cvideowidget.h index 21400e6..ae5c260 100644 --- a/cvideowidget.h +++ b/cvideowidget.h @@ -7,6 +7,10 @@ #include #include #include +#include +#include +#include +#include namespace Ui { @@ -43,6 +47,17 @@ private: void initUI(); void showList(); + + void displaySet(cMyVideosSet* lpSet); + void displayVideo(cMyVideos* lpVideos); + + void setValue(QLineEdit* lpLineEdit, QString szText, bool bEnable); + void setValue(QTextEdit* lpLineEdit, QString szText, bool bEnable); + void setValue(QDoubleSpinBox* lpSpinBox, qreal dValue, bool bEnable); + void setValue(QSpinBox* lpSpinBox, qint32 iValue, bool bEnable); + void setValue(QDateTimeEdit* lpDateTimeEdit, QDateTime value, bool bEnable); + void setValue(QTimeEdit* lpTimeEdit, QTime value, bool bEnable); + private slots: void videoSelectionChanged(const QItemSelection& newSelection, const QItemSelection& oldSelection); void castSelectionChanged(const QItemSelection& newSelection, const QItemSelection& oldSelection); diff --git a/cvideowidget.ui b/cvideowidget.ui index 1640451..585ac70 100644 --- a/cvideowidget.ui +++ b/cvideowidget.ui @@ -71,7 +71,7 @@ - 3 + 0 @@ -113,9 +113,6 @@ - - - @@ -371,6 +368,16 @@ + + + + + + + + + +