Fixed some problems with effect-enabled texts from not being displayed. Default theme...
[jspeed] / src / textelement.cpp
index 0187866..1c49b7c 100644 (file)
@@ -38,7 +38,9 @@ namespace
      {"align", false},
      {"color", false},
      {"size", true},
-     {"font", false}
+     {"font", false},
+     {"bold", false},
+     {"italic", false}
     };
 
     const QString FIELDS[TextElement::FIELD_COUNT] =  {"TRIP", "TOTAL", "SPEED",
@@ -47,7 +49,7 @@ namespace
 }
 
 TextElement::TextElement(Reader* reader): GraphicsElement(reader),
-data_(""), format_(""), align_("left"), fontSize_(16)
+data_(""), format_(""), align_("left"), fontSize_(16), bold_(false), italic_(false)
 {
     element_ = new QGraphicsTextItem();
 }
@@ -94,6 +96,20 @@ bool TextElement::setAttribute(QString const& name, QString const& value)
             fontFile_ = value;
             fontChanged = true;
             break;
+        case BOLD:
+            if(value != "false" && value != "0")
+            {
+                bold_ = true;
+                fontChanged = true;
+            }
+            break;
+        case ITALIC:
+            if(value != "false" && value != "0")
+            {
+                italic_ = true;
+                fontChanged = true;
+            }
+            break;
         default:
             qDebug() << "Unknown attribute: " << attr;
             return false;
@@ -108,6 +124,15 @@ bool TextElement::setAttribute(QString const& name, QString const& value)
                 if(getFont(fontFile_, font))
                 {
                     font.setPointSize(fontSize_);
+
+                    if(bold_)
+                    {
+                        font.setBold(true);
+                    }
+                    if(italic_)
+                    {
+                        font.setItalic(true);
+                    }
                     element_->setFont(font);
                 }
                 else
@@ -117,7 +142,19 @@ bool TextElement::setAttribute(QString const& name, QString const& value)
             }
             else
             {
-                element_->setFont(QFont("Default", fontSize_));
+                QFont font("Default");
+
+                if(bold_)
+                {
+                    font.setBold(true);
+                }
+                if(italic_)
+                {
+                    font.setItalic(true);
+                }
+
+                font.setPointSize(fontSize_);
+                element_->setFont(font);
             }
         }