diff options
author | Arno <arno@disconnect.de> | 2018-04-04 08:32:51 +0200 |
---|---|---|
committer | Arno <arno@disconnect.de> | 2018-04-04 08:32:51 +0200 |
commit | c2f858dd0cee23eb28da69c97cf4774554f476f7 (patch) | |
tree | 97de192d61236602fe2ee1a9b197209e35af536b /moviewidget.cpp | |
parent | 6591250d9f0cddbc3f05b1b154d8e6889577fe94 (diff) | |
download | SheMov-c2f858dd0cee23eb28da69c97cf4774554f476f7.tar.gz SheMov-c2f858dd0cee23eb28da69c97cf4774554f476f7.tar.bz2 SheMov-c2f858dd0cee23eb28da69c97cf4774554f476f7.zip |
MovieWidget: indicate if file is available
Diffstat (limited to 'moviewidget.cpp')
-rw-r--r-- | moviewidget.cpp | 53 |
1 files changed, 49 insertions, 4 deletions
diff --git a/moviewidget.cpp b/moviewidget.cpp index d30cee2..07cdfe7 100644 --- a/moviewidget.cpp +++ b/moviewidget.cpp @@ -11,6 +11,7 @@ #include <QSqlDatabase> #include <QSqlQuery> #include <QSettings> +#include <QFileInfo> #include <QApplication> #include "moviewidget.h" @@ -164,6 +165,9 @@ void MovieWidget::populateBySeries(){ item->setForeground(currentBrush); item->setData(seriesQ.value(1), SeriesPartIdRole); item->setData(seriesQ.value(5), CountRole); + item->setData(seriesQ.value(0), SeriesNameRole); + item->setData(seriesQ.value(4), SubtitleRole); + item->setData(seriesQ.value(2), SeriesPartRole); item->setFont(f); items << item; } @@ -210,6 +214,10 @@ void MovieWidget::populateByActors(){ QStandardItem *item = new QStandardItem; item->setForeground(currentBrush); item->setData(actorsQ.value(1), SeriesPartIdRole); + item->setData(actorsQ.value(7), CountRole); + item->setData(actorsQ.value(2), SeriesNameRole); + item->setData(actorsQ.value(6), SubtitleRole); + item->setData(actorsQ.value(4), SeriesPartRole); item->setFont(f); items << item; } @@ -256,6 +264,10 @@ void MovieWidget::populateByGenres(){ QStandardItem *item = new QStandardItem; item->setForeground(currentBrush); item->setData(genresQ.value(1), SeriesPartIdRole); + item->setData(genresQ.value(7), CountRole); + item->setData(genresQ.value(2), SeriesNameRole); + item->setData(genresQ.value(6), SubtitleRole); + item->setData(genresQ.value(4), SeriesPartRole); item->setFont(f); items << item; } @@ -278,9 +290,12 @@ void MovieWidget::topSelectionChanged(){ mBottomView->setRootIsDecorated(false); mBottomModel->clear(); QBrush blackBrush(Qt::black); + QBrush redBrush(Qt::darkRed); + QBrush greenBrush(Qt::darkGreen); + QBrush currentBrush = blackBrush; QSqlDatabase db = QSqlDatabase::database("treedb"); QSqlQuery selectFilesQ(db); - selectFilesQ.prepare("SELECT tfilename, cmd5sum, bisize, siquality, iduration, sifileno FROM files WHERE iseriespart_id = :arg ORDER BY sifileno"); + selectFilesQ.prepare("SELECT tfilename, cmd5sum, bisize, siquality, iduration, sifileno, idvd FROM files WHERE iseriespart_id = :arg ORDER BY sifileno"); QModelIndexList selected = mTopView->selectionModel()->selectedRows(); if(selected.isEmpty()){ return; @@ -288,16 +303,45 @@ void MovieWidget::topSelectionChanged(){ if(selected.first().isValid()){ QFont f("courier new"); QStandardItem *root = mBottomModel->invisibleRootItem(); - mBottomModel->setHorizontalHeaderLabels(QStringList() << tr("Name") << tr("No.") << tr("Q.") << tr("Size") << tr("Dur.") << tr("MD5")); + mBottomModel->setHorizontalHeaderLabels(QStringList() << tr("Name") << tr("No.") << tr("Q.") << tr("Size") << tr("Dur.") << tr("MD5") << tr("Where")); selectFilesQ.bindValue(":arg", selected.first().data(SeriesPartIdRole)); selectFilesQ.exec(); QLocale l; while(selectFilesQ.next()){ QList<QStandardItem*> items; - for(int i = 0; i < 6; ++i){ + QString whereStr; + QString fileName = selectFilesQ.value(0).toString(); + QString md5 = selectFilesQ.value(1).toString(); + QString fullPath; + int dvdno = selectFilesQ.value(6).toInt(); + if(dvdno == -1){ + QString fp = Helper::createArchivePath(fileName, md5); + QFileInfo fi(fp); + if(!fi.exists()){ + whereStr = QString("Missing: %1").arg(fp); + currentBrush = redBrush; + }else{ + currentBrush = greenBrush; + fullPath = fp; + whereStr = fp; + } + } + if(dvdno > 0){ + QString fp = Helper::createUSBPath(fileName, selected.first().data(SeriesNameRole).toString(), selected.first().data(SubtitleRole).toString(), dvdno, selected.first().data(SeriesPartRole).toInt()); + QFileInfo fi(fp); + if(fi.exists()){ + whereStr = fp; + currentBrush = greenBrush; + fullPath = fp; + }else{ + whereStr = QString("DVD #%1").arg(QString::number(dvdno)); + } + } + for(int i = 0; i < 7; ++i){ QStandardItem *item = new QStandardItem; item->setFont(f); - item->setForeground(blackBrush); + item->setForeground(currentBrush); + item->setData(fullPath, FullPathRole); items << item; } items[0]->setText(selectFilesQ.value(0).toString()); @@ -319,6 +363,7 @@ void MovieWidget::topSelectionChanged(){ items[4]->setTextAlignment(Qt::AlignRight | Qt::AlignVCenter); items[4]->setText(Helper::durationFromSecs(selectFilesQ.value(4).toLongLong())); items[5]->setText(selectFilesQ.value(1).toString()); + items[6]->setText(whereStr); root->appendRow(items); } } |