mirror of
https://github.com/riuson/lcd-image-converter.git
synced 2026-03-03 06:44:13 +01:00
Scope enum for tags
This commit is contained in:
@@ -34,7 +34,7 @@
|
||||
#include "imageoptions.h"
|
||||
#include "fontoptions.h"
|
||||
#include "templateoptions.h"
|
||||
#include "tags.h"
|
||||
#include "tagslist.h"
|
||||
#include "parsedimagedata.h"
|
||||
#include "revisioninfo.h"
|
||||
|
||||
@@ -123,7 +123,7 @@ Parser::~Parser()
|
||||
{
|
||||
}
|
||||
|
||||
QString Parser::convert(Data::Containers::IDocument *document, const QStringList &orderedKeys, QMap<QString, ParsedImageData *> *images, Tags &tags) const
|
||||
QString Parser::convert(Data::Containers::IDocument *document, const QStringList &orderedKeys, QMap<QString, ParsedImageData *> *images, TagsList &tags) const
|
||||
{
|
||||
QString result;
|
||||
|
||||
@@ -141,16 +141,16 @@ QString Parser::convert(Data::Containers::IDocument *document, const QStringList
|
||||
file.close();
|
||||
}
|
||||
|
||||
tags.setTagValue(Tags::TemplateFilename, file.fileName());
|
||||
tags.setTagValue(TagsList::Tag::TemplateFilename, file.fileName());
|
||||
|
||||
QString prefix, suffix;
|
||||
this->imageDataParticles(templateString, &prefix, &suffix);
|
||||
tags.setTagValue(Tags::OutputDataIndent, prefix);
|
||||
tags.setTagValue(Tags::OutputDataEOL, suffix);
|
||||
tags.setTagValue(TagsList::Tag::OutputDataIndent, prefix);
|
||||
tags.setTagValue(TagsList::Tag::OutputDataEOL, suffix);
|
||||
|
||||
this->imagePreviewParticles(templateString, &prefix, &suffix);
|
||||
tags.setTagValue(Tags::OutputPreviewIndent, prefix);
|
||||
tags.setTagValue(Tags::OutputPreviewEOL, suffix);
|
||||
tags.setTagValue(TagsList::Tag::OutputPreviewIndent, prefix);
|
||||
tags.setTagValue(TagsList::Tag::OutputPreviewEOL, suffix);
|
||||
|
||||
this->addCommonInfo(tags);
|
||||
this->addMatrixInfo(tags);
|
||||
@@ -162,14 +162,14 @@ QString Parser::convert(Data::Containers::IDocument *document, const QStringList
|
||||
}
|
||||
|
||||
QString Parser::parse(const QString &templateString,
|
||||
Tags &tags,
|
||||
TagsList &tags,
|
||||
Data::Containers::IDocument *doc,
|
||||
const QStringList &orderedKeys,
|
||||
QMap<QString, ParsedImageData *> *images) const
|
||||
{
|
||||
QString result;
|
||||
|
||||
Tags::TagsEnum tagKey = Tags::Unknown;
|
||||
TagsList::Tag tagKey = TagsList::Tag::Unknown;
|
||||
int lastIndex = 0, foundIndex = 0, nextIndex = 0;
|
||||
QString content;
|
||||
|
||||
@@ -179,14 +179,14 @@ QString Parser::parse(const QString &templateString,
|
||||
}
|
||||
|
||||
switch (tagKey) {
|
||||
case Tags::BlocksHeaderStart:
|
||||
case Tags::BlocksFontDefinitionStart: {
|
||||
case TagsList::Tag::BlocksHeaderStart:
|
||||
case TagsList::Tag::BlocksFontDefinitionStart: {
|
||||
QString temp = this->parse(content, tags, doc, orderedKeys, images);
|
||||
result.append(temp);
|
||||
break;
|
||||
}
|
||||
|
||||
case Tags::BlocksImagesTableStart: {
|
||||
case TagsList::Tag::BlocksImagesTableStart: {
|
||||
QString temp = this->parseImagesTable(content, tags, doc, orderedKeys, images);
|
||||
result.append(temp);
|
||||
break;
|
||||
@@ -209,7 +209,7 @@ QString Parser::parse(const QString &templateString,
|
||||
}
|
||||
|
||||
QString Parser::parseImagesTable(const QString &templateString,
|
||||
Tags &tags,
|
||||
TagsList &tags,
|
||||
Data::Containers::IDocument *doc,
|
||||
const QStringList &orderedKeys,
|
||||
QMap<QString, ParsedImageData *> *images) const
|
||||
@@ -228,9 +228,9 @@ QString Parser::parseImagesTable(const QString &templateString,
|
||||
tags.importValues(data->tags());
|
||||
|
||||
if (it.hasNext()) {
|
||||
tags.setTagValue(Tags::OutputComma, ",");
|
||||
tags.setTagValue(TagsList::Tag::OutputComma, ",");
|
||||
} else {
|
||||
tags.setTagValue(Tags::OutputComma, "");
|
||||
tags.setTagValue(TagsList::Tag::OutputComma, "");
|
||||
}
|
||||
|
||||
QString imageString = this->parse(templateString, tags, doc, orderedKeys, images);
|
||||
@@ -297,99 +297,99 @@ QString Parser::hexCode(const QString &key, const QString &encoding, bool bom) c
|
||||
return result;
|
||||
}
|
||||
|
||||
void Parser::addMatrixInfo(Tags &tags) const
|
||||
void Parser::addMatrixInfo(TagsList &tags) const
|
||||
{
|
||||
// byte order
|
||||
if (this->mPreset->image()->bytesOrder() == Parsing::Conversion::Options::BytesOrder::LittleEndian) {
|
||||
tags.setTagValue(Tags::ImageByteOrder, "little-endian");
|
||||
tags.setTagValue(TagsList::Tag::ImageByteOrder, "little-endian");
|
||||
} else {
|
||||
tags.setTagValue(Tags::ImageByteOrder, "big-endian");
|
||||
tags.setTagValue(TagsList::Tag::ImageByteOrder, "big-endian");
|
||||
}
|
||||
|
||||
// data block size
|
||||
int dataBlockSize = (static_cast<int>(this->mPreset->image()->blockSize()) + 1) * 8;
|
||||
tags.setTagValue(Tags::ImageBlockSize, QString("%1").arg(dataBlockSize));
|
||||
tags.setTagValue(TagsList::Tag::ImageBlockSize, QString("%1").arg(dataBlockSize));
|
||||
|
||||
// scan main direction
|
||||
switch (this->mPreset->prepare()->scanMain()) {
|
||||
case Parsing::Conversion::Options::ScanMainDirection::TopToBottom:
|
||||
tags.setTagValue(Tags::PrepareScanMain, "top_to_bottom");
|
||||
tags.setTagValue(TagsList::Tag::PrepareScanMain, "top_to_bottom");
|
||||
break;
|
||||
|
||||
case Parsing::Conversion::Options::ScanMainDirection::BottomToTop:
|
||||
tags.setTagValue(Tags::PrepareScanMain, "bottom_to_top");
|
||||
tags.setTagValue(TagsList::Tag::PrepareScanMain, "bottom_to_top");
|
||||
break;
|
||||
|
||||
case Parsing::Conversion::Options::ScanMainDirection::LeftToRight:
|
||||
tags.setTagValue(Tags::PrepareScanMain, "left_to_right");
|
||||
tags.setTagValue(TagsList::Tag::PrepareScanMain, "left_to_right");
|
||||
break;
|
||||
|
||||
case Parsing::Conversion::Options::ScanMainDirection::RightToLeft:
|
||||
tags.setTagValue(Tags::PrepareScanMain, "right_to_left");
|
||||
tags.setTagValue(TagsList::Tag::PrepareScanMain, "right_to_left");
|
||||
break;
|
||||
}
|
||||
|
||||
// scan sub direction
|
||||
if (this->mPreset->prepare()->scanSub() == Parsing::Conversion::Options::ScanSubDirection::Forward) {
|
||||
tags.setTagValue(Tags::PrepareScanSub, "forward");
|
||||
tags.setTagValue(TagsList::Tag::PrepareScanSub, "forward");
|
||||
} else {
|
||||
tags.setTagValue(Tags::PrepareScanSub, "backward");
|
||||
tags.setTagValue(TagsList::Tag::PrepareScanSub, "backward");
|
||||
}
|
||||
|
||||
// bands
|
||||
if (this->mPreset->prepare()->bandScanning()) {
|
||||
tags.setTagValue(Tags::PrepareUseBands, "yes");
|
||||
tags.setTagValue(TagsList::Tag::PrepareUseBands, "yes");
|
||||
} else {
|
||||
tags.setTagValue(Tags::PrepareUseBands, "no");
|
||||
tags.setTagValue(TagsList::Tag::PrepareUseBands, "no");
|
||||
}
|
||||
|
||||
int bandWidth = this->mPreset->prepare()->bandWidth();
|
||||
tags.setTagValue(Tags::PrepareBandWidth, QString("%1").arg(bandWidth));
|
||||
tags.setTagValue(TagsList::Tag::PrepareBandWidth, QString("%1").arg(bandWidth));
|
||||
|
||||
// inversion
|
||||
if (this->mPreset->prepare()->inverse()) {
|
||||
tags.setTagValue(Tags::PrepareInverse, "yes");
|
||||
tags.setTagValue(TagsList::Tag::PrepareInverse, "yes");
|
||||
} else {
|
||||
tags.setTagValue(Tags::PrepareInverse, "no");
|
||||
tags.setTagValue(TagsList::Tag::PrepareInverse, "no");
|
||||
}
|
||||
|
||||
// bom
|
||||
if (this->mPreset->font()->bom()) {
|
||||
tags.setTagValue(Tags::FontUseBom, "yes");
|
||||
tags.setTagValue(TagsList::Tag::FontUseBom, "yes");
|
||||
} else {
|
||||
tags.setTagValue(Tags::FontUseBom, "no");
|
||||
tags.setTagValue(TagsList::Tag::FontUseBom, "no");
|
||||
}
|
||||
|
||||
// encoding
|
||||
tags.setTagValue(Tags::FontEncoding, this->mPreset->font()->encoding());
|
||||
tags.setTagValue(TagsList::Tag::FontEncoding, this->mPreset->font()->encoding());
|
||||
|
||||
// split to rows
|
||||
if (this->mPreset->image()->splitToRows()) {
|
||||
tags.setTagValue(Tags::ImageSplitToRows, "yes");
|
||||
tags.setTagValue(TagsList::Tag::ImageSplitToRows, "yes");
|
||||
} else {
|
||||
tags.setTagValue(Tags::ImageSplitToRows, "no");
|
||||
tags.setTagValue(TagsList::Tag::ImageSplitToRows, "no");
|
||||
}
|
||||
|
||||
// compression
|
||||
if (this->mPreset->image()->compressionRle()) {
|
||||
tags.setTagValue(Tags::ImageRleCompression, "yes");
|
||||
tags.setTagValue(TagsList::Tag::ImageRleCompression, "yes");
|
||||
} else {
|
||||
tags.setTagValue(Tags::ImageRleCompression, "no");
|
||||
tags.setTagValue(TagsList::Tag::ImageRleCompression, "no");
|
||||
}
|
||||
|
||||
// preset name
|
||||
tags.setTagValue(Tags::OutputPresetName, this->mPreset->name());
|
||||
tags.setTagValue(TagsList::Tag::OutputPresetName, this->mPreset->name());
|
||||
|
||||
// conversion type
|
||||
tags.setTagValue(Tags::PrepareConversionType, this->mPreset->prepare()->convTypeName());
|
||||
tags.setTagValue(TagsList::Tag::PrepareConversionType, this->mPreset->prepare()->convTypeName());
|
||||
|
||||
// monochrome type
|
||||
if (this->mPreset->prepare()->convType() == Parsing::Conversion::Options::ConversionType::Monochrome) {
|
||||
tags.setTagValue(Tags::PrepareMonoType, this->mPreset->prepare()->monoTypeName());
|
||||
tags.setTagValue(Tags::PrepareMonoEdge, QString("%1").arg(this->mPreset->prepare()->edge()));
|
||||
tags.setTagValue(TagsList::Tag::PrepareMonoType, this->mPreset->prepare()->monoTypeName());
|
||||
tags.setTagValue(TagsList::Tag::PrepareMonoEdge, QString("%1").arg(this->mPreset->prepare()->edge()));
|
||||
} else {
|
||||
tags.setTagValue(Tags::PrepareMonoType, "not_used");
|
||||
tags.setTagValue(Tags::PrepareMonoEdge, "not_used");
|
||||
tags.setTagValue(TagsList::Tag::PrepareMonoType, "not_used");
|
||||
tags.setTagValue(TagsList::Tag::PrepareMonoEdge, "not_used");
|
||||
}
|
||||
|
||||
// bits per pixel
|
||||
@@ -404,10 +404,10 @@ void Parser::addMatrixInfo(Tags &tags) const
|
||||
maskUsed = maskUsed >> 1;
|
||||
}
|
||||
|
||||
tags.setTagValue(Tags::OutputBitsPerPixel, QString("%1").arg(bitsPerPixel));
|
||||
tags.setTagValue(TagsList::Tag::OutputBitsPerPixel, QString("%1").arg(bitsPerPixel));
|
||||
}
|
||||
|
||||
void Parser::addImagesInfo(Tags &tags, QMap<QString, ParsedImageData *> *images) const
|
||||
void Parser::addImagesInfo(TagsList &tags, QMap<QString, ParsedImageData *> *images) const
|
||||
{
|
||||
QListIterator<QString> it(images->keys());
|
||||
it.toFront();
|
||||
@@ -420,13 +420,13 @@ void Parser::addImagesInfo(Tags &tags, QMap<QString, ParsedImageData *> *images)
|
||||
|
||||
if (data != nullptr) {
|
||||
bool ok;
|
||||
int width = data->tags()->tagValue(Tags::OutputImageWidth).toInt(&ok);
|
||||
int width = data->tags()->tagValue(TagsList::Tag::OutputImageWidth).toInt(&ok);
|
||||
|
||||
if (ok) {
|
||||
int height = data->tags()->tagValue(Tags::OutputImageHeight).toInt(&ok);
|
||||
int height = data->tags()->tagValue(TagsList::Tag::OutputImageHeight).toInt(&ok);
|
||||
|
||||
if (ok) {
|
||||
int blocksCount = data->tags()->tagValue(Tags::OutputBlocksCount).toInt(&ok);
|
||||
int blocksCount = data->tags()->tagValue(TagsList::Tag::OutputBlocksCount).toInt(&ok);
|
||||
|
||||
if (ok) {
|
||||
if (width > maxWidth) {
|
||||
@@ -445,21 +445,21 @@ void Parser::addImagesInfo(Tags &tags, QMap<QString, ParsedImageData *> *images)
|
||||
}
|
||||
|
||||
// apply imageParticles to outputImageData
|
||||
data->tags()->setTagValue(Tags::OutputImageData, data->outputImageDataWithEOL(tags));
|
||||
data->tags()->setTagValue(Tags::OutputImagePreview, data->outputImagePreviewWithEOL(tags));
|
||||
data->tags()->setTagValue(TagsList::Tag::OutputImageData, data->outputImageDataWithEOL(tags));
|
||||
data->tags()->setTagValue(TagsList::Tag::OutputImagePreview, data->outputImagePreviewWithEOL(tags));
|
||||
}
|
||||
}
|
||||
|
||||
tags.setTagValue(Tags::OutputImagesCount, QString("%1").arg(images->count()));
|
||||
tags.setTagValue(Tags::OutputImagesMaxWidth, QString("%1").arg(maxWidth));
|
||||
tags.setTagValue(Tags::OutputImagesMaxHeight, QString("%1").arg(maxHeight));
|
||||
tags.setTagValue(Tags::OutputImagesMaxBlocksCount, QString("%1").arg(maxBlocksCount));
|
||||
tags.setTagValue(TagsList::Tag::OutputImagesCount, QString("%1").arg(images->count()));
|
||||
tags.setTagValue(TagsList::Tag::OutputImagesMaxWidth, QString("%1").arg(maxWidth));
|
||||
tags.setTagValue(TagsList::Tag::OutputImagesMaxHeight, QString("%1").arg(maxHeight));
|
||||
tags.setTagValue(TagsList::Tag::OutputImagesMaxBlocksCount, QString("%1").arg(maxBlocksCount));
|
||||
}
|
||||
|
||||
void Parser::addCommonInfo(Tags &tags) const
|
||||
void Parser::addCommonInfo(TagsList &tags) const
|
||||
{
|
||||
tags.setTagValue(Tags::ApplicationDate, QString("%1").arg(VersionControl::RevisionInfo::date()));
|
||||
tags.setTagValue(Tags::ApplicationRevision, QString("%1").arg(VersionControl::RevisionInfo::hash_abbr()));
|
||||
tags.setTagValue(TagsList::Tag::ApplicationDate, QString("%1").arg(VersionControl::RevisionInfo::date()));
|
||||
tags.setTagValue(TagsList::Tag::ApplicationRevision, QString("%1").arg(VersionControl::RevisionInfo::hash_abbr()));
|
||||
}
|
||||
|
||||
void Parser::imageDataParticles(const QString &templateString, QString *prefix, QString *suffix) const
|
||||
|
||||
Reference in New Issue
Block a user