Scope enum for tags

This commit is contained in:
Vladimir
2017-12-18 21:35:21 +05:00
parent ab1acea3e1
commit 1097feb17b
14 changed files with 357 additions and 357 deletions

View File

@@ -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