~bzoltan/kubuntu-packaging/decouple_cmake_plugin

« back to all changes in this revision

Viewing changes to src/plugins/qmlprofiler/qmlprofilerclientmanager.cpp

  • Committer: Timo Jyrinki
  • Date: 2013-11-15 12:25:23 UTC
  • mfrom: (1.1.28)
  • Revision ID: timo.jyrinki@canonical.com-20131115122523-i2kyamsu4gs2mu1m
New upstream release.

Show diffs side-by-side

added added

removed removed

Lines of Context:
40
40
#include <QTimer>
41
41
#include <QMessageBox>
42
42
 
 
43
#include "qmlprofilermodelmanager.h"
 
44
 
43
45
using namespace QmlDebug;
44
46
using namespace Core;
45
47
 
46
48
namespace QmlProfiler {
47
49
namespace Internal {
48
50
 
49
 
class QmlProfilerClientManager::QmlProfilerClientManagerPrivate {
 
51
class QmlProfilerClientManager::QmlProfilerClientManagerPrivate
 
52
{
50
53
public:
51
 
    QmlProfilerClientManagerPrivate(QmlProfilerClientManager *qq) { Q_UNUSED(qq); }
52
 
 
53
 
    QmlProfilerStateManager* profilerState;
 
54
    QmlProfilerStateManager *profilerState;
54
55
 
55
56
    QmlDebugConnection *connection;
56
57
    QPointer<QmlProfilerTraceClient> qmlclientplugin;
70
71
 
71
72
    bool v8DataReady;
72
73
    bool qmlDataReady;
 
74
 
 
75
    QmlProfilerModelManager *modelManager;
73
76
};
74
77
 
75
78
QmlProfilerClientManager::QmlProfilerClientManager(QObject *parent) :
76
 
    QObject(parent), d(new QmlProfilerClientManagerPrivate(this))
 
79
    QObject(parent), d(new QmlProfilerClientManagerPrivate)
77
80
{
78
81
    setObjectName(QLatin1String("QML Profiler Connections"));
79
82
 
84
87
    d->v8DataReady = false;
85
88
    d->qmlDataReady = false;
86
89
 
 
90
    d->modelManager = 0;
 
91
 
87
92
    d->connectionTimer.setInterval(200);
88
93
    connect(&d->connectionTimer, SIGNAL(timeout()), SLOT(tryToConnect()));
89
94
}
97
102
 
98
103
    delete d;
99
104
}
 
105
 
 
106
void QmlProfilerClientManager::setModelManager(QmlProfilerModelManager *m)
 
107
{
 
108
    if (d->modelManager) {
 
109
        disconnect(this,SIGNAL(dataReadyForProcessing()), d->modelManager, SLOT(complete()));
 
110
    }
 
111
    d->modelManager = m;
 
112
    if (d->modelManager) {
 
113
        connect(this,SIGNAL(dataReadyForProcessing()), d->modelManager, SLOT(complete()));
 
114
    }
 
115
}
 
116
 
100
117
////////////////////////////////////////////////////////////////
101
118
// Interface
102
119
void QmlProfilerClientManager::setTcpConnection(QString host, quint64 port)
161
178
        connect(d->qmlclientplugin.data(), SIGNAL(complete()),
162
179
                this, SLOT(qmlComplete()));
163
180
        connect(d->qmlclientplugin.data(),
164
 
                SIGNAL(range(int,int,qint64,qint64,QStringList,QmlDebug::QmlEventLocation)),
165
 
                this,
166
 
                SIGNAL(addRangedEvent(int,int,qint64,qint64,QStringList,QmlDebug::QmlEventLocation)));
 
181
                SIGNAL(rangedEvent(int,int,qint64,qint64,QStringList,QmlDebug::QmlEventLocation,
 
182
                             qint64,qint64,qint64,qint64,qint64)),
 
183
                d->modelManager,
 
184
                SLOT(addQmlEvent(int,int,qint64,qint64,QStringList,QmlDebug::QmlEventLocation,
 
185
                             qint64,qint64,qint64,qint64,qint64)));
167
186
        connect(d->qmlclientplugin.data(), SIGNAL(traceFinished(qint64)),
168
 
                this, SIGNAL(traceFinished(qint64)));
 
187
                d->modelManager->traceTime(), SLOT(setEndTime(qint64)));
169
188
        connect(d->qmlclientplugin.data(), SIGNAL(traceStarted(qint64)),
170
 
                this, SIGNAL(traceStarted(qint64)));
171
 
        connect(d->qmlclientplugin.data(), SIGNAL(frame(qint64,int,int)),
172
 
                this, SIGNAL(addFrameEvent(qint64,int,int)));
 
189
                d->modelManager->traceTime(), SLOT(setStartTime(qint64)));
173
190
        connect(d->qmlclientplugin.data(), SIGNAL(enabledChanged()),
174
191
                d->qmlclientplugin.data(), SLOT(sendRecordingStatus()));
175
192
        // fixme: this should be unified for both clients
180
197
        connect(d->v8clientplugin.data(), SIGNAL(complete()), this, SLOT(v8Complete()));
181
198
        connect(d->v8clientplugin.data(),
182
199
                SIGNAL(v8range(int,QString,QString,int,double,double)),
183
 
                this,
184
 
                SIGNAL(addV8Event(int,QString,QString,int,double,double)));
 
200
                d->modelManager,
 
201
                SLOT(addV8Event(int,QString,QString,int,double,double)));
185
202
        connect(d->v8clientplugin.data(), SIGNAL(enabledChanged()),
186
203
                d->v8clientplugin.data(), SLOT(sendRecordingStatus()));
187
204
    }
193
210
        disconnect(d->qmlclientplugin.data(), SIGNAL(complete()),
194
211
                   this, SLOT(qmlComplete()));
195
212
        disconnect(d->qmlclientplugin.data(),
196
 
                   SIGNAL(range(int,int,qint64,qint64,QStringList,QmlDebug::QmlEventLocation)),
197
 
                   this,
198
 
                   SIGNAL(addRangedEvent(int,int,qint64,qint64,QStringList,QmlDebug::QmlEventLocation)));
 
213
                   SIGNAL(rangedEvent(int,int,qint64,qint64,QStringList,QmlDebug::QmlEventLocation,
 
214
                                qint64,qint64,qint64,qint64,qint64)),
 
215
                   d->modelManager,
 
216
                   SLOT(addQmlEvent(int,int,qint64,qint64,QStringList,QmlDebug::QmlEventLocation,
 
217
                                    qint64,qint64,qint64,qint64,qint64)));
199
218
        disconnect(d->qmlclientplugin.data(), SIGNAL(traceFinished(qint64)),
200
 
                   this, SIGNAL(traceFinished(qint64)));
 
219
                d->modelManager->traceTime(), SLOT(setEndTime(qint64)));
201
220
        disconnect(d->qmlclientplugin.data(), SIGNAL(traceStarted(qint64)),
202
 
                   this, SIGNAL(traceStarted(qint64)));
 
221
                d->modelManager->traceTime(), SLOT(setStartTime(qint64)));
203
222
        disconnect(d->qmlclientplugin.data(), SIGNAL(frame(qint64,int,int)),
204
 
                   this, SIGNAL(addFrameEvent(qint64,int,int)));
 
223
                   d->modelManager, SLOT(addFrameEvent(qint64,int,int)));
205
224
        disconnect(d->qmlclientplugin.data(), SIGNAL(enabledChanged()),
206
225
                   d->qmlclientplugin.data(), SLOT(sendRecordingStatus()));
207
226
        // fixme: this should be unified for both clients
212
231
        disconnect(d->v8clientplugin.data(), SIGNAL(complete()), this, SLOT(v8Complete()));
213
232
        disconnect(d->v8clientplugin.data(),
214
233
                   SIGNAL(v8range(int,QString,QString,int,double,double)),
215
 
                   this,
216
 
                   SIGNAL(addV8Event(int,QString,QString,int,double,double)));
 
234
                   d->modelManager,
 
235
                   SLOT(addV8Event(int,QString,QString,int,double,double)));
217
236
        disconnect(d->v8clientplugin.data(), SIGNAL(enabledChanged()),
218
237
                   d->v8clientplugin.data(), SLOT(sendRecordingStatus()));
219
238
    }
237
256
void QmlProfilerClientManager::disconnectClient()
238
257
{
239
258
    // this might be actually be called indirectly by QDDConnectionPrivate::readyRead(), therefore allow
240
 
    // method to complete before deleting object
 
259
    // function to complete before deleting object
241
260
    if (d->connection) {
242
261
        d->connection->deleteLater();
243
262
        d->connection = 0;