Display tag and index position in GUI

This commit is contained in:
Martchus 2018-01-31 21:04:15 +01:00
parent 7848b285b6
commit c9b3218c76
4 changed files with 31 additions and 2 deletions

View File

@ -1,4 +1,5 @@
#include "./fileinfomodel.h" #include "./fileinfomodel.h"
#include "../misc/utility.h"
#include <qtutilities/misc/conversion.h> #include <qtutilities/misc/conversion.h>
@ -326,6 +327,8 @@ void FileInfoModel::updateCache()
containerHelper.appendRow(tr("Document type"), container->documentType()); containerHelper.appendRow(tr("Document type"), container->documentType());
containerHelper.appendRow(tr("Document version"), container->doctypeVersion()); containerHelper.appendRow(tr("Document version"), container->doctypeVersion());
containerHelper.appendRow(tr("Document read version"), container->doctypeReadVersion()); containerHelper.appendRow(tr("Document read version"), container->doctypeReadVersion());
containerHelper.appendRow(tr("Tag position"), Utility::elementPositionToQString(container->determineTagPosition()));
containerHelper.appendRow(tr("Index position"), Utility::elementPositionToQString(container->determineIndexPosition()));
} }
containerHelper.appendRow(tr("Padding size"), m_file->paddingSize()); containerHelper.appendRow(tr("Padding size"), m_file->paddingSize());

View File

@ -1,4 +1,5 @@
#include "./htmlinfo.h" #include "./htmlinfo.h"
#include "./utility.h"
#include <tagparser/signature.h> #include <tagparser/signature.h>
#include <tagparser/mediafileinfo.h> #include <tagparser/mediafileinfo.h>
@ -115,6 +116,14 @@ public:
endRow(); endRow();
} }
void mkRow(const QString &label, ElementPosition elementPosition, bool head = true)
{
const auto asString(Utility::elementPositionToQString(elementPosition));
if (!asString.isEmpty()) {
mkRow(label, asString, head);
}
}
void mkRow(const QString &label, const QString &helpText, const QString &text) void mkRow(const QString &label, const QString &helpText, const QString &text)
{ {
startRow(label, helpText); startRow(label, helpText);
@ -923,6 +932,8 @@ public:
if(m_file.paddingSize()) { if(m_file.paddingSize()) {
rowMaker.mkRow(QCoreApplication::translate("HtmlInfo", "Padding size"), QStringLiteral("%1 (%2 %)").arg(qstr(dataSizeToString(m_file.paddingSize(), true))).arg(static_cast<double>(m_file.paddingSize()) / m_file.size() * 100.0, 0, 'g', 2)); rowMaker.mkRow(QCoreApplication::translate("HtmlInfo", "Padding size"), QStringLiteral("%1 (%2 %)").arg(qstr(dataSizeToString(m_file.paddingSize(), true))).arg(static_cast<double>(m_file.paddingSize()) / m_file.size() * 100.0, 0, 'g', 2));
} }
rowMaker.mkRow(QCoreApplication::translate("HtmlInfo", "Tag position"), container->determineTagPosition());
rowMaker.mkRow(QCoreApplication::translate("HtmlInfo", "Index position"), container->determineIndexPosition());
m_writer.writeEndElement(); m_writer.writeEndElement();
} }

View File

@ -11,6 +11,7 @@
#include <c++utilities/io/path.h> #include <c++utilities/io/path.h>
#include <QCoreApplication>
#include <QDir> #include <QDir>
#include <QFileInfo> #include <QFileInfo>
#include <QDirIterator> #include <QDirIterator>
@ -40,9 +41,8 @@ const char *textEncodingToCodecName(TagTextEncoding textEncoding)
return "UTF-16LE"; return "UTF-16LE";
case TagTextEncoding::Unspecified: case TagTextEncoding::Unspecified:
return "ISO 8859-1"; // assumption return "ISO 8859-1"; // assumption
default:
return nullptr;
} }
return nullptr;
} }
QString tagValueToQString(const TagValue &value) QString tagValueToQString(const TagValue &value)
@ -109,6 +109,19 @@ TagValue qstringToTagValue(const QString &value, TagTextEncoding textEncoding)
return value.isEmpty() ? TagValue() : TagValue(qstringToString(value, textEncoding), textEncoding); return value.isEmpty() ? TagValue() : TagValue(qstringToString(value, textEncoding), textEncoding);
} }
QString elementPositionToQString(ElementPosition elementPosition)
{
switch(elementPosition) {
case ElementPosition::BeforeData:
return QCoreApplication::translate("Utility", "before data");
case ElementPosition::AfterData:
return QCoreApplication::translate("Utility", "after data");
case ElementPosition::Keep:
;
}
return QString();
}
QString formatName(const QString &str, bool underscoreToWhitespace) QString formatName(const QString &str, bool underscoreToWhitespace)
{ {
QString res; QString res;

View File

@ -12,6 +12,7 @@ QT_FORWARD_DECLARE_CLASS(QModelIndex)
namespace Media { namespace Media {
class MediaFileInfo; class MediaFileInfo;
class Tag; class Tag;
enum class ElementPosition;
} }
namespace Utility { namespace Utility {
@ -22,6 +23,7 @@ QString dataToQString(const char *data, std::size_t dataSize, Media::TagTextEnco
QString stringToQString(const std::string &value, Media::TagTextEncoding textEncoding); QString stringToQString(const std::string &value, Media::TagTextEncoding textEncoding);
std::string qstringToString(const QString &value, Media::TagTextEncoding textEncoding); std::string qstringToString(const QString &value, Media::TagTextEncoding textEncoding);
Media::TagValue qstringToTagValue(const QString &value, Media::TagTextEncoding textEncoding); Media::TagValue qstringToTagValue(const QString &value, Media::TagTextEncoding textEncoding);
QString elementPositionToQString(Media::ElementPosition elementPosition);
QString formatName(const QString &str, bool underscoreToWhitespace = true); QString formatName(const QString &str, bool underscoreToWhitespace = true);
QString fixUmlauts(const QString &str); QString fixUmlauts(const QString &str);
void parseFileName(const QString &fileName, QString &title, int &trackNumber); void parseFileName(const QString &fileName, QString &title, int &trackNumber);