summaryrefslogtreecommitdiffstats
path: root/archivecontroller.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'archivecontroller.cpp')
-rw-r--r--archivecontroller.cpp71
1 files changed, 58 insertions, 13 deletions
diff --git a/archivecontroller.cpp b/archivecontroller.cpp
index d13eb14..087fd67 100644
--- a/archivecontroller.cpp
+++ b/archivecontroller.cpp
@@ -289,21 +289,63 @@ void ArchiveController::setMetadata(QTextEdit *metaEdit){
void ArchiveController::getMetadata(QSet<int> ids){
mMetaEdit->clear();
- QList<QVariant> metadata = mArchiveModel->metadataList(*ids.begin());
+ if(ids.isEmpty()){
+ return;
+ }
+
QString meta;
- meta.append("<html><body style=\"font-family: courier new; font-weight: bold\"><table>");
- meta.append(QString("<tr><td>Release year</td><td style=\"padding-left: 30px\">%1</td></tr>").arg(metadata.at(ArchiveModel::ReleaseYear).toString()));
- meta.append(QString("<tr><td>Source</td><td style=\"padding-left: 30px\">%1</td></tr>").arg(metadata.at(ArchiveModel::Source).toString()));
- meta.append(QString("<tr><td>Subj./Name</td><td style=\"padding-left: 30px\">%1</td></tr>").arg(metadata.at(ArchiveModel::Subject).toString()));
- meta.append(QString("<tr><td>Added</td><td style=\"padding-left: 30px\">%1</td></tr>").arg(metadata.at(ArchiveModel::Added).toDateTime().toString()));
-
- meta.append("</table>");
- QString comment = metadata.at(ArchiveModel::Comment).toString();
- if(comment.isEmpty()){
- comment = tr("(none)");
+
+ if(ids.size() == 1){
+ QList<QVariant> metadata = mArchiveModel->metadataList(*ids.begin());
+ if(metadata.at(0).isValid()){
+ meta.append("<html><body style=\"font-family: courier new; font-weight: bold\"><table>");
+ meta.append(QString("<tr><td>Release year</td><td style=\"padding-left: 30px\">%1</td></tr>").arg(metadata.at(ArchiveModel::ReleaseYear).toString()));
+ meta.append(QString("<tr><td>Source</td><td style=\"padding-left: 30px\">%1</td></tr>").arg(metadata.at(ArchiveModel::Source).toString()));
+ meta.append(QString("<tr><td>Subj./Name</td><td style=\"padding-left: 30px\">%1</td></tr>").arg(metadata.at(ArchiveModel::Subject).toString()));
+ meta.append(QString("<tr><td>Added</td><td style=\"padding-left: 30px\">%1</td></tr>").arg(metadata.at(ArchiveModel::Added).toDateTime().toString()));
+
+ meta.append("</table>");
+ QString comment = metadata.at(ArchiveModel::Comment).toString();
+ if(comment.isEmpty()){
+ comment = tr("(none)");
+ }
+ meta.append(QString("<p style=\"font-style: italic; margin-bottom: 0px\">Comments:</p><p style=\"margin-left: 10px; margin-top: 0px\">%1</p>").arg(comment));
+ meta.append("</body></html>");
+ }else{
+ meta = tr("No metadata available");
+ }
+ }else{
+ QStringList tmpH;
+ for(int i = 0; i < ArchiveFilesModel::NumFields; ++i){
+ tmpH << "";
+ }
+ tmpH.reserve(ArchiveFilesModel::NumFields);
+ ArchiveFilesModel tmpFModel(tmpH, this);
+ tmpFModel.populate(ids);
+ quint64 totalSize = tmpFModel.totalSize();
+ QString sizeStr;
+ QLocale l;
+ if(totalSize / 1024 / 1024 / 1024 > 0){ //display GB
+ double ts = (double)totalSize / 1024.0 / 1024.0 / 1024.0;
+ sizeStr = QString("%1 GB").arg(l.toString(ts));
+ }else if(totalSize / 1024 / 1024 > 0){ //display MB
+ double ts = (double)totalSize / 1024.0 / 1024.0;
+ sizeStr = QString("%1 MB").arg(l.toString(ts));
+ }else if(totalSize == 0){
+ sizeStr = tr("n/a");
+ }
+ meta.append("<html><body style=\"font-family: courier new; font-weight: bold\"><table>");
+ meta.append(QString("<tr><td>Total Size</td><td style=\"padding-left: 30px\">%1</td></tr>").arg(sizeStr));
+ quint64 totalDur = tmpFModel.totalDuration();
+ Helper::Duration dur(totalDur);
+ meta.append(QString("<tr><td>Total Duration</td><td style=\"padding-left: 30px\">%1</td></tr>").arg(dur.toString()));
+ int moviefiles = tmpFModel.movieFilesCount();
+ meta.append(QString("<tr><td>Movie files</td><td style=\"padding-left: 30px\">%1</td></tr>").arg(QString::number(moviefiles)));
+ int otherfiles = tmpFModel.otherFilesCount();
+ meta.append(QString("<tr><td>Other files</td><td style=\"padding-left: 30px\">%1</td></tr>").arg(QString::number(otherfiles)));
+ meta.append("</table>");
+ meta.append("</body></html>");
}
- meta.append(QString("<p style=\"font-style: italic; margin-bottom: 0px\">Comments:</p><p style=\"margin-left: 10px; margin-top: 0px\">%1</p>").arg(comment));
- meta.append("</body></html>");
mMetaEdit->setHtml(meta);
}
@@ -317,7 +359,9 @@ void ArchiveController::fileSelectionChanged(const QItemSelection &selected, con
qint64 size = 0;
qint64 duration = 0;
bool maybeMore = false;
+ QSet<int> seriesParts;
foreach(QModelIndex i, sel){
+ seriesParts << i.data(ArchiveFilesModel::SeriesPartIdRole).toInt();
size += i.data(ArchiveFilesModel::SizeRole).toInt();
int type = i.data(ArchiveFilesModel::FileTypeRole).toInt();
if(type == FT_MOVIE){
@@ -328,6 +372,7 @@ void ArchiveController::fileSelectionChanged(const QItemSelection &selected, con
}
}
}
+ getMetadata(seriesParts);
emit sizeChanged(size);
emit durationChanged(duration, maybeMore);
}