#include <QtGui/QWidget>
#include <framework/mlt_log.h>
+#if QT_VERSION >= 0x040600
+#include <QtGui/QGraphicsEffect>
+#include <QtGui/QGraphicsBlurEffect>
+#include <QtGui/QGraphicsDropShadowEffect>
+#endif
+
static QApplication *app = NULL;
-class ImageItem: public QGraphicsRectItem
+class ImageItem: public QGraphicsItem
{
public:
ImageItem(QImage img)
protected:
+
+virtual QRectF boundingRect() const
+{
+ return QRectF(0, 0, m_img.width(), m_img.height());
+}
+
virtual void paint( QPainter *painter,
const QStyleOptionGraphicsItem * /*option*/,
QWidget* )
gitem->setTransform( stringToTransform( items.item( i ).namedItem( "position" ).firstChild().firstChild().nodeValue() ) );
int zValue = items.item( i ).attributes().namedItem( "z-index" ).nodeValue().toInt();
gitem->setZValue( zValue );
+
+#if QT_VERSION >= 0x040600
+ // effects
+ QDomNode eff = items.item(i).namedItem("effect");
+ if (!eff.isNull()) {
+ QDomElement e = eff.toElement();
+ if (e.attribute("type") == "blur") {
+ QGraphicsBlurEffect *blur = new QGraphicsBlurEffect();
+ blur->setBlurRadius(e.attribute("blurradius").toInt());
+ gitem->setGraphicsEffect(blur);
+ }
+ else if (e.attribute("type") == "shadow") {
+ QGraphicsDropShadowEffect *shadow = new QGraphicsDropShadowEffect();
+ shadow->setBlurRadius(e.attribute("blurradius").toInt());
+ shadow->setOffset(e.attribute("xoffset").toInt(), e.attribute("yoffset").toInt());
+ gitem->setGraphicsEffect(shadow);
+ }
+ }
+#endif
}
}
p1.setRenderHints( QPainter::Antialiasing | QPainter::TextAntialiasing | QPainter::HighQualityAntialiasing );
//| QPainter::SmoothPixmapTransform );
mlt_position anim_out = mlt_properties_get_position( producer_props, "_animation_out" );
-
+
if (end.isNull())
{
scene->render( &p1, source, start, Qt::IgnoreAspectRatio );