diff options
author | Aaron Kennedy <aaron.kennedy@nokia.com> | 2009-05-07 05:45:08 (GMT) |
---|---|---|
committer | Aaron Kennedy <aaron.kennedy@nokia.com> | 2009-05-07 05:45:08 (GMT) |
commit | b530723f5a7254d6a2a144aa27789651fe872c6d (patch) | |
tree | e94a418f2bdde351248974aea0c1e59445df27a7 /src/declarative/canvas | |
parent | e82217bf8e4ebaba20eb255bd52a9f261467b9d8 (diff) | |
download | Qt-b530723f5a7254d6a2a144aa27789651fe872c6d.zip Qt-b530723f5a7254d6a2a144aa27789651fe872c6d.tar.gz Qt-b530723f5a7254d6a2a144aa27789651fe872c6d.tar.bz2 |
Add a QmlDebuggerStatus interface elements can use to interact with the debugger
Diffstat (limited to 'src/declarative/canvas')
-rw-r--r-- | src/declarative/canvas/qsimplecanvas.cpp | 4 | ||||
-rw-r--r-- | src/declarative/canvas/qsimplecanvas_software.cpp | 5 | ||||
-rw-r--r-- | src/declarative/canvas/qsimplecanvasitem.cpp | 8 | ||||
-rw-r--r-- | src/declarative/canvas/qsimplecanvasitem.h | 11 | ||||
-rw-r--r-- | src/declarative/canvas/qsimplecanvasitem_p.h | 25 |
5 files changed, 45 insertions, 8 deletions
diff --git a/src/declarative/canvas/qsimplecanvas.cpp b/src/declarative/canvas/qsimplecanvas.cpp index ce02a4c..c404da6 100644 --- a/src/declarative/canvas/qsimplecanvas.cpp +++ b/src/declarative/canvas/qsimplecanvas.cpp @@ -60,7 +60,7 @@ QT_BEGIN_NAMESPACE DEFINE_BOOL_CONFIG_OPTION(fullUpdate, GFX_CANVAS_FULL_UPDATE); DEFINE_BOOL_CONFIG_OPTION(continuousUpdate, GFX_CANVAS_CONTINUOUS_UPDATE); -DEFINE_BOOL_CONFIG_OPTION(useGraphicsView, QFX_USE_GRAPHICSVIEW); +DEFINE_BOOL_CONFIG_OPTION(useSimpleCanvas, QFX_USE_SIMPLECANVAS); template<class T, int s = 60> class CircularList @@ -556,7 +556,7 @@ QSimpleCanvas::QSimpleCanvas(CanvasMode mode, QWidget *parent) QSimpleCanvas::QSimpleCanvas(QWidget *parent) : QWidget(parent), d(new QSimpleCanvasPrivate(this)) { - d->init(useGraphicsView()?SimpleCanvas:GraphicsView); + d->init(useSimpleCanvas()?SimpleCanvas:GraphicsView); } void QSimpleCanvasPrivate::init(QSimpleCanvas::CanvasMode mode) diff --git a/src/declarative/canvas/qsimplecanvas_software.cpp b/src/declarative/canvas/qsimplecanvas_software.cpp index c130a62..194024d 100644 --- a/src/declarative/canvas/qsimplecanvas_software.cpp +++ b/src/declarative/canvas/qsimplecanvas_software.cpp @@ -172,6 +172,11 @@ void QSimpleCanvasItemPrivate::paint(QPainter &p) if (clip) p.restore(); + + if (debuggerStatus && debuggerStatus->selected) { + p.setWorldTransform(data()->transformActive); + p.fillRect(q->boundingRect(), QColor(255, 0, 0, 80)); + } } void QSimpleCanvasItemPrivate::paintChild(QPainter &p, QSimpleCanvasItem *c) diff --git a/src/declarative/canvas/qsimplecanvasitem.cpp b/src/declarative/canvas/qsimplecanvasitem.cpp index 62a44e4..ba33a41 100644 --- a/src/declarative/canvas/qsimplecanvasitem.cpp +++ b/src/declarative/canvas/qsimplecanvasitem.cpp @@ -1380,6 +1380,14 @@ QSimpleCanvasItem::operator QGraphicsItem *() return d->graphicsItem; } +QSimpleCanvasItem::operator QmlDebuggerStatus *() +{ + Q_D(QSimpleCanvasItem); + if(!d->debuggerStatus) + d->debuggerStatus = new QSimpleCanvasItemDebuggerStatus(this); + return d->debuggerStatus; +} + QPointF QSimpleCanvasItemPrivate::transformOrigin() const { Q_Q(const QSimpleCanvasItem); diff --git a/src/declarative/canvas/qsimplecanvasitem.h b/src/declarative/canvas/qsimplecanvasitem.h index 83f19c3..cab8492 100644 --- a/src/declarative/canvas/qsimplecanvasitem.h +++ b/src/declarative/canvas/qsimplecanvasitem.h @@ -42,10 +42,11 @@ #ifndef QSIMPLECANVASITEM_H #define QSIMPLECANVASITEM_H -#include <qfxglobal.h> -#include <qsimplecanvas.h> -#include <QObject> -#include <QGraphicsItem> +#include <QtDeclarative/qfxglobal.h> +#include <QtDeclarative/qmldebuggerstatus.h> +#include <QtDeclarative/qsimplecanvas.h> +#include <QtCore/qobject.h> +#include <QtGui/qgraphicsitem.h> class QPainter; QT_BEGIN_HEADER @@ -70,6 +71,7 @@ class Q_DECLARATIVE_EXPORT QSimpleCanvasItem : public QObject { Q_OBJECT Q_CAST_INTERFACES(QGraphicsItem) + Q_CAST_INTERFACES(QmlDebuggerStatus) Q_DECLARE_PRIVATE(QSimpleCanvasItem) Q_ENUMS(TransformOrigin) Q_PROPERTY(TransformOrigin transformOrigin READ transformOrigin WRITE setTransformOrigin); @@ -94,6 +96,7 @@ public: QSimpleCanvasItem(QSimpleCanvasItem *parent=0); virtual ~QSimpleCanvasItem(); operator QGraphicsItem *(); + operator QmlDebuggerStatus *(); bool clip() const; void setClip(bool); diff --git a/src/declarative/canvas/qsimplecanvasitem_p.h b/src/declarative/canvas/qsimplecanvasitem_p.h index 27a75bd..cfe0bba 100644 --- a/src/declarative/canvas/qsimplecanvasitem_p.h +++ b/src/declarative/canvas/qsimplecanvasitem_p.h @@ -110,6 +110,22 @@ public: #endif }; +class QSimpleCanvasItemDebuggerStatus : public QmlDebuggerStatus +{ +public: + QSimpleCanvasItemDebuggerStatus(QSimpleCanvasItem *i) + : item(i), selected(false) {} + + virtual void setSelectedState(bool state) + { + selected = state; + item->update(); + } + + QSimpleCanvasItem *item; + bool selected; +}; + class QSimpleCanvasFilter; class QGraphicsQSimpleCanvasItem; class QSimpleCanvasItemPrivate : public QObjectPrivate @@ -117,7 +133,8 @@ class QSimpleCanvasItemPrivate : public QObjectPrivate Q_DECLARE_PUBLIC(QSimpleCanvasItem); public: QSimpleCanvasItemPrivate() - : parent(0), canvas(0), filter(0), clip(QSimpleCanvasItem::NoClip), + : parent(0), canvas(0), debuggerStatus(0), filter(0), + clip(QSimpleCanvasItem::NoClip), origin(QSimpleCanvasItem::TopLeft), options(QSimpleCanvasItem::NoOption), focusable(false), wantsActiveFocusPanelPendingCanvas(false), hasBeenActiveFocusPanel(false), @@ -127,12 +144,16 @@ public: { } - virtual ~QSimpleCanvasItemPrivate() {} + virtual ~QSimpleCanvasItemPrivate() + { + if(debuggerStatus) delete debuggerStatus; + } QSimpleCanvasItem *parent; QSimpleCanvas *canvas; QList<QSimpleCanvasItem *> children; + QSimpleCanvasItemDebuggerStatus *debuggerStatus; QSimpleCanvasFilter *filter; QSimpleCanvasItem::ClipType clip:3; |