{"size", true},
{"font", false},
{"bold", false},
- {"italic", false}
+ {"italic", false},
+ {"uppercase", false},
+ {"letterspacing", true}
};
const QString FIELDS[TextElement::FIELD_COUNT] = {"TRIP", "TOTAL", "SPEED",
}
TextElement::TextElement(Reader* reader): GraphicsElement(reader),
-data_(""), format_(""), align_("left"), fontSize_(16), bold_(false), italic_(false)
+data_(""), format_(""), align_("left"), fontSize_(16), bold_(false), italic_(false),
+uppercase_(false), letterSpacing_(0)
{
element_ = new QGraphicsTextItem();
}
fontChanged = true;
}
break;
+ case UPPERCASE:
+ if(value != "false" && value != "0")
+ {
+ uppercase_ = true;
+ }
+ break;
+ case LETTERSPACING:
+ letterSpacing_ = intVal;
+ fontChanged = true;
+ break;
default:
qDebug() << "Unknown attribute: " << attr;
return false;
if(fontChanged)
{
- if(!fontFile_.isEmpty())
- {
- QFont font;
-
- if(getFont(fontFile_, font))
- {
- font.setPointSize(fontSize_);
-
- if(bold_)
- {
- font.setBold(true);
- }
- if(italic_)
- {
- font.setItalic(true);
- }
- element_->setFont(font);
- }
- else
- {
- return false;
- }
- }
- else
- {
- QFont font("Default");
-
- if(bold_)
- {
- font.setBold(true);
- }
- if(italic_)
- {
- font.setItalic(true);
- }
-
- font.setPointSize(fontSize_);
- element_->setFont(font);
- }
+ return applyFont();
}
return true;
}
}
+bool TextElement::applyFont()
+{
+ QFont font;
+
+ if(!fontFile_.isEmpty())
+ {
+ if(!getFont(fontFile_, font))
+ {
+ return false;
+ }
+ }
+
+ font.setPointSize(fontSize_);
+
+ if(bold_)
+ {
+ font.setBold(true);
+ }
+
+ if(italic_)
+ {
+ font.setItalic(true);
+ }
+
+ if(letterSpacing_)
+ {
+ font.setLetterSpacing(QFont::PercentageSpacing, letterSpacing_);
+ }
+
+ element_->setFont(font);
+
+ return true;
+}
+
void TextElement::addToScene(GraphicsScene* scene)
{
specialFields_.clear();
updateHtml(replaced);
}
-void TextElement::updateHtml(QString const& data)
+void TextElement::updateHtml(QString data)
{
+ if(uppercase_)
+ {
+ data = data.toUpper();
+ }
+
element_->setHtml("<div align='"+align_+"'>"+data+"</div>");
}