summaryrefslogtreecommitdiffstats
path: root/src/declarative/canvas
diff options
context:
space:
mode:
authorAaron Kennedy <aaron.kennedy@nokia.com>2009-05-07 05:45:08 (GMT)
committerAaron Kennedy <aaron.kennedy@nokia.com>2009-05-07 05:45:08 (GMT)
commitb530723f5a7254d6a2a144aa27789651fe872c6d (patch)
treee94a418f2bdde351248974aea0c1e59445df27a7 /src/declarative/canvas
parente82217bf8e4ebaba20eb255bd52a9f261467b9d8 (diff)
downloadQt-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.cpp4
-rw-r--r--src/declarative/canvas/qsimplecanvas_software.cpp5
-rw-r--r--src/declarative/canvas/qsimplecanvasitem.cpp8
-rw-r--r--src/declarative/canvas/qsimplecanvasitem.h11
-rw-r--r--src/declarative/canvas/qsimplecanvasitem_p.h25
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;