diff --git a/CMakeLists.txt b/CMakeLists.txt index 91f4efc..f996440 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -215,7 +215,7 @@ if(WIDGETS_GUI OR QUICK_GUI) endif() # find tagparser -find_package(tagparser 6.2.0 REQUIRED) +find_package(tagparser 6.4.0 REQUIRED) use_tag_parser() list(APPEND TEST_LIBRARIES ${TAG_PARSER_SHARED_LIB}) diff --git a/gui/fileinfomodel.cpp b/gui/fileinfomodel.cpp index d893d20..9d27d1d 100644 --- a/gui/fileinfomodel.cpp +++ b/gui/fileinfomodel.cpp @@ -355,7 +355,12 @@ void FileInfoModel::updateCache() if(!tracks.empty()) { auto *tracksItem = defaultItem(tr("Tracks")); setItem(++currentRow, tracksItem); - setItem(currentRow, 1, defaultItem(tr("%1 track(s) contained", 0, tracks.size()).arg(tracks.size()))); + const string summary(m_file->technicalSummary()); + if(summary.empty()) { + setItem(currentRow, 1, defaultItem(tr("%1 track(s) contained", 0, tracks.size()).arg(tracks.size()))); + } else { + setItem(currentRow, 1, defaultItem(tr("%1 track(s): ", 0, tracks.size()).arg(tracks.size()) + QString::fromUtf8(summary.data(), summary.size()))); + } size_t number = 0; for(const AbstractTrack *track : tracks) { @@ -381,7 +386,9 @@ void FileInfoModel::updateCache() } } fmtName = track->format().extensionName(); - trackHelper.appendRow(tr("Extension"), fmtName); + if(*fmtName) { + trackHelper.appendRow(tr("Extension"), fmtName); + } trackHelper.appendRow(tr("Format/codec ID"), track->formatId()); trackHelper.appendRow(tr("Size"), track->size()); trackHelper.appendRow(tr("Duration"), track->duration()); @@ -574,6 +581,7 @@ void FileInfoModel::updateCache() ; } setItem(++currentRow, structureItem); + setItem(currentRow, 1, defaultItem(QString())); } break; default: diff --git a/misc/htmlinfo.cpp b/misc/htmlinfo.cpp index 84b0a5d..cb69967 100644 --- a/misc/htmlinfo.cpp +++ b/misc/htmlinfo.cpp @@ -485,6 +485,12 @@ public: m_writer.writeCharacters(QStringLiteral(" ")); } + void mkBreak() + { + m_writer.writeStartElement(QStringLiteral("br")); + m_writer.writeEndElement(); + } + void mkDetailsLink(const QString &id, const QString &text) { m_writer.writeStartElement(QStringLiteral("a")); @@ -881,7 +887,6 @@ public: m_rowMaker.endRow(); m_writer.writeEndElement(); - // container if(container || m_file.paddingSize()) { startExtendedTableSection(QStringLiteral("containerMore")); @@ -955,6 +960,12 @@ public: const QString moreId(QStringLiteral("tracksMore")); m_rowMaker.startRow(QCoreApplication::translate("HtmlInfo", "Tracks")); m_writer.writeCharacters(QCoreApplication::translate("HtmlInfo", "file has %1 track(s)", 0, tracks.size()).arg(tracks.size())); + const string summary(m_file.technicalSummary()); + if(!summary.empty()) { + m_writer.writeCharacters(QStringLiteral(": ")); + m_writer.writeCharacters(QString::fromUtf8(summary.data(), summary.size())); + mkBreak(); + } mkSpace(); mkDetailsLink(moreId, QCoreApplication::translate("HtmlInfo", "show details")); m_rowMaker.endRow();