#include "reader.h"
#include "odometer.h"
#include "graphicsscene.h"
+#include "poialerts.h"
namespace
{
{
{"xpos", true},
{"ypos", true},
+ {"zpos", true},
+ {"visiblewhen", false},
{"data", false},
{"format", false},
{"width", true},
{"bold", false},
{"italic", false},
{"uppercase", false},
- {"letterspacing", true}
+ {"letterspacing", true},
+ {"timeformat", false},
+ {"dateformat", false}
};
const QString FIELDS[TextElement::FIELD_COUNT] = {"TRIP", "TOTAL", "SPEED",
"MAXSPEED", "AVGSPEED",
- "UNIT", "SPEEDUNIT", "TIME"};
+ "UNIT", "SPEEDUNIT", "TIME", "DATE",
+ "POIDISTANCE", "ANGLE", "LATITUDE",
+ "LONGITUDE", "ALTITUDE", "DISTANCEUNIT"};
}
TextElement::TextElement(Reader* reader): GraphicsElement(reader),
-data_(""), format_(""), align_("left"), fontSize_(16), bold_(false), italic_(false),
+data_(""), format_(""), align_("left"), timeFormat_("hh:mm"),
+dateFormat_("dd.MM.yyyy"), fontSize_(16), bold_(false), italic_(false),
uppercase_(false), letterSpacing_(0)
{
element_ = new QGraphicsTextItem();
case YPOS:
element_->setY(intVal);
break;
+ case ZPOS:
+ element_->setZValue(intVal);
+ break;
+ case VISIBLEWHEN:
+ setVisibleWhen(strToVisibleWhen(value));
+ break;
case DATA:
data_ = value;
break;
letterSpacing_ = intVal;
fontChanged = true;
break;
+ case TIMEFORMAT:
+ timeFormat_ = value;
+ break;
+ case DATEFORMAT:
+ dateFormat_ = value;
+ break;
default:
qDebug() << "Unknown attribute: " << attr;
return false;
replaceValue(value, f, o->getSpeedUnit());
break;
case TIME:
- replaceValue(value, f, QTime::currentTime().toString("hh:mm"));
+ replaceValue(value, f, QTime::currentTime().toString(timeFormat_));
+ break;
+ case DATE:
+ replaceValue(value, f, QDate::currentDate().toString(dateFormat_));
+ break;
+ case POIDISTANCE:
+ replaceValue(value, f, handleEmpty(PoiAlerts::instance().getCurrentDistance()));
+ break;
+ case ANGLE:
+ replaceValue(value, f, formatString(o->getLatestFix().track));
+ break;
+ case LATITUDE:
+ replaceValue(value, f, handleEmpty(o->getLatestFix().latitude));
+ break;
+ case LONGITUDE:
+ replaceValue(value, f, handleEmpty(o->getLatestFix().longitude));
+ break;
+ case ALTITUDE:
+ replaceValue(value, f, handleEmpty(o->getLatestFix().altitude));
+ break;
+ case DISTANCEUNIT:
+ replaceValue(value, f, o->getMeterUnit());
break;
default:
qDebug() << "Unknown field: " << f;
}
}
+QString TextElement::handleEmpty(double value)
+{
+ if(value < 0.01)
+ {
+ return "";
+ }
+
+ return formatString(value);
+}
+
void TextElement::replaceValue(QString& value,
TextElement::Field field,
QString const& replace)