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>
This commit is contained in:
Thomas Hartmann
2013-09-16 14:33:07 +02:00
parent 8e281fe27b
commit 9e58ab2ac8
25 changed files with 143 additions and 136 deletions

View File

@@ -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")

View File

@@ -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);
}

View File

@@ -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();

View File

@@ -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) {

View File

@@ -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;
};

View File

@@ -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;
@@ -1103,9 +1104,14 @@ 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)

View File

@@ -38,12 +38,11 @@
#include <qmetatype.h>
#include <qcoreevent.h>
#include <qvariant.h>
#include <qscriptvalue.h>
#include <QJSValue>
QT_BEGIN_NAMESPACE
QT_MODULE(Declarative)
QColor colorFromString(const QString &name);
class CanvasGradient : public QObject
@@ -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();

View File

@@ -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();
}
}

View File

@@ -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:

View File

@@ -27,7 +27,7 @@
**
****************************************************************************/
import QtQuick 1.0
import QtQuick 2.0
import Monitor 1.0
Item {

View File

@@ -27,7 +27,7 @@
**
****************************************************************************/
import QtQuick 1.0
import QtQuick 2.0
Item {
id: labelContainer

View File

@@ -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();
}
}

View File

@@ -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);
}
}

View File

@@ -27,7 +27,7 @@
**
****************************************************************************/
import QtQuick 1.0
import QtQuick 2.0
import Monitor 1.0
Item {

View File

@@ -27,7 +27,7 @@
**
****************************************************************************/
import QtQuick 1.0
import QtQuick 2.0
Rectangle {
id: rangeMover

View File

@@ -27,7 +27,7 @@
**
****************************************************************************/
import QtQuick 1.0
import QtQuick 2.0
Rectangle {
id: selectionRange

View File

@@ -27,7 +27,7 @@
**
****************************************************************************/
import QtQuick 1.0
import QtQuick 2.0
import Monitor 1.0
Item {

View File

@@ -27,7 +27,7 @@
**
****************************************************************************/
import QtQuick 1.0
import QtQuick 2.0
import Monitor 1.0
Canvas2D {

View File

@@ -27,7 +27,7 @@
**
****************************************************************************/
import QtQuick 1.0
import QtQuick 2.0
import Monitor 1.0
Canvas2D {

View File

@@ -1,6 +1,6 @@
DEFINES += QMLPROFILER_LIBRARY
QT += network script declarative
QT += network qml quick
include(../../qtcreatorplugin.pri)
include(canvas/canvas.pri)

View File

@@ -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" }

View File

@@ -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));
}

View File

@@ -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);
};

View File

@@ -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());

View File

@@ -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);