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 "../misc/utility.h"
#include <qtutilities/misc/conversion.h>
@ -326,6 +327,8 @@ void FileInfoModel::updateCache()
containerHelper.appendRow(tr("Document type"), container->documentType());
containerHelper.appendRow(tr("Document version"), container->doctypeVersion());
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());

View File

@ -1,4 +1,5 @@
#include "./htmlinfo.h"
#include "./utility.h"
#include <tagparser/signature.h>
#include <tagparser/mediafileinfo.h>
@ -115,6 +116,14 @@ public:
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)
{
startRow(label, helpText);
@ -923,6 +932,8 @@ public:
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", "Tag position"), container->determineTagPosition());
rowMaker.mkRow(QCoreApplication::translate("HtmlInfo", "Index position"), container->determineIndexPosition());
m_writer.writeEndElement();
}

View File

@ -11,6 +11,7 @@
#include <c++utilities/io/path.h>
#include <QCoreApplication>
#include <QDir>
#include <QFileInfo>
#include <QDirIterator>
@ -40,9 +41,8 @@ const char *textEncodingToCodecName(TagTextEncoding textEncoding)
return "UTF-16LE";
case TagTextEncoding::Unspecified:
return "ISO 8859-1"; // assumption
default:
return nullptr;
}
return nullptr;
}
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);
}
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 res;

View File

@ -12,6 +12,7 @@ QT_FORWARD_DECLARE_CLASS(QModelIndex)
namespace Media {
class MediaFileInfo;
class Tag;
enum class ElementPosition;
}
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);
std::string qstringToString(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 fixUmlauts(const QString &str);
void parseFileName(const QString &fileName, QString &title, int &trackNumber);