diff options
author | Arno <arno@disconnect.de> | 2016-11-06 06:07:07 +0100 |
---|---|---|
committer | Arno <arno@disconnect.de> | 2016-11-06 06:07:07 +0100 |
commit | aea54efd00c1cbd0f66bcda83e9c7a196d3c317b (patch) | |
tree | 26b3e7586420f5ef490faf60a466a51560446a44 /archivecontroller.cpp | |
parent | 6274b353c2f22703371e4751b6cb7f96a38d94e9 (diff) | |
download | SheMov-aea54efd00c1cbd0f66bcda83e9c7a196d3c317b.tar.gz SheMov-aea54efd00c1cbd0f66bcda83e9c7a196d3c317b.tar.bz2 SheMov-aea54efd00c1cbd0f66bcda83e9c7a196d3c317b.zip |
Kinda fix display of metadata
If a seriespart is selected in the tree, display a summary.
When a file is selected, display the actual metadata.
It's much more consistent. Before, the metadata of the first *item in the
selected list was displayed.
Diffstat (limited to 'archivecontroller.cpp')
-rw-r--r-- | archivecontroller.cpp | 71 |
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); } |