forked from qt-creator/qt-creator
QmlProfiler: unify client to simplemodel event calls
Change-Id: I1c3c1abbfd06c21498a0eb8f7c472d5f93f853cc Reviewed-by: Kai Koehne <kai.koehne@digia.com>
This commit is contained in:
@@ -170,7 +170,8 @@ void QmlProfilerTraceClient::messageReceived(const QByteArray &data)
|
||||
} else if (event == AnimationFrame) {
|
||||
int frameRate, animationCount;
|
||||
stream >> frameRate >> animationCount;
|
||||
emit this->frame(time, frameRate, animationCount);
|
||||
emit rangedEvent(QmlDebug::Painting, QmlDebug::AnimationFrame, time, 0,
|
||||
QStringList(), QmlDebug::QmlEventLocation(), frameRate, animationCount, 0,0,0);
|
||||
d->maximumTime = qMax(time, d->maximumTime);
|
||||
} else if (event == StartTrace) {
|
||||
emit this->traceStarted(time);
|
||||
@@ -192,21 +193,20 @@ void QmlProfilerTraceClient::messageReceived(const QByteArray &data)
|
||||
}
|
||||
while (count<5)
|
||||
params[count++] = 0;
|
||||
emit sceneGraphFrame(SceneGraphFrameEvent, sgEventType, time, params[0], params[1], params[2], params[3], params[4]);
|
||||
emit rangedEvent(SceneGraphFrameEvent, sgEventType,time, 0, QStringList(),
|
||||
QmlDebug::QmlEventLocation(), params[0], params[1], params[2], params[3], params[4]);
|
||||
} else if (messageType == PixmapCacheEvent) {
|
||||
int pixEvTy, width = -1, height = -1, refcount = -1;
|
||||
int pixEvTy, width = 0, height = 0, refcount = 0;
|
||||
QString pixUrl;
|
||||
stream >> pixEvTy >> pixUrl;
|
||||
if (pixEvTy == (int)PixmapReferenceCountChanged || pixEvTy == (int)PixmapCacheCountChanged) {
|
||||
stream >> refcount;
|
||||
emit pixmapCacheEvent(time,pixEvTy, pixUrl, 0, 0, refcount);
|
||||
} else
|
||||
if (pixEvTy == (int)PixmapSizeKnown) {
|
||||
stream >> width >> height;
|
||||
emit pixmapCacheEvent(time,pixEvTy, pixUrl, width, height, 1);
|
||||
} else { // Other
|
||||
emit pixmapCacheEvent(time,pixEvTy, pixUrl, 0, 0, 0);
|
||||
}
|
||||
} else if (pixEvTy == (int)PixmapSizeKnown) {
|
||||
stream >> width >> height;
|
||||
refcount = 1;
|
||||
}
|
||||
emit rangedEvent(QmlDebug::PixmapCacheEvent, pixEvTy, time, 0, QStringList(),
|
||||
QmlDebug::QmlEventLocation(pixUrl,0,0), width, height, refcount, 0, 0);
|
||||
d->maximumTime = qMax(time, d->maximumTime);
|
||||
} else {
|
||||
int range;
|
||||
@@ -269,7 +269,8 @@ void QmlProfilerTraceClient::messageReceived(const QByteArray &data)
|
||||
bindingType = d->bindingTypes.pop();
|
||||
if ((QmlEventType)range == Painting)
|
||||
bindingType = QPainterEvent;
|
||||
emit this->range((QmlEventType)range, bindingType, startTime, time - startTime, data, location);
|
||||
emit rangedEvent((QmlEventType)range, bindingType, startTime, time - startTime, data,
|
||||
location, 0, 0, 0, 0, 0);
|
||||
if (d->rangeCount[range] == 0) {
|
||||
int count = d->rangeDatas[range].count() +
|
||||
d->rangeStartTimes[range].count() +
|
||||
|
@@ -102,12 +102,9 @@ signals:
|
||||
void event(int event, qint64 time);
|
||||
void traceFinished( qint64 time );
|
||||
void traceStarted( qint64 time );
|
||||
void range(int type, int bindingType, qint64 startTime, qint64 length,
|
||||
const QStringList &data, const QmlDebug::QmlEventLocation &location);
|
||||
void frame(qint64 time, int frameRate, int animationCount);
|
||||
void sceneGraphFrame(int eventType, int sgEventType, qint64 time, qint64 param1, qint64 param2, qint64 param3, qint64 param4, qint64 param5);
|
||||
void pixmapCacheEvent(qint64 time, int cacheEventType, const QString& url, int width, int height, int refCount);
|
||||
|
||||
void rangedEvent(int type, int bindingType, qint64 startTime, qint64 length,
|
||||
const QStringList &data, const QmlDebug::QmlEventLocation &location,
|
||||
qint64 param1, qint64 param2, qint64 param3, qint64 param4, qint64 param5);
|
||||
void recordingChanged(bool arg);
|
||||
|
||||
void enabledChanged();
|
||||
|
@@ -179,23 +179,15 @@ void QmlProfilerClientManager::connectClientSignals()
|
||||
connect(d->qmlclientplugin.data(), SIGNAL(complete()),
|
||||
this, SLOT(qmlComplete()));
|
||||
connect(d->qmlclientplugin.data(),
|
||||
SIGNAL(range(int,int,qint64,qint64,QStringList,QmlDebug::QmlEventLocation)),
|
||||
SIGNAL(rangedEvent(int,int,qint64,qint64,QStringList,QmlDebug::QmlEventLocation,
|
||||
qint64,qint64,qint64,qint64,qint64)),
|
||||
d->modelManager,
|
||||
SLOT(addRangedEvent(int,int,qint64,qint64,QStringList,QmlDebug::QmlEventLocation)));
|
||||
SLOT(addQmlEvent(int,int,qint64,qint64,QStringList,QmlDebug::QmlEventLocation,
|
||||
qint64,qint64,qint64,qint64,qint64)));
|
||||
connect(d->qmlclientplugin.data(), SIGNAL(traceFinished(qint64)),
|
||||
d->modelManager->traceTime(), SLOT(setEndTime(qint64)));
|
||||
connect(d->qmlclientplugin.data(), SIGNAL(traceStarted(qint64)),
|
||||
d->modelManager->traceTime(), SLOT(setStartTime(qint64)));
|
||||
connect(d->qmlclientplugin.data(), SIGNAL(frame(qint64,int,int)),
|
||||
d->modelManager, SLOT(addFrameEvent(qint64,int,int)));
|
||||
connect(d->qmlclientplugin.data(),
|
||||
SIGNAL(pixmapCacheEvent(qint64,int,QString,int,int,int)),
|
||||
d->modelManager,
|
||||
SLOT(addPixmapCacheEvent(qint64,int,QString,int,int,int)));
|
||||
connect(d->qmlclientplugin.data(),
|
||||
SIGNAL(sceneGraphFrame(int,int,qint64,qint64,qint64,qint64,qint64,qint64)),
|
||||
d->modelManager,
|
||||
SLOT(addSceneGraphEvent(int,int,qint64,qint64,qint64,qint64,qint64,qint64)));
|
||||
connect(d->qmlclientplugin.data(), SIGNAL(enabledChanged()),
|
||||
d->qmlclientplugin.data(), SLOT(sendRecordingStatus()));
|
||||
// fixme: this should be unified for both clients
|
||||
@@ -219,23 +211,17 @@ void QmlProfilerClientManager::disconnectClientSignals()
|
||||
disconnect(d->qmlclientplugin.data(), SIGNAL(complete()),
|
||||
this, SLOT(qmlComplete()));
|
||||
disconnect(d->qmlclientplugin.data(),
|
||||
SIGNAL(range(int,int,qint64,qint64,QStringList,QmlDebug::QmlEventLocation)),
|
||||
SIGNAL(rangedEvent(int,int,qint64,qint64,QStringList,QmlDebug::QmlEventLocation,
|
||||
qint64,qint64,qint64,qint64,qint64)),
|
||||
d->modelManager,
|
||||
SLOT(addRangedEvent(int,int,qint64,qint64,QStringList,QmlDebug::QmlEventLocation)));
|
||||
SLOT(addQmlEvent(int,int,qint64,qint64,QStringList,QmlDebug::QmlEventLocation,
|
||||
qint64,qint64,qint64,qint64,qint64)));
|
||||
disconnect(d->qmlclientplugin.data(), SIGNAL(traceFinished(qint64)),
|
||||
d->modelManager->traceTime(), SLOT(setEndTime(qint64)));
|
||||
disconnect(d->qmlclientplugin.data(), SIGNAL(traceStarted(qint64)),
|
||||
d->modelManager->traceTime(), SLOT(setStartTime(qint64)));
|
||||
disconnect(d->qmlclientplugin.data(), SIGNAL(frame(qint64,int,int)),
|
||||
d->modelManager, SLOT(addFrameEvent(qint64,int,int)));
|
||||
disconnect(d->qmlclientplugin.data(),
|
||||
SIGNAL(pixmapCacheEvent(qint64,int,QString,int,int,int)),
|
||||
d->modelManager,
|
||||
SLOT(addPixmapCacheEvent(qint64,int,QString,int,int,int)));
|
||||
disconnect(d->qmlclientplugin.data(),
|
||||
SIGNAL(sceneGraphFrame(int,int,qint64,qint64,qint64,qint64,qint64,qint64,qint64)),
|
||||
d->modelManager,
|
||||
SLOT(addSceneGraphEvent(int,int,qint64,qint64,qint64,qint64,qint64,qint64,qint64)));
|
||||
disconnect(d->qmlclientplugin.data(), SIGNAL(enabledChanged()),
|
||||
d->qmlclientplugin.data(), SLOT(sendRecordingStatus()));
|
||||
// fixme: this should be unified for both clients
|
||||
|
@@ -225,14 +225,15 @@ void QmlProfilerModelManager::newTimeEstimation(qint64 estimation)
|
||||
d->estimatedTime = estimation;
|
||||
}
|
||||
|
||||
void QmlProfilerModelManager::addRangedEvent(int type, int bindingType, qint64 startTime, qint64 length, const QStringList &data, const QmlDebug::QmlEventLocation &location)
|
||||
void QmlProfilerModelManager::addQmlEvent(int type, int bindingType, qint64 startTime, qint64 length, const QStringList &data, const QmlDebug::QmlEventLocation &location,
|
||||
qint64 ndata1, qint64 ndata2, qint64 ndata3, qint64 ndata4, qint64 ndata5)
|
||||
{
|
||||
// If trace start time was not explicitly set, use the first event
|
||||
if (d->traceTime->startTime() == -1)
|
||||
d->traceTime->setStartTime(startTime);
|
||||
|
||||
QTC_ASSERT(state() == QmlProfilerDataState::AcquiringData, /**/);
|
||||
d->model->addRangedEvent(type, bindingType, startTime, length, data, location);
|
||||
d->model->addQmlEvent(type, bindingType, startTime, length, data, location, ndata1, ndata2, ndata3, ndata4, ndata5);
|
||||
emit countChanged();
|
||||
}
|
||||
|
||||
@@ -242,37 +243,6 @@ void QmlProfilerModelManager::addV8Event(int depth, const QString &function, con
|
||||
d->v8Model->addV8Event(depth, function, filename, lineNumber,totalTime, selfTime);
|
||||
}
|
||||
|
||||
void QmlProfilerModelManager::addFrameEvent(qint64 time, int framerate, int animationcount)
|
||||
{
|
||||
if (d->traceTime->startTime() == -1)
|
||||
d->traceTime->setStartTime(time);
|
||||
|
||||
QTC_ASSERT(state() == QmlProfilerDataState::AcquiringData, /**/);
|
||||
d->model->addFrameEvent(time, framerate, animationcount);
|
||||
emit countChanged();
|
||||
}
|
||||
|
||||
void QmlProfilerModelManager::addSceneGraphEvent(int eventType, int SGEtype, qint64 startTime, qint64 timing1, qint64 timing2, qint64 timing3, qint64 timing4, qint64 timing5)
|
||||
{
|
||||
if (d->traceTime->startTime() == -1)
|
||||
d->traceTime->setStartTime(startTime);
|
||||
|
||||
QTC_ASSERT(state() == QmlProfilerDataState::AcquiringData, /**/);
|
||||
d->model->addSceneGraphEvent(eventType, SGEtype, startTime, timing1, timing2, timing3, timing4, timing5);
|
||||
emit countChanged();
|
||||
}
|
||||
|
||||
void QmlProfilerModelManager::addPixmapCacheEvent(qint64 time, int pixmapEventType, QString Url, int pixmapWidth, int pixmapHeight, int referenceCount)
|
||||
{
|
||||
if (d->traceTime->startTime() == -1)
|
||||
d->traceTime->setStartTime(time);
|
||||
|
||||
QTC_ASSERT(state() == QmlProfilerDataState::AcquiringData, /**/);
|
||||
d->model->addPixmapCacheEvent(time, pixmapEventType, Url, pixmapWidth, pixmapHeight, referenceCount);
|
||||
emit countChanged();
|
||||
}
|
||||
|
||||
|
||||
void QmlProfilerModelManager::complete()
|
||||
{
|
||||
if (state() == QmlProfilerDataState::AcquiringData) {
|
||||
@@ -339,15 +309,12 @@ void QmlProfilerModelManager::load()
|
||||
|
||||
QmlProfilerFileReader reader;
|
||||
connect(&reader, SIGNAL(error(QString)), this, SIGNAL(error(QString)));
|
||||
connect(&reader, SIGNAL(rangedEvent(int,int,qint64,qint64,QStringList,QmlDebug::QmlEventLocation)), this,
|
||||
SLOT(addRangedEvent(int,int,qint64,qint64,QStringList,QmlDebug::QmlEventLocation)));
|
||||
connect(&reader, SIGNAL(rangedEvent(int,int,qint64,qint64,QStringList,QmlDebug::QmlEventLocation,
|
||||
qint64, qint64, qint64, qint64, qint64)),
|
||||
this, SLOT(addQmlEvent(int,int,qint64,qint64,QStringList,QmlDebug::QmlEventLocation,
|
||||
qint64, qint64, qint64, qint64, qint64)));
|
||||
connect(&reader, SIGNAL(traceStartTime(qint64)), traceTime(), SLOT(setStartTime(qint64)));
|
||||
connect(&reader, SIGNAL(traceEndTime(qint64)), traceTime(), SLOT(setEndTime(qint64)));
|
||||
connect(&reader, SIGNAL(sceneGraphFrame(int,int,qint64,qint64,qint64,qint64,qint64,qint64)),
|
||||
this, SLOT(addSceneGraphEvent(int,int,qint64,qint64,qint64,qint64,qint64,qint64)));
|
||||
connect(&reader, SIGNAL(pixmapCacheEvent(qint64,int,QString,int,int,int)),
|
||||
this, SLOT(addPixmapCacheEvent(qint64,int,QString,int,int,int)));
|
||||
connect(&reader, SIGNAL(frame(qint64,int,int)), this, SLOT(addFrameEvent(qint64,int,int)));
|
||||
reader.setV8DataModel(d->v8Model);
|
||||
reader.load(&file);
|
||||
|
||||
|
@@ -126,17 +126,12 @@ public slots:
|
||||
void clear();
|
||||
|
||||
void prepareForWriting();
|
||||
void addRangedEvent(int type, int bindingType, qint64 startTime, qint64 length,
|
||||
const QStringList &data, const QmlDebug::QmlEventLocation &location);
|
||||
void addSceneGraphEvent(int eventType, int SGEtype, qint64 startTime,
|
||||
qint64 timing1, qint64 timing2, qint64 timing3, qint64 timing4, qint64 timing5);
|
||||
void addPixmapCacheEvent(qint64 time, int pixmapEventType, QString Url,
|
||||
int pixmapWidth, int pixmapHeight, int referenceCount);
|
||||
void addQmlEvent(int type, int bindingType, qint64 startTime, qint64 length,
|
||||
const QStringList &data, const QmlDebug::QmlEventLocation &location,
|
||||
qint64 ndata1, qint64 ndata2, qint64 ndata3, qint64 ndata4, qint64 ndata5);
|
||||
void addV8Event(int depth, const QString &function,const QString &filename, int lineNumber,
|
||||
double totalTime, double selfTime);
|
||||
|
||||
void addFrameEvent(qint64 time, int framerate, int animationcount);
|
||||
|
||||
void complete();
|
||||
|
||||
void save(const QString &filename);
|
||||
|
@@ -155,8 +155,13 @@ void PaintEventsModelProxy::loadData()
|
||||
if (!eventAccepted(event))
|
||||
continue;
|
||||
|
||||
qint64 estimatedDuration = 0;
|
||||
// initial estimation of the event duration: 1/framerate
|
||||
if (event.numericData1 > 0)
|
||||
estimatedDuration = 1e9/event.numericData1;
|
||||
|
||||
// the profiler registers the animation events at the end of them
|
||||
qint64 realStartTime = event.startTime - event.duration;
|
||||
qint64 realStartTime = event.startTime - estimatedDuration;
|
||||
|
||||
// the duration of the events is estimated from the framerate
|
||||
// we need to correct it before appending a new event
|
||||
@@ -171,7 +176,7 @@ void PaintEventsModelProxy::loadData()
|
||||
|
||||
QmlPaintEventData newEvent = {
|
||||
realStartTime,
|
||||
event.duration,
|
||||
estimatedDuration,
|
||||
(int)event.numericData1,
|
||||
(int)event.numericData2
|
||||
};
|
||||
|
@@ -71,40 +71,23 @@ int QmlProfilerSimpleModel::count() const
|
||||
return eventList.count();
|
||||
}
|
||||
|
||||
void QmlProfilerSimpleModel::addRangedEvent(int type, int bindingType, qint64 startTime, qint64 duration, const QStringList &data, const QmlDebug::QmlEventLocation &location)
|
||||
void QmlProfilerSimpleModel::addQmlEvent(int type, int bindingType, qint64 startTime, qint64 duration, const QStringList &data, const QmlDebug::QmlEventLocation &location, qint64 ndata1, qint64 ndata2, qint64 ndata3, qint64 ndata4, qint64 ndata5)
|
||||
{
|
||||
QString displayName = QString::fromLatin1("%1:%2").arg(
|
||||
QString displayName;
|
||||
if (type == QmlDebug::Painting && bindingType == QmlDebug::AnimationFrame) {
|
||||
displayName = tr("Animations");
|
||||
} else {
|
||||
displayName = QString::fromLatin1("%1:%2").arg(
|
||||
location.filename,
|
||||
QString::number(location.line));
|
||||
QmlEventData eventData = {displayName, type, bindingType, startTime, duration, data, location, 0, 0, 0, 0, 0};
|
||||
}
|
||||
|
||||
QmlEventData eventData = {displayName, type, bindingType, startTime, duration, data, location, ndata1, ndata2, ndata3, ndata4, ndata5};
|
||||
eventList.append(eventData);
|
||||
|
||||
m_modelManager->modelProxyCountUpdated(m_modelId, startTime, m_modelManager->estimatedProfilingTime());
|
||||
}
|
||||
|
||||
void QmlProfilerSimpleModel::addFrameEvent(qint64 time, int framerate, int animationcount)
|
||||
{
|
||||
qint64 duration = 1e9 / framerate;
|
||||
QmlEventData eventData = {tr("Animations"), QmlDebug::Painting, QmlDebug::AnimationFrame, time, duration, QStringList(), QmlDebug::QmlEventLocation(), framerate, animationcount, 0, 0, 0};
|
||||
eventList.append(eventData);
|
||||
m_modelManager->modelProxyCountUpdated(m_modelId, time, m_modelManager->estimatedProfilingTime());
|
||||
}
|
||||
|
||||
void QmlProfilerSimpleModel::addSceneGraphEvent(int eventType, int SGEtype, qint64 startTime, qint64 timing1, qint64 timing2, qint64 timing3, qint64 timing4, qint64 timing5)
|
||||
{
|
||||
QmlEventData eventData = {QString(), eventType, SGEtype, startTime, 0, QStringList(), QmlDebug::QmlEventLocation(), timing1, timing2, timing3, timing4, timing5};
|
||||
eventList.append(eventData);
|
||||
m_modelManager->modelProxyCountUpdated(m_modelId, startTime, m_modelManager->estimatedProfilingTime());
|
||||
}
|
||||
|
||||
void QmlProfilerSimpleModel::addPixmapCacheEvent(qint64 time, int cacheEventType, const QString &url, int width, int height, int refCount)
|
||||
{
|
||||
QmlDebug::QmlEventLocation location(url, 0, 0);
|
||||
QmlEventData eventData = {QString(), QmlDebug::PixmapCacheEvent, cacheEventType, time, 0, QStringList(), location, width, height, refCount, -1, -1};
|
||||
eventList.append(eventData);
|
||||
m_modelManager->modelProxyCountUpdated(m_modelId, time, m_modelManager->estimatedProfilingTime());
|
||||
}
|
||||
|
||||
qint64 QmlProfilerSimpleModel::lastTimeMark() const
|
||||
{
|
||||
if (eventList.isEmpty())
|
||||
|
@@ -68,10 +68,8 @@ public:
|
||||
bool isEmpty() const;
|
||||
const QVector<QmlEventData> &getEvents() const;
|
||||
int count() const;
|
||||
void addRangedEvent(int type, int bindingType, qint64 startTime, qint64 length, const QStringList &data, const QmlDebug::QmlEventLocation &location);
|
||||
void addFrameEvent(qint64 time, int framerate, int animationcount);
|
||||
void addSceneGraphEvent(int eventType, int SGEtype, qint64 startTime, qint64 timing1, qint64 timing2, qint64 timing3, qint64 timing4, qint64 timing5);
|
||||
void addPixmapCacheEvent(qint64 time, int cacheEventType, const QString& url, int width, int height, int refCount);
|
||||
void addQmlEvent(int type, int bindingType, qint64 startTime, qint64 duration, const QStringList &data, const QmlDebug::QmlEventLocation &location,
|
||||
qint64 ndata1, qint64 ndata2, qint64 ndata3, qint64 ndata4, qint64 ndata5);
|
||||
qint64 lastTimeMark() const;
|
||||
virtual void complete();
|
||||
|
||||
|
@@ -372,18 +372,11 @@ void QmlProfilerFileReader::processQmlEvents()
|
||||
|
||||
QmlEvent &event = m_qmlEvents[eventIndex];
|
||||
|
||||
if (event.type == Painting && event.bindingType == QmlDebug::AnimationFrame) {
|
||||
emit frame(range.startTime, range.numericData1, range.numericData2);
|
||||
} else if (event.type == PixmapCacheEvent) {
|
||||
emit pixmapCacheEvent(range.startTime, event.bindingType, event.filename, range.numericData1, range.numericData2, range.numericData3);
|
||||
} else if (event.type == SceneGraphFrameEvent) {
|
||||
emit sceneGraphFrame(SceneGraphFrameEvent, event.bindingType, range.startTime, range.numericData1, range.numericData2, range.numericData3, range.numericData4, range.numericData5);
|
||||
} else {
|
||||
emit rangedEvent(event.type, event.bindingType, range.startTime, range.duration,
|
||||
QStringList(event.displayName), QmlEventLocation(event.filename,
|
||||
event.line,
|
||||
event.column));
|
||||
}
|
||||
emit rangedEvent(event.type, event.bindingType, range.startTime, range.duration,
|
||||
QStringList(event.displayName),
|
||||
QmlEventLocation(event.filename, event.line, event.column),
|
||||
range.numericData1,range.numericData2, range.numericData3, range.numericData4, range.numericData5);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -522,11 +515,6 @@ void QmlProfilerFileWriter::save(QIODevice *device)
|
||||
if (range.numericData5 > 0)
|
||||
stream.writeAttribute(_("timing5"), QString::number(range.numericData5));
|
||||
}
|
||||
// if (event.type == QmlDebug::Painting && range.animationCount >= 0) {
|
||||
// // animation frame
|
||||
// stream.writeAttribute(_("framerate"), QString::number(rangedEvent.frameRate));
|
||||
// stream.writeAttribute(_("animationcount"), QString::number(rangedEvent.animationCount));
|
||||
// }
|
||||
stream.writeEndElement();
|
||||
}
|
||||
stream.writeEndElement(); // profilerDataModel
|
||||
|
@@ -86,10 +86,8 @@ signals:
|
||||
void traceEndTime(qint64 traceStartTime);
|
||||
|
||||
void rangedEvent(int type, int bindingType, qint64 startTime, qint64 length,
|
||||
const QStringList &data, const QmlDebug::QmlEventLocation &location);
|
||||
void frame(qint64 time, int frameRate, int animationCount);
|
||||
void sceneGraphFrame(int eventType, int sgEventType, qint64 time, qint64 param1, qint64 param2, qint64 param3, qint64 param4, qint64 param5);
|
||||
void pixmapCacheEvent(qint64 time, int cacheEventType, const QString& url, int width, int height, int refCount);
|
||||
const QStringList &data, const QmlDebug::QmlEventLocation &location,
|
||||
qint64 param1, qint64 param2, qint64 param3, qint64 param4, qint64 param5);
|
||||
void error(const QString &error);
|
||||
|
||||
private:
|
||||
|
Reference in New Issue
Block a user