summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristiaan Janssen <christiaan.janssen@digia.com>2013-07-30 15:56:59 +0200
committerChristiaan Janssen <christiaan.janssen@digia.com>2013-08-06 15:59:00 +0300
commit741922d0acfe4cb0aed9d134db749e743d081bd8 (patch)
treecfd9a2312396c1c19854ea4e578ebe9b633328a4
parent21689299abd3b3ba80d3e93e2c9c846312c43b34 (diff)
downloadqt-creator-741922d0acfe4cb0aed9d134db749e743d081bd8.tar.gz
QmlProfiler: reduced indirection when reading data from client
Change-Id: I0f562be79a7ea05a4c91b2836df7d55f1c4409d7 Reviewed-by: Christian Stenger <christian.stenger@digia.com> Reviewed-by: Kai Koehne <kai.koehne@digia.com>
-rw-r--r--plugins/qmlprofiler/qmlprofilerclientmanager.cpp62
-rw-r--r--plugins/qmlprofiler/qmlprofilerclientmanager.h12
-rw-r--r--plugins/qmlprofiler/qmlprofilertool.cpp21
3 files changed, 44 insertions, 51 deletions
diff --git a/plugins/qmlprofiler/qmlprofilerclientmanager.cpp b/plugins/qmlprofiler/qmlprofilerclientmanager.cpp
index b29344699e..e733daf86a 100644
--- a/plugins/qmlprofiler/qmlprofilerclientmanager.cpp
+++ b/plugins/qmlprofiler/qmlprofilerclientmanager.cpp
@@ -40,6 +40,8 @@
#include <QTimer>
#include <QMessageBox>
+#include "qmlprofilermodelmanager.h"
+
using namespace QmlDebug;
using namespace Core;
@@ -70,6 +72,8 @@ public:
bool v8DataReady;
bool qmlDataReady;
+
+ QmlProfilerModelManager *modelManager;
};
QmlProfilerClientManager::QmlProfilerClientManager(QObject *parent) :
@@ -84,6 +88,8 @@ QmlProfilerClientManager::QmlProfilerClientManager(QObject *parent) :
d->v8DataReady = false;
d->qmlDataReady = false;
+ d->modelManager = 0;
+
d->connectionTimer.setInterval(200);
connect(&d->connectionTimer, SIGNAL(timeout()), SLOT(tryToConnect()));
}
@@ -97,6 +103,18 @@ QmlProfilerClientManager::~QmlProfilerClientManager()
delete d;
}
+
+void QmlProfilerClientManager::setModelManager(QmlProfilerModelManager *m)
+{
+ if (d->modelManager) {
+ disconnect(this,SIGNAL(dataReadyForProcessing()), d->modelManager, SLOT(complete()));
+ }
+ d->modelManager = m;
+ if (d->modelManager) {
+ connect(this,SIGNAL(dataReadyForProcessing()), d->modelManager, SLOT(complete()));
+ }
+}
+
////////////////////////////////////////////////////////////////
// Interface
void QmlProfilerClientManager::setTcpConnection(QString host, quint64 port)
@@ -162,22 +180,22 @@ void QmlProfilerClientManager::connectClientSignals()
this, SLOT(qmlComplete()));
connect(d->qmlclientplugin.data(),
SIGNAL(range(int,int,qint64,qint64,QStringList,QmlDebug::QmlEventLocation)),
- this,
- SIGNAL(addRangedEvent(int,int,qint64,qint64,QStringList,QmlDebug::QmlEventLocation)));
+ d->modelManager,
+ SLOT(addRangedEvent(int,int,qint64,qint64,QStringList,QmlDebug::QmlEventLocation)));
connect(d->qmlclientplugin.data(), SIGNAL(traceFinished(qint64)),
- this, SIGNAL(traceFinished(qint64)));
+ d->modelManager->traceTime(), SLOT(setEndTime(qint64)));
connect(d->qmlclientplugin.data(), SIGNAL(traceStarted(qint64)),
- this, SIGNAL(traceStarted(qint64)));
+ d->modelManager->traceTime(), SLOT(setStartTime(qint64)));
connect(d->qmlclientplugin.data(), SIGNAL(frame(qint64,int,int)),
- this, SIGNAL(addFrameEvent(qint64,int,int)));
+ d->modelManager, SLOT(addFrameEvent(qint64,int,int)));
connect(d->qmlclientplugin.data(),
SIGNAL(pixmapCacheEvent(qint64,int,QString,int,int,int)),
- this,
- SIGNAL(addPixmapCacheEvent(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)),
- this,
- SIGNAL(addSceneGraphEvent(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
@@ -188,8 +206,8 @@ void QmlProfilerClientManager::connectClientSignals()
connect(d->v8clientplugin.data(), SIGNAL(complete()), this, SLOT(v8Complete()));
connect(d->v8clientplugin.data(),
SIGNAL(v8range(int,QString,QString,int,double,double)),
- this,
- SIGNAL(addV8Event(int,QString,QString,int,double,double)));
+ d->modelManager,
+ SLOT(addV8Event(int,QString,QString,int,double,double)));
connect(d->v8clientplugin.data(), SIGNAL(enabledChanged()),
d->v8clientplugin.data(), SLOT(sendRecordingStatus()));
}
@@ -202,22 +220,22 @@ void QmlProfilerClientManager::disconnectClientSignals()
this, SLOT(qmlComplete()));
disconnect(d->qmlclientplugin.data(),
SIGNAL(range(int,int,qint64,qint64,QStringList,QmlDebug::QmlEventLocation)),
- this,
- SIGNAL(addRangedEvent(int,int,qint64,qint64,QStringList,QmlDebug::QmlEventLocation)));
+ d->modelManager,
+ SLOT(addRangedEvent(int,int,qint64,qint64,QStringList,QmlDebug::QmlEventLocation)));
disconnect(d->qmlclientplugin.data(), SIGNAL(traceFinished(qint64)),
- this, SIGNAL(traceFinished(qint64)));
+ d->modelManager->traceTime(), SLOT(setEndTime(qint64)));
disconnect(d->qmlclientplugin.data(), SIGNAL(traceStarted(qint64)),
- this, SIGNAL(traceStarted(qint64)));
+ d->modelManager->traceTime(), SLOT(setStartTime(qint64)));
disconnect(d->qmlclientplugin.data(), SIGNAL(frame(qint64,int,int)),
- this, SIGNAL(addFrameEvent(qint64,int,int)));
+ d->modelManager, SLOT(addFrameEvent(qint64,int,int)));
disconnect(d->qmlclientplugin.data(),
SIGNAL(pixmapCacheEvent(qint64,int,QString,int,int,int)),
- this,
- SIGNAL(addPixmapCacheEvent(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)),
- this,
- SIGNAL(addSceneGraphEvent(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
@@ -228,8 +246,8 @@ void QmlProfilerClientManager::disconnectClientSignals()
disconnect(d->v8clientplugin.data(), SIGNAL(complete()), this, SLOT(v8Complete()));
disconnect(d->v8clientplugin.data(),
SIGNAL(v8range(int,QString,QString,int,double,double)),
- this,
- SIGNAL(addV8Event(int,QString,QString,int,double,double)));
+ d->modelManager,
+ SLOT(addV8Event(int,QString,QString,int,double,double)));
disconnect(d->v8clientplugin.data(), SIGNAL(enabledChanged()),
d->v8clientplugin.data(), SLOT(sendRecordingStatus()));
}
diff --git a/plugins/qmlprofiler/qmlprofilerclientmanager.h b/plugins/qmlprofiler/qmlprofilerclientmanager.h
index 9401b554f0..f6e0fa7828 100644
--- a/plugins/qmlprofiler/qmlprofilerclientmanager.h
+++ b/plugins/qmlprofiler/qmlprofilerclientmanager.h
@@ -39,6 +39,8 @@
namespace QmlProfiler {
namespace Internal {
+class QmlProfilerModelManager;
+
class QmlProfilerClientManager : public QObject
{
Q_OBJECT
@@ -55,19 +57,11 @@ public:
void discardPendingData();
bool isConnected() const;
+ void setModelManager(QmlProfilerModelManager *m);
signals:
void connectionFailed();
void connectionClosed();
-
- // data
- void addRangedEvent(int,int,qint64,qint64,QStringList,QmlDebug::QmlEventLocation);
- void addV8Event(int,QString,QString,int,double,double);
- void addFrameEvent(qint64,int,int);
- void traceStarted(qint64);
- void traceFinished(qint64);
void dataReadyForProcessing();
- void addSceneGraphEvent(int, int, qint64, qint64, qint64, qint64, qint64, qint64);
- void addPixmapCacheEvent(qint64,int,QString,int,int,int);
public slots:
void connectClient(quint16 port);
diff --git a/plugins/qmlprofiler/qmlprofilertool.cpp b/plugins/qmlprofiler/qmlprofilertool.cpp
index 79d41b98a5..de8ffa5b47 100644
--- a/plugins/qmlprofiler/qmlprofilertool.cpp
+++ b/plugins/qmlprofiler/qmlprofilertool.cpp
@@ -149,27 +149,8 @@ QmlProfilerTool::QmlProfilerTool(QObject *parent)
d->m_profilerModelManager = new QmlProfilerModelManager(&d->m_projectFinder, this);
connect(d->m_profilerModelManager, SIGNAL(stateChanged()), this, SLOT(profilerDataModelStateChanged()));
connect(d->m_profilerModelManager, SIGNAL(error(QString)), this, SLOT(showErrorDialog(QString)));
- connect(d->m_profilerConnections,
- SIGNAL(addRangedEvent(int,int,qint64,qint64,QStringList,QmlDebug::QmlEventLocation)),
- d->m_profilerModelManager,
- SLOT(addRangedEvent(int,int,qint64,qint64,QStringList,QmlDebug::QmlEventLocation)));
- connect(d->m_profilerConnections,
- SIGNAL(addSceneGraphEvent(int,int,qint64,qint64,qint64,qint64,qint64,qint64)),
- d->m_profilerModelManager,
- SLOT(addSceneGraphEvent(int,int,qint64,qint64,qint64,qint64,qint64,qint64)));
- connect(d->m_profilerConnections,
- SIGNAL(addPixmapCacheEvent(qint64,int,QString,int,int,int)),
- d->m_profilerModelManager,
- SLOT(addPixmapCacheEvent(qint64,int,QString,int,int,int)));
- connect(d->m_profilerConnections,
- SIGNAL(addV8Event(int,QString,QString,int,double,double)),
- d->m_profilerModelManager,
- SLOT(addV8Event(int,QString,QString,int,double,double)));
- connect(d->m_profilerConnections, SIGNAL(addFrameEvent(qint64,int,int)), d->m_profilerModelManager, SLOT(addFrameEvent(qint64,int,int)));
- connect(d->m_profilerConnections, SIGNAL(traceStarted(qint64)), d->m_profilerModelManager->traceTime(), SLOT(setStartTime(qint64)));
- connect(d->m_profilerConnections, SIGNAL(traceFinished(qint64)), d->m_profilerModelManager->traceTime(), SLOT(setEndTime(qint64)));
- connect(d->m_profilerConnections, SIGNAL(dataReadyForProcessing()), d->m_profilerModelManager, SLOT(complete()));
+ d->m_profilerConnections->setModelManager(d->m_profilerModelManager);
Command *command = 0;
const Context globalContext(C_GLOBAL);