Added some effects to graphics elements and changed default theme a bit.
[jspeed] / src / graphicselement.cpp
index 3befe29..452af54 100644 (file)
@@ -22,6 +22,9 @@
 #include <QtGui/QGraphicsScene>
 #include <QtGui/QFont>
 #include <QtGui/QFontDatabase>
+#include <QtGui/QGraphicsEffect>
+#include <QtGui/QGraphicsDropShadowEffect>
+#include <QtGui/QGraphicsItem>
 #include "graphicselement.h"
 #include "reader.h"
 #include "textelement.h"
@@ -29,8 +32,9 @@
 #include "rectangle.h"
 #include "pointer.h"
 #include "settings.h"
+#include "effect.h"
 
-GraphicsElement::GraphicsElement(Reader* reader): reader_(reader), error_("")
+GraphicsElement::GraphicsElement(Reader* reader): reader_(reader), error_(""), effect_(0)
 {
 }
 
@@ -73,7 +77,6 @@ void GraphicsElement::setError(QString const& error)
 
 bool GraphicsElement::readFile(QString const& filename, QByteArray& data)
 {
-
     if(!reader_->readFile(filename, data))
     {
         setError(reader_->errorString());
@@ -167,3 +170,41 @@ int GraphicsElement::getAttribute(QString const& name,
     setError("Unknown attribute: " + name);
     return -1;
 }
+
+bool GraphicsElement::setEffect(QString const& name)
+{
+   /* QGraphicsDropShadowEffect* eff = new QGraphicsDropShadowEffect;
+    eff->setOffset(1);
+    eff->setBlurRadius(3);
+
+    getElement()->setGraphicsEffect(eff);
+
+    return true;*/
+
+    effect_ = Effect::getEffect(name);
+
+    if(!effect_)
+    {
+        return false;
+    }
+
+    return true;
+}
+
+bool GraphicsElement::setEffectAttribute(QString const& name, QString const& value)
+{
+    //return true;
+    if(!effect_)
+    {
+        qDebug() << "Effect not set";
+        return false;
+    }
+
+    return effect_->setAttribute(name, value);
+}
+
+void GraphicsElement::applyEffect()
+{
+    //return;
+    effect_->apply(getElement());
+}