diff options
author | Thomas Hartmann <Thomas.Hartmann@digia.com> | 2013-09-16 14:33:07 +0200 |
---|---|---|
committer | Thomas Hartmann <Thomas.Hartmann@digia.com> | 2013-09-16 14:35:53 +0200 |
commit | 9e58ab2ac88c9beae06b7ef371b32c8bb5a54b0b (patch) | |
tree | 778f8f966a6a0ef41bbee602b4775730ea41c5b2 /src | |
parent | 8e281fe27bbdc004017b5ebaba647ba0e2d467c4 (diff) | |
download | qt-creator-9e58ab2ac88c9beae06b7ef371b32c8bb5a54b0b.tar.gz |
QmlProfiler: Initial conversion from Quick 1 to Quick 2
Updated class names and functions. Fixed imports.
Change-Id: I5f12e3a108a0e60c091acc9c415ff77e52118029
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Diffstat (limited to 'src')
25 files changed, 143 insertions, 136 deletions
diff --git a/src/plugins/plugins.pro b/src/plugins/plugins.pro index 95de5cf33c..73cf7b15e9 100644 --- a/src/plugins/plugins.pro +++ b/src/plugins/plugins.pro @@ -64,16 +64,18 @@ isEmpty(IDE_PACKAGE_MODE) { contains(QT_CONFIG, declarative)|!isEmpty(QT.declarative.name) { SUBDIRS += \ - qmlprojectmanager \ - qmlprofiler + qmlprojectmanager greaterThan(QT_MAJOR_VERSION, 4):greaterThan(QT_MINOR_VERSION, 0) { SUBDIRS += \ qmldesigner \ + qmlprofiler \ welcome } else { warning("QmlDesigner plugin has been disabled.") - warning("The plugin needs at least Qt 5.1.") + warning("QmlProfiler plugin has been disabled.") + warning("Welcome plugin has been disabled.") + warning("These plugins need at least Qt 5.1.") } } else { warning("QmlProjectManager, QmlProfiler and QmlDesigner plugins have been disabled: The plugins require QtDeclarative") diff --git a/src/plugins/qmlprofiler/canvas/qdeclarativecanvas.cpp b/src/plugins/qmlprofiler/canvas/qdeclarativecanvas.cpp index 70a849f39b..4611d7096b 100644 --- a/src/plugins/qmlprofiler/canvas/qdeclarativecanvas.cpp +++ b/src/plugins/qmlprofiler/canvas/qdeclarativecanvas.cpp @@ -35,16 +35,14 @@ QT_BEGIN_NAMESPACE -Canvas::Canvas(QDeclarativeItem *parent) - : QDeclarativeItem(parent), +Canvas::Canvas(QQuickPaintedItem *parent) + : QQuickPaintedItem(parent), m_context(new Context2D(this)), m_canvasWidth(0), m_canvasHeight(0), m_fillMode(Canvas::Stretch), m_color(Qt::white) { - setFlag(QGraphicsItem::ItemHasNoContents, false); - setCacheMode(QGraphicsItem::DeviceCoordinateCache); } @@ -57,10 +55,10 @@ void Canvas::componentComplete() connect(m_context, SIGNAL(changed()), this, SLOT(requestPaint())); emit init(); - QDeclarativeItem::componentComplete(); + QQuickItem::componentComplete(); } -void Canvas::paint(QPainter *painter, const QStyleOptionGraphicsItem *, QWidget *) +void Canvas::paint(QPainter *painter) { m_context->setInPaint(true); emit paint(); @@ -160,7 +158,7 @@ void Canvas::geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometr && newGeometry.width() > 0 && newGeometry.height() > 0) { m_context->setSize(width(), height()); } - QDeclarativeItem::geometryChanged(newGeometry, oldGeometry); + QQuickItem::geometryChanged(newGeometry, oldGeometry); } void Canvas::setCanvasWidth(int newWidth) @@ -219,24 +217,24 @@ CanvasImage *Canvas::toImage() const return new CanvasImage(m_context->pixmap()); } -void Canvas::setTimeout(const QScriptValue &handler, long timeout) +void Canvas::setTimeout(const QJSValue &handler, long timeout) { - if (handler.isFunction()) + if (handler.isCallable()) CanvasTimer::createTimer(this, handler, timeout, true); } -void Canvas::setInterval(const QScriptValue &handler, long interval) +void Canvas::setInterval(const QJSValue &handler, long interval) { - if (handler.isFunction()) + if (handler.isCallable()) CanvasTimer::createTimer(this, handler, interval, false); } -void Canvas::clearTimeout(const QScriptValue &handler) +void Canvas::clearTimeout(const QJSValue &handler) { CanvasTimer::removeTimer(handler); } -void Canvas::clearInterval(const QScriptValue &handler) +void Canvas::clearInterval(const QJSValue &handler) { CanvasTimer::removeTimer(handler); } diff --git a/src/plugins/qmlprofiler/canvas/qdeclarativecanvas_p.h b/src/plugins/qmlprofiler/canvas/qdeclarativecanvas_p.h index 429097d5b4..3f4fd8b0dd 100644 --- a/src/plugins/qmlprofiler/canvas/qdeclarativecanvas_p.h +++ b/src/plugins/qmlprofiler/canvas/qdeclarativecanvas_p.h @@ -30,15 +30,14 @@ #ifndef QDECLARATIVECANVAS_P_H #define QDECLARATIVECANVAS_P_H -#include <qdeclarativeitem.h> +#include <QQuickPaintedItem> #include "qdeclarativecontext2d_p.h" #include "qdeclarativecanvastimer_p.h" QT_BEGIN_NAMESPACE -QT_MODULE(Declarative) -class Canvas : public QDeclarativeItem +class Canvas : public QQuickPaintedItem { Q_OBJECT @@ -49,11 +48,11 @@ class Canvas : public QDeclarativeItem Q_PROPERTY(FillMode fillMode READ fillMode WRITE setFillMode NOTIFY fillModeChanged) public: - Canvas(QDeclarativeItem *parent = 0); + Canvas(QQuickPaintedItem *parent = 0); enum FillMode { Stretch, PreserveAspectFit, PreserveAspectCrop, Tile, TileVertically, TileHorizontally }; - void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *); + void paint(QPainter *); void geometryChanged(const QRectF &newGeometry, const QRectF &oldGeometry); void setCanvasWidth(int newWidth); int canvasWidth() {return m_canvasWidth;} @@ -78,10 +77,10 @@ public Q_SLOTS: bool save(const QString& filename) const; // Timers - void setInterval(const QScriptValue &handler, long timeout); - void setTimeout(const QScriptValue &handler, long timeout); - void clearInterval(const QScriptValue &handler); - void clearTimeout(const QScriptValue &handler); + void setInterval(const QJSValue &handler, long timeout); + void setTimeout(const QJSValue &handler, long timeout); + void clearInterval(const QJSValue &handler); + void clearTimeout(const QJSValue &handler); Q_SIGNALS: void fillModeChanged(); diff --git a/src/plugins/qmlprofiler/canvas/qdeclarativecanvastimer.cpp b/src/plugins/qmlprofiler/canvas/qdeclarativecanvastimer.cpp index 4d41aec983..8069fbbcb7 100644 --- a/src/plugins/qmlprofiler/canvas/qdeclarativecanvastimer.cpp +++ b/src/plugins/qmlprofiler/canvas/qdeclarativecanvastimer.cpp @@ -29,28 +29,28 @@ #include "qdeclarativecanvastimer_p.h" -#include <qscriptengine.h> -#include <qscriptvalue.h> +#include <QJSEngine> +#include <QJSValue> #include <qtimer.h> QT_BEGIN_NAMESPACE Q_GLOBAL_STATIC(QList<CanvasTimer*> , activeTimers); -CanvasTimer::CanvasTimer(QObject *parent, const QScriptValue &data) +CanvasTimer::CanvasTimer(QObject *parent, const QJSValue &data) : QTimer(parent), m_value(data) { } void CanvasTimer::handleTimeout() { - Q_ASSERT(m_value.isFunction()); + Q_ASSERT(m_value.isCallable()); m_value.call(); if (isSingleShot()) removeTimer(this); } -void CanvasTimer::createTimer(QObject *parent, const QScriptValue &val, long timeout, bool singleshot) +void CanvasTimer::createTimer(QObject *parent, const QJSValue &val, long timeout, bool singleshot) { CanvasTimer *timer = new CanvasTimer(parent, val); @@ -67,9 +67,9 @@ void CanvasTimer::removeTimer(CanvasTimer *timer) timer->deleteLater(); } -void CanvasTimer::removeTimer(const QScriptValue &val) +void CanvasTimer::removeTimer(const QJSValue &val) { - if (!val.isFunction()) + if (!val.isCallable()) return; for (int i = 0 ; i < activeTimers()->count() ; ++i) { diff --git a/src/plugins/qmlprofiler/canvas/qdeclarativecanvastimer_p.h b/src/plugins/qmlprofiler/canvas/qdeclarativecanvastimer_p.h index 915afa542d..b25a98eb44 100644 --- a/src/plugins/qmlprofiler/canvas/qdeclarativecanvastimer_p.h +++ b/src/plugins/qmlprofiler/canvas/qdeclarativecanvastimer_p.h @@ -30,32 +30,30 @@ #ifndef QDECLARATIVECANVASTIMER_P_H #define QDECLARATIVECANVASTIMER_P_H -#include <qscriptvalue.h> +#include <QJSValue> #include <qtimer.h> #include <qlist.h> QT_BEGIN_NAMESPACE -QT_MODULE(Declarative) - class CanvasTimer : public QTimer { Q_OBJECT public: - CanvasTimer(QObject *parent, const QScriptValue &data); + CanvasTimer(QObject *parent, const QJSValue &data); public Q_SLOTS: void handleTimeout(); - bool equals(const QScriptValue &value){return m_value.equals(value);} + bool equals(const QJSValue &value){return m_value.equals(value);} public: - static void createTimer(QObject *parent, const QScriptValue &val, long timeout, bool singleshot); + static void createTimer(QObject *parent, const QJSValue &val, long timeout, bool singleshot); static void removeTimer(CanvasTimer *timer); - static void removeTimer(const QScriptValue &); + static void removeTimer(const QJSValue &); private: - QScriptValue m_value; + QJSValue m_value; }; diff --git a/src/plugins/qmlprofiler/canvas/qdeclarativecontext2d.cpp b/src/plugins/qmlprofiler/canvas/qdeclarativecontext2d.cpp index 5121aac332..be092b12ad 100644 --- a/src/plugins/qmlprofiler/canvas/qdeclarativecontext2d.cpp +++ b/src/plugins/qmlprofiler/canvas/qdeclarativecontext2d.cpp @@ -39,6 +39,7 @@ #include <qgraphicseffect.h> #include <QImage> +#include <QWidget> QT_BEGIN_NAMESPACE @@ -737,8 +738,8 @@ void Context2D::strokeRect(qreal x, qreal y, qreal w, qreal h) scheduleChange(); } -void Context2D::mouseArea(qreal x, qreal y, qreal w, qreal h, const QScriptValue &callback, - const QScriptValue &data) +void Context2D::mouseArea(qreal x, qreal y, qreal w, qreal h, const QJSValue &callback, + const QJSValue &data) { MouseArea a = { callback, data, QRectF(x, y, w, h), m_state.matrix }; m_mouseAreas << a; @@ -1104,8 +1105,13 @@ void Context2D::setPainterTranslate(const QPoint &translate) void Context2D::scheduleChange() { + QMetaObject::invokeMethod(this, "onScheduleChange", Qt::QueuedConnection, Q_ARG(int, 0)); +} + +void Context2D::onScheduleChange(int interval) +{ if (m_changeTimerId == -1 && !m_inPaint) - m_changeTimerId = startTimer(0); + m_changeTimerId = startTimer(interval); } void Context2D::timerEvent(QTimerEvent *e) diff --git a/src/plugins/qmlprofiler/canvas/qdeclarativecontext2d_p.h b/src/plugins/qmlprofiler/canvas/qdeclarativecontext2d_p.h index 7183875768..cd84e1fa2b 100644 --- a/src/plugins/qmlprofiler/canvas/qdeclarativecontext2d_p.h +++ b/src/plugins/qmlprofiler/canvas/qdeclarativecontext2d_p.h @@ -38,11 +38,10 @@ #include <qmetatype.h> #include <qcoreevent.h> #include <qvariant.h> -#include <qscriptvalue.h> -QT_BEGIN_NAMESPACE +#include <QJSValue> -QT_MODULE(Declarative) +QT_BEGIN_NAMESPACE QColor colorFromString(const QString &name); @@ -174,8 +173,8 @@ public: void setShadowColor(const QString &str); struct MouseArea { - QScriptValue callback; - QScriptValue data; + QJSValue callback; + QJSValue data; QRectF rect; QMatrix matrix; }; @@ -209,7 +208,7 @@ public slots: void strokeRect(qreal x, qreal y, qreal w, qreal h); // mouse - void mouseArea(qreal x, qreal y, qreal w, qreal h, const QScriptValue &, const QScriptValue & = QScriptValue()); + void mouseArea(qreal x, qreal y, qreal w, qreal h, const QJSValue &, const QJSValue & = QJSValue()); // path API void beginPath(); @@ -239,6 +238,9 @@ public slots: void putImageData(ImageData image, qreal dx, qreal dy); void endPainting(); +private slots: + void onScheduleChange(int interval); + signals: void changed(); diff --git a/src/plugins/qmlprofiler/canvas/qmlprofilercanvas.cpp b/src/plugins/qmlprofiler/canvas/qmlprofilercanvas.cpp index 01e3b3cdda..e078680863 100644 --- a/src/plugins/qmlprofiler/canvas/qmlprofilercanvas.cpp +++ b/src/plugins/qmlprofiler/canvas/qmlprofilercanvas.cpp @@ -41,9 +41,7 @@ QmlProfilerCanvas::QmlProfilerCanvas() : m_context2d(new Context2D(this)) , m_dirty(true) { - setFlag(QGraphicsItem::ItemHasNoContents, false); setAcceptedMouseButtons(Qt::LeftButton); - setCacheMode(QGraphicsItem::DeviceCoordinateCache); } void QmlProfilerCanvas::requestPaint() @@ -57,7 +55,7 @@ void QmlProfilerCanvas::requestRedraw() update(); } -void QmlProfilerCanvas::paint(QPainter *p, const QStyleOptionGraphicsItem *, QWidget *) +void QmlProfilerCanvas::paint(QPainter *p) { if (m_context2d->size().width() != width() || m_context2d->size().height() != height()) { m_dirty = true; @@ -84,7 +82,7 @@ void QmlProfilerCanvas::componentComplete() if (p.hasNotifySignal()) QMetaObject::connect(this, p.notifySignalIndex(), this, requestPaintMethod, 0, 0); } - QDeclarativeItem::componentComplete(); + QQuickItem::componentComplete(); } } diff --git a/src/plugins/qmlprofiler/canvas/qmlprofilercanvas.h b/src/plugins/qmlprofiler/canvas/qmlprofilercanvas.h index 51289d8b96..f7837f2ed0 100644 --- a/src/plugins/qmlprofiler/canvas/qmlprofilercanvas.h +++ b/src/plugins/qmlprofiler/canvas/qmlprofilercanvas.h @@ -30,7 +30,7 @@ #ifndef QMLPROFILERCANVAS_H #define QMLPROFILERCANVAS_H -#include <QDeclarativeItem> +#include <QQuickPaintedItem> QT_BEGIN_NAMESPACE class Context2D; @@ -39,7 +39,7 @@ QT_END_NAMESPACE namespace QmlProfiler { namespace Internal { -class QmlProfilerCanvas : public QDeclarativeItem +class QmlProfilerCanvas : public QQuickPaintedItem { Q_OBJECT @@ -67,7 +67,7 @@ public slots: void requestRedraw(); protected: - virtual void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *); + virtual void paint(QPainter *); virtual void componentComplete(); private: diff --git a/src/plugins/qmlprofiler/qml/Detail.qml b/src/plugins/qmlprofiler/qml/Detail.qml index 7bc28178d9..6eab0bbc3d 100644 --- a/src/plugins/qmlprofiler/qml/Detail.qml +++ b/src/plugins/qmlprofiler/qml/Detail.qml @@ -27,7 +27,7 @@ ** ****************************************************************************/ -import QtQuick 1.0 +import QtQuick 2.0 import Monitor 1.0 Item { diff --git a/src/plugins/qmlprofiler/qml/Label.qml b/src/plugins/qmlprofiler/qml/Label.qml index 015391a3f5..608bb53f76 100644 --- a/src/plugins/qmlprofiler/qml/Label.qml +++ b/src/plugins/qmlprofiler/qml/Label.qml @@ -27,7 +27,7 @@ ** ****************************************************************************/ -import QtQuick 1.0 +import QtQuick 2.0 Item { id: labelContainer diff --git a/src/plugins/qmlprofiler/qml/MainView.qml b/src/plugins/qmlprofiler/qml/MainView.qml index 9e859258ee..0cdb3b81ea 100644 --- a/src/plugins/qmlprofiler/qml/MainView.qml +++ b/src/plugins/qmlprofiler/qml/MainView.qml @@ -27,7 +27,7 @@ ** ****************************************************************************/ -import QtQuick 1.0 +import QtQuick 2.0 import Monitor 1.0 Rectangle { @@ -502,7 +502,7 @@ Rectangle { onPressed: { selectionRange.pressedOnCreation(); } - onMousePositionChanged: { + onPositionChanged: { selectionRange.movedOnCreation(); } } diff --git a/src/plugins/qmlprofiler/qml/Overview.qml b/src/plugins/qmlprofiler/qml/Overview.qml index d90e1e6c7d..42bc387e19 100644 --- a/src/plugins/qmlprofiler/qml/Overview.qml +++ b/src/plugins/qmlprofiler/qml/Overview.qml @@ -27,7 +27,7 @@ ** ****************************************************************************/ -import QtQuick 1.0 +import QtQuick 2.0 import Monitor 1.0 import "Overview.js" as Plotter @@ -108,7 +108,7 @@ Canvas2D { onPressed: { jumpTo(mouse.x); } - onMousePositionChanged: { + onPositionChanged: { jumpTo(mouse.x); } } diff --git a/src/plugins/qmlprofiler/qml/RangeDetails.qml b/src/plugins/qmlprofiler/qml/RangeDetails.qml index a0fb3e8d77..dae4db3818 100644 --- a/src/plugins/qmlprofiler/qml/RangeDetails.qml +++ b/src/plugins/qmlprofiler/qml/RangeDetails.qml @@ -27,7 +27,7 @@ ** ****************************************************************************/ -import QtQuick 1.0 +import QtQuick 2.0 import Monitor 1.0 Item { diff --git a/src/plugins/qmlprofiler/qml/RangeMover.qml b/src/plugins/qmlprofiler/qml/RangeMover.qml index 18226d8d25..4e1fa4290c 100644 --- a/src/plugins/qmlprofiler/qml/RangeMover.qml +++ b/src/plugins/qmlprofiler/qml/RangeMover.qml @@ -27,7 +27,7 @@ ** ****************************************************************************/ -import QtQuick 1.0 +import QtQuick 2.0 Rectangle { id: rangeMover diff --git a/src/plugins/qmlprofiler/qml/SelectionRange.qml b/src/plugins/qmlprofiler/qml/SelectionRange.qml index b302de614a..6079b07135 100644 --- a/src/plugins/qmlprofiler/qml/SelectionRange.qml +++ b/src/plugins/qmlprofiler/qml/SelectionRange.qml @@ -27,7 +27,7 @@ ** ****************************************************************************/ -import QtQuick 1.0 +import QtQuick 2.0 Rectangle { id: selectionRange diff --git a/src/plugins/qmlprofiler/qml/SelectionRangeDetails.qml b/src/plugins/qmlprofiler/qml/SelectionRangeDetails.qml index 5af24af14d..529bf3b980 100644 --- a/src/plugins/qmlprofiler/qml/SelectionRangeDetails.qml +++ b/src/plugins/qmlprofiler/qml/SelectionRangeDetails.qml @@ -27,7 +27,7 @@ ** ****************************************************************************/ -import QtQuick 1.0 +import QtQuick 2.0 import Monitor 1.0 Item { diff --git a/src/plugins/qmlprofiler/qml/TimeDisplay.qml b/src/plugins/qmlprofiler/qml/TimeDisplay.qml index 2f5a8bfaaf..dd6ece6083 100644 --- a/src/plugins/qmlprofiler/qml/TimeDisplay.qml +++ b/src/plugins/qmlprofiler/qml/TimeDisplay.qml @@ -27,7 +27,7 @@ ** ****************************************************************************/ -import QtQuick 1.0 +import QtQuick 2.0 import Monitor 1.0 Canvas2D { diff --git a/src/plugins/qmlprofiler/qml/TimeMarks.qml b/src/plugins/qmlprofiler/qml/TimeMarks.qml index f2ba65f66e..742bc09629 100644 --- a/src/plugins/qmlprofiler/qml/TimeMarks.qml +++ b/src/plugins/qmlprofiler/qml/TimeMarks.qml @@ -27,7 +27,7 @@ ** ****************************************************************************/ -import QtQuick 1.0 +import QtQuick 2.0 import Monitor 1.0 Canvas2D { diff --git a/src/plugins/qmlprofiler/qmlprofiler.pro b/src/plugins/qmlprofiler/qmlprofiler.pro index c9f7ba7ed7..f5b68699d5 100644 --- a/src/plugins/qmlprofiler/qmlprofiler.pro +++ b/src/plugins/qmlprofiler/qmlprofiler.pro @@ -1,6 +1,6 @@ DEFINES += QMLPROFILER_LIBRARY -QT += network script declarative +QT += network qml quick include(../../qtcreatorplugin.pri) include(canvas/canvas.pri) diff --git a/src/plugins/qmlprofiler/qmlprofiler.qbs b/src/plugins/qmlprofiler/qmlprofiler.qbs index 82bf351cf8..48df39e062 100644 --- a/src/plugins/qmlprofiler/qmlprofiler.qbs +++ b/src/plugins/qmlprofiler/qmlprofiler.qbs @@ -5,7 +5,7 @@ import "../QtcPlugin.qbs" as QtcPlugin QtcPlugin { name: "QmlProfiler" - Depends { name: "Qt"; submodules: ["widgets", "network", "script", "declarative"] } + Depends { name: "Qt"; submodules: ["widgets", "network", "qml", "quick"] } Depends { name: "Core" } Depends { name: "AnalyzerBase" } Depends { name: "QmlProjectManager" } diff --git a/src/plugins/qmlprofiler/qmlprofilertraceview.cpp b/src/plugins/qmlprofiler/qmlprofilertraceview.cpp index c094a07f13..76874e9272 100644 --- a/src/plugins/qmlprofiler/qmlprofilertraceview.cpp +++ b/src/plugins/qmlprofiler/qmlprofilertraceview.cpp @@ -42,7 +42,7 @@ #include <utils/styledbar.h> -#include <QDeclarativeContext> +#include <QQmlContext> #include <QToolButton> #include <QEvent> #include <QVBoxLayout> @@ -50,6 +50,7 @@ #include <QScrollBar> #include <QSlider> #include <QMenu> +#include <QQuickItem> #include <math.h> @@ -86,23 +87,22 @@ void ZoomControl::setRange(qint64 startTime, qint64 endTime) } ///////////////////////////////////////////////////////// -ScrollableDeclarativeView::ScrollableDeclarativeView(QWidget *parent) - : QDeclarativeView(parent) +ScrollableQuickView::ScrollableQuickView(QQuickView *parent) + : QQuickView(parent) { } -ScrollableDeclarativeView::~ScrollableDeclarativeView() +ScrollableQuickView::~ScrollableQuickView() { } -void ScrollableDeclarativeView::scrollContentsBy(int dx, int dy) +void ScrollableQuickView::scrollContentsBy(int /*dx*/, int dy) { // special workaround to track the scrollbar if (rootObject()) { int scrollY = rootObject()->property("scrollY").toInt(); rootObject()->setProperty("scrollY", QVariant(scrollY - dy)); } - QDeclarativeView::scrollContentsBy(dx,dy); } ///////////////////////////////////////////////////////// @@ -110,6 +110,13 @@ class QmlProfilerTraceView::QmlProfilerTraceViewPrivate { public: QmlProfilerTraceViewPrivate(QmlProfilerTraceView *qq) : q(qq) {} + ~QmlProfilerTraceViewPrivate() + { + delete m_mainView; + delete m_timebar; + delete m_overview; + } + QmlProfilerTraceView *q; QmlProfilerStateManager *m_profilerState; @@ -118,9 +125,9 @@ public: QSize m_sizeHint; - ScrollableDeclarativeView *m_mainView; - QDeclarativeView *m_timebar; - QDeclarativeView *m_overview; + ScrollableQuickView *m_mainView; + QQuickView *m_timebar; + QQuickView *m_overview; QmlProfilerModelManager *m_modelManager; TimelineModelAggregator *m_modelProxy; @@ -145,40 +152,38 @@ QmlProfilerTraceView::QmlProfilerTraceView(QWidget *parent, Analyzer::IAnalyzerT groupLayout->setContentsMargins(0, 0, 0, 0); groupLayout->setSpacing(0); - d->m_mainView = new ScrollableDeclarativeView(this); - d->m_mainView->setResizeMode(QDeclarativeView::SizeViewToRootObject); - d->m_mainView->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded); - d->m_mainView->setBackgroundBrush(QBrush(Qt::white)); - d->m_mainView->setAlignment(Qt::AlignLeft | Qt::AlignTop); - d->m_mainView->setFocus(); + d->m_mainView = new ScrollableQuickView(); + d->m_mainView->setResizeMode(QQuickView::SizeViewToRootObject); + QWidget *mainViewContainer = QWidget::createWindowContainer(d->m_mainView); MouseWheelResizer *resizer = new MouseWheelResizer(this); connect(resizer,SIGNAL(mouseWheelMoved(int,int,int)), this, SLOT(mouseWheelMoved(int,int,int))); - d->m_mainView->viewport()->installEventFilter(resizer); QHBoxLayout *toolsLayout = new QHBoxLayout; - d->m_timebar = new QDeclarativeView(this); - d->m_timebar->setResizeMode(QDeclarativeView::SizeRootObjectToView); - d->m_timebar->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); - d->m_timebar->setFixedHeight(24); + d->m_timebar = new QQuickView(); + d->m_timebar->setResizeMode(QQuickView::SizeRootObjectToView); + QWidget *timeBarContainer = QWidget::createWindowContainer(d->m_timebar); + timeBarContainer->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); + timeBarContainer->setFixedHeight(24); - d->m_overview = new QDeclarativeView(this); - d->m_overview->setResizeMode(QDeclarativeView::SizeRootObjectToView); - d->m_overview->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); - d->m_overview->setMaximumHeight(50); + d->m_overview = new QQuickView(); + d->m_overview->setResizeMode(QQuickView::SizeRootObjectToView); + QWidget *overviewContainer = QWidget::createWindowContainer(d->m_overview); + overviewContainer->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); + overviewContainer->setMaximumHeight(50); d->m_zoomToolbar = createZoomToolbar(); d->m_zoomToolbar->move(0, d->m_timebar->height()); d->m_zoomToolbar->setVisible(false); toolsLayout->addWidget(createToolbar()); - toolsLayout->addWidget(d->m_timebar); + toolsLayout->addWidget(timeBarContainer); emit enableToolbar(false); groupLayout->addLayout(toolsLayout); - groupLayout->addWidget(d->m_mainView); - groupLayout->addWidget(d->m_overview); + groupLayout->addWidget(mainViewContainer); + groupLayout->addWidget(overviewContainer); setLayout(groupLayout); @@ -224,7 +229,7 @@ void QmlProfilerTraceView::reset() d->m_overview->setSource(QUrl(QLatin1String("qrc:/qmlprofiler/Overview.qml"))); d->m_mainView->setSource(QUrl(QLatin1String("qrc:/qmlprofiler/MainView.qml"))); - QGraphicsObject *rootObject = d->m_mainView->rootObject(); + QQuickItem *rootObject = d->m_mainView->rootObject(); rootObject->setProperty("width", QVariant(width())); rootObject->setProperty("candidateHeight", QVariant(height() - d->m_timebar->height() - d->m_overview->height())); @@ -345,7 +350,7 @@ QWidget *QmlProfilerTraceView::createZoomToolbar() ///////////////////////////////////////////////////////// bool QmlProfilerTraceView::hasValidSelection() const { - QGraphicsObject *rootObject = d->m_mainView->rootObject(); + QQuickItem *rootObject = d->m_mainView->rootObject(); if (rootObject) return rootObject->property("selectionRangeReady").toBool(); return false; @@ -353,7 +358,7 @@ bool QmlProfilerTraceView::hasValidSelection() const qint64 QmlProfilerTraceView::selectionStart() const { - QGraphicsObject *rootObject = d->m_mainView->rootObject(); + QQuickItem *rootObject = d->m_mainView->rootObject(); if (rootObject) return rootObject->property("selectionRangeStart").toLongLong(); return 0; @@ -361,7 +366,7 @@ qint64 QmlProfilerTraceView::selectionStart() const qint64 QmlProfilerTraceView::selectionEnd() const { - QGraphicsObject *rootObject = d->m_mainView->rootObject(); + QQuickItem *rootObject = d->m_mainView->rootObject(); if (rootObject) return rootObject->property("selectionRangeEnd").toLongLong(); return 0; @@ -380,7 +385,7 @@ void QmlProfilerTraceView::clearDisplay() void QmlProfilerTraceView::selectNextEventByHash(const QString &hash) { - QGraphicsObject *rootObject = d->m_mainView->rootObject(); + QQuickItem *rootObject = d->m_mainView->rootObject(); if (rootObject) QMetaObject::invokeMethod(rootObject, "selectNextByHash", @@ -392,7 +397,7 @@ void QmlProfilerTraceView::selectNextEventByLocation(const QString &filename, co int eventId = d->m_modelProxy->getEventIdForLocation(filename, line, column); if (eventId != -1) { - QGraphicsObject *rootObject = d->m_mainView->rootObject(); + QQuickItem *rootObject = d->m_mainView->rootObject(); if (rootObject) QMetaObject::invokeMethod(rootObject, "selectNextById", Q_ARG(QVariant,QVariant(eventId))); @@ -403,7 +408,7 @@ void QmlProfilerTraceView::selectNextEventByLocation(const QString &filename, co // Goto source location void QmlProfilerTraceView::updateCursorPosition() { - QGraphicsObject *rootObject = d->m_mainView->rootObject(); + QQuickItem *rootObject = d->m_mainView->rootObject(); emit gotoSourceLocation(rootObject->property("fileName").toString(), rootObject->property("lineNumber").toInt(), rootObject->property("columnNumber").toInt()); @@ -413,7 +418,7 @@ void QmlProfilerTraceView::updateCursorPosition() // Toolbar buttons void QmlProfilerTraceView::toggleRangeMode(bool active) { - QGraphicsObject *rootObject = d->m_mainView->rootObject(); + QQuickItem *rootObject = d->m_mainView->rootObject(); bool rangeMode = rootObject->property("selectionRangeMode").toBool(); if (active != rangeMode) { if (active) @@ -436,7 +441,7 @@ void QmlProfilerTraceView::updateRangeButton() void QmlProfilerTraceView::toggleLockMode(bool active) { - QGraphicsObject *rootObject = d->m_mainView->rootObject(); + QQuickItem *rootObject = d->m_mainView->rootObject(); bool lockMode = !rootObject->property("selectionLocked").toBool(); if (active != lockMode) { rootObject->setProperty("selectionLocked", QVariant(!active)); @@ -480,7 +485,7 @@ void QmlProfilerTraceView::updateRange() void QmlProfilerTraceView::mouseWheelMoved(int mouseX, int mouseY, int wheelDelta) { Q_UNUSED(mouseY); - QGraphicsObject *rootObject = d->m_mainView->rootObject(); + QQuickItem *rootObject = d->m_mainView->rootObject(); if (rootObject) { QMetaObject::invokeMethod(rootObject, "wheelZoom", Q_ARG(QVariant, QVariant(mouseX)), @@ -493,15 +498,14 @@ void QmlProfilerTraceView::updateToolTip(const QString &text) setToolTip(text); } -void QmlProfilerTraceView::updateVerticalScroll(int newPosition) +void QmlProfilerTraceView::updateVerticalScroll(int /*newPosition*/) { - d->m_mainView->verticalScrollBar()->setValue(newPosition); } void QmlProfilerTraceView::resizeEvent(QResizeEvent *event) { QWidget::resizeEvent(event); - QGraphicsObject *rootObject = d->m_mainView->rootObject(); + QQuickItem *rootObject = d->m_mainView->rootObject(); if (rootObject) { rootObject->setProperty("width", QVariant(event->size().width())); int newHeight = event->size().height() - d->m_timebar->height() - d->m_overview->height(); @@ -560,14 +564,14 @@ void QmlProfilerTraceView::contextMenuEvent(QContextMenuEvent *ev) // Tell QML the state of the profiler void QmlProfilerTraceView::setRecording(bool recording) { - QGraphicsObject *rootObject = d->m_mainView->rootObject(); + QQuickItem *rootObject = d->m_mainView->rootObject(); if (rootObject) rootObject->setProperty("recordingEnabled", QVariant(recording)); } void QmlProfilerTraceView::setAppKilled() { - QGraphicsObject *rootObject = d->m_mainView->rootObject(); + QQuickItem *rootObject = d->m_mainView->rootObject(); if (rootObject) rootObject->setProperty("appKilled",QVariant(true)); } diff --git a/src/plugins/qmlprofiler/qmlprofilertraceview.h b/src/plugins/qmlprofiler/qmlprofilertraceview.h index dd7d233ff0..985838f7aa 100644 --- a/src/plugins/qmlprofiler/qmlprofilertraceview.h +++ b/src/plugins/qmlprofiler/qmlprofilertraceview.h @@ -30,7 +30,8 @@ #ifndef QMLPROFILERTRACEVIEW_H #define QMLPROFILERTRACEVIEW_H -#include <QDeclarativeView> +#include <QQuickView> +#include <QWidget> namespace Analyzer { class IAnalyzerTool; @@ -74,12 +75,12 @@ private: qint64 m_endTime; }; -class ScrollableDeclarativeView : public QDeclarativeView +class ScrollableQuickView : public QQuickView { Q_OBJECT public: - explicit ScrollableDeclarativeView(QWidget *parent = 0); - ~ScrollableDeclarativeView(); + explicit ScrollableQuickView(QQuickView *parent = 0); + ~ScrollableQuickView(); protected: void scrollContentsBy(int dx, int dy); }; diff --git a/src/plugins/qmlprofiler/timelinerenderer.cpp b/src/plugins/qmlprofiler/timelinerenderer.cpp index 4f86f2cd9a..77d895cf24 100644 --- a/src/plugins/qmlprofiler/timelinerenderer.cpp +++ b/src/plugins/qmlprofiler/timelinerenderer.cpp @@ -29,8 +29,8 @@ #include "timelinerenderer.h" -#include <qdeclarativecontext.h> -#include <qdeclarativeproperty.h> +#include <QQmlContext> +#include <QQmlProperty> #include <QTimer> #include <QPixmap> #include <QPainter> @@ -43,13 +43,12 @@ using namespace QmlProfiler::Internal; const int DefaultRowHeight = 30; -TimelineRenderer::TimelineRenderer(QDeclarativeItem *parent) : - QDeclarativeItem(parent), m_startTime(0), m_endTime(0), m_spacing(0), +TimelineRenderer::TimelineRenderer(QQuickPaintedItem *parent) : + QQuickPaintedItem(parent), m_startTime(0), m_endTime(0), m_spacing(0), m_lastStartTime(0), m_lastEndTime(0) , m_profilerModelProxy(0) { clearData(); - setFlag(QGraphicsItem::ItemHasNoContents, false); setAcceptedMouseButtons(Qt::LeftButton); setAcceptHoverEvents(true); } @@ -77,7 +76,7 @@ void TimelineRenderer::componentComplete() if (p.hasNotifySignal()) QMetaObject::connect(this, p.notifySignalIndex(), this, requestPaintMethod, 0, 0); } - QDeclarativeItem::componentComplete(); + QQuickItem::componentComplete(); } void TimelineRenderer::requestPaint() @@ -85,7 +84,7 @@ void TimelineRenderer::requestPaint() update(); } -void TimelineRenderer::paint(QPainter *p, const QStyleOptionGraphicsItem *, QWidget *) +void TimelineRenderer::paint(QPainter *p) { qint64 windowDuration = m_endTime - m_startTime; if (windowDuration <= 0) @@ -260,7 +259,7 @@ int TimelineRenderer::modelFromPosition(int y) return 0; } -void TimelineRenderer::mousePressEvent(QGraphicsSceneMouseEvent *event) +void TimelineRenderer::mousePressEvent(QMouseEvent *event) { // special case: if there is a drag area below me, don't accept the // events unless I'm actually clicking inside an item @@ -271,19 +270,19 @@ void TimelineRenderer::mousePressEvent(QGraphicsSceneMouseEvent *event) } -void TimelineRenderer::mouseReleaseEvent(QGraphicsSceneMouseEvent *event) +void TimelineRenderer::mouseReleaseEvent(QMouseEvent *event) { Q_UNUSED(event); manageClicked(); } -void TimelineRenderer::mouseMoveEvent(QGraphicsSceneMouseEvent *event) +void TimelineRenderer::mouseMoveEvent(QMouseEvent *event) { event->setAccepted(false); } -void TimelineRenderer::hoverMoveEvent(QGraphicsSceneHoverEvent *event) +void TimelineRenderer::hoverMoveEvent(QHoverEvent *event) { Q_UNUSED(event); manageHovered(event->pos().x(), event->pos().y()); diff --git a/src/plugins/qmlprofiler/timelinerenderer.h b/src/plugins/qmlprofiler/timelinerenderer.h index d4c70a4d9e..e5018565d7 100644 --- a/src/plugins/qmlprofiler/timelinerenderer.h +++ b/src/plugins/qmlprofiler/timelinerenderer.h @@ -30,15 +30,15 @@ #ifndef TIMELINERENDERER_H #define TIMELINERENDERER_H -#include <QDeclarativeItem> -#include <QScriptValue> +#include <QQuickPaintedItem> +#include <QJSValue> #include "qmlprofilertimelinemodelproxy.h" #include "timelinemodelaggregator.h" namespace QmlProfiler { namespace Internal { -class TimelineRenderer : public QDeclarativeItem +class TimelineRenderer : public QQuickPaintedItem { Q_OBJECT Q_PROPERTY(qint64 startTime READ startTime WRITE setStartTime NOTIFY startTimeChanged) @@ -51,7 +51,7 @@ class TimelineRenderer : public QDeclarativeItem Q_PROPERTY(int endDragArea READ endDragArea WRITE setEndDragArea NOTIFY endDragAreaChanged) public: - explicit TimelineRenderer(QDeclarativeItem *parent = 0); + explicit TimelineRenderer(QQuickPaintedItem *parent = 0); qint64 startTime() const { @@ -176,12 +176,12 @@ public slots: } protected: - virtual void paint(QPainter *, const QStyleOptionGraphicsItem *, QWidget *); + virtual void paint(QPainter *); virtual void componentComplete(); - virtual void mousePressEvent(QGraphicsSceneMouseEvent *event); - virtual void mouseReleaseEvent(QGraphicsSceneMouseEvent *event); - virtual void mouseMoveEvent(QGraphicsSceneMouseEvent *event); - virtual void hoverMoveEvent(QGraphicsSceneHoverEvent *event); + virtual void mousePressEvent(QMouseEvent *event); + virtual void mouseReleaseEvent(QMouseEvent *event); + virtual void mouseMoveEvent(QMouseEvent *event); + virtual void hoverMoveEvent(QHoverEvent *event); private: void drawItemsToPainter(QPainter *p, int modelIndex, int fromIndex, int toIndex); |