diff options
author | Eike Ziller <eike.ziller@qt.io> | 2018-01-09 13:07:57 +0100 |
---|---|---|
committer | Eike Ziller <eike.ziller@qt.io> | 2018-01-09 13:13:00 +0100 |
commit | cff2cc90e21c7ef4d363d459be9ad6cf17b9b494 (patch) | |
tree | fc37439466f7ccf6a8bbfc4bb64e1ab21bfa4c21 /src/plugins/qmlprofiler | |
parent | b1239d6c4c77814c62598469bc1588b43c690acc (diff) | |
parent | 32786ea9cadb4329b09dae2f825e61dcbd9fcc75 (diff) |
Merge remote-tracking branch 'origin/4.5'
Conflicts:
src/plugins/cpptools/clangcompileroptionsbuilder.cpp
src/plugins/cpptools/clangcompileroptionsbuilder.h
src/plugins/cpptools/compileroptionsbuilder.cpp
src/plugins/qmlprofiler/qmlprofilerclientmanager.cpp
src/plugins/qmlprofiler/qmlprofilerclientmanager.h
src/plugins/qmlprofiler/qmlprofilertraceclient.cpp
src/plugins/qmlprofiler/qmlprofilertraceclient.h
src/shared/qbs
Change-Id: I364ababc5d41046d17e999096c4a7187c4e4e010
Diffstat (limited to 'src/plugins/qmlprofiler')
-rw-r--r-- | src/plugins/qmlprofiler/qmlprofilerclientmanager.cpp | 6 | ||||
-rw-r--r-- | src/plugins/qmlprofiler/qmlprofilerclientmanager.h | 1 | ||||
-rw-r--r-- | src/plugins/qmlprofiler/qmlprofilermodelmanager.cpp | 19 | ||||
-rw-r--r-- | src/plugins/qmlprofiler/qmlprofilermodelmanager.h | 2 | ||||
-rw-r--r-- | src/plugins/qmlprofiler/qmlprofilertool.cpp | 15 | ||||
-rw-r--r-- | src/plugins/qmlprofiler/qmlprofilertool.h | 1 | ||||
-rw-r--r-- | src/plugins/qmlprofiler/qmlprofilertraceclient.cpp | 11 | ||||
-rw-r--r-- | src/plugins/qmlprofiler/qmlprofilertraceclient.h | 1 |
8 files changed, 47 insertions, 9 deletions
diff --git a/src/plugins/qmlprofiler/qmlprofilerclientmanager.cpp b/src/plugins/qmlprofiler/qmlprofilerclientmanager.cpp index 43e54dda238..c49277abf7d 100644 --- a/src/plugins/qmlprofiler/qmlprofilerclientmanager.cpp +++ b/src/plugins/qmlprofiler/qmlprofilerclientmanager.cpp @@ -57,6 +57,12 @@ void QmlProfilerClientManager::setFlushInterval(quint32 flushInterval) m_flushInterval = flushInterval; } +void QmlProfilerClientManager::clearEvents() +{ + if (m_clientPlugin) + m_clientPlugin->clearEvents(); +} + void QmlProfilerClientManager::clearBufferedData() { if (m_clientPlugin) diff --git a/src/plugins/qmlprofiler/qmlprofilerclientmanager.h b/src/plugins/qmlprofiler/qmlprofilerclientmanager.h index 8f3c8f668be..8946b595160 100644 --- a/src/plugins/qmlprofiler/qmlprofilerclientmanager.h +++ b/src/plugins/qmlprofiler/qmlprofilerclientmanager.h @@ -46,6 +46,7 @@ class QmlProfilerClientManager : public QmlDebug::QmlDebugConnectionManager public: explicit QmlProfilerClientManager(QObject *parent = 0); void setProfilerStateManager(QmlProfilerStateManager *profilerState); + void clearEvents(); void setModelManager(QmlProfilerModelManager *modelManager); void setFlushInterval(quint32 flushInterval); void clearBufferedData(); diff --git a/src/plugins/qmlprofiler/qmlprofilermodelmanager.cpp b/src/plugins/qmlprofiler/qmlprofilermodelmanager.cpp index a7566fd2c05..f64e3c99789 100644 --- a/src/plugins/qmlprofiler/qmlprofilermodelmanager.cpp +++ b/src/plugins/qmlprofiler/qmlprofilermodelmanager.cpp @@ -691,9 +691,8 @@ QmlProfilerModelManager::State QmlProfilerModelManager::state() const return d->state; } -void QmlProfilerModelManager::clear() +void QmlProfilerModelManager::doClearEvents() { - setState(ClearingData); d->numLoadedEvents = 0; d->numFinishedFinalizers = 0; d->file.remove(); @@ -702,13 +701,25 @@ void QmlProfilerModelManager::clear() d->eventStream.setDevice(&d->file); else emit error(tr("Cannot open temporary trace file to store events.")); - d->eventTypes.clear(); - d->detailsRewriter->clear(); d->traceTime->clear(); d->notesModel->clear(); setVisibleFeatures(0); setRecordedFeatures(0); +} +void QmlProfilerModelManager::clearEvents() +{ + setState(ClearingData); + doClearEvents(); + setState(Empty); +} + +void QmlProfilerModelManager::clear() +{ + setState(ClearingData); + doClearEvents(); + d->eventTypes.clear(); + d->detailsRewriter->clear(); setState(Empty); } diff --git a/src/plugins/qmlprofiler/qmlprofilermodelmanager.h b/src/plugins/qmlprofiler/qmlprofilermodelmanager.h index f5fb7158223..576d5f87f17 100644 --- a/src/plugins/qmlprofiler/qmlprofilermodelmanager.h +++ b/src/plugins/qmlprofiler/qmlprofilermodelmanager.h @@ -134,6 +134,7 @@ public: static const char *featureName(ProfileFeature feature); + void clearEvents(); void clear(); void restrictToRange(qint64 startTime, qint64 endTime); bool isRestrictedToRange() const; @@ -156,6 +157,7 @@ signals: private: void setState(State state); void detailsChanged(int typeId, const QString &newString); + void doClearEvents(); class QmlProfilerModelManagerPrivate; QmlProfilerModelManagerPrivate *d; diff --git a/src/plugins/qmlprofiler/qmlprofilertool.cpp b/src/plugins/qmlprofiler/qmlprofilertool.cpp index 4c6c72dbe3b..99c2cf12860 100644 --- a/src/plugins/qmlprofiler/qmlprofilertool.cpp +++ b/src/plugins/qmlprofiler/qmlprofilertool.cpp @@ -44,6 +44,7 @@ #include <utils/fancymainwindow.h> #include <utils/fileinprojectfinder.h> #include <utils/qtcassert.h> +#include <utils/url.h> #include <utils/utilsicons.h> #include <projectexplorer/environmentaspect.h> #include <projectexplorer/projectexplorer.h> @@ -406,7 +407,7 @@ void QmlProfilerTool::recordingButtonChanged(bool recording) if (checkForUnsavedNotes()) { if (!d->m_profilerModelManager->aggregateTraces() || d->m_profilerModelManager->state() == QmlProfilerModelManager::Done) - clearData(); // clear before the recording starts, unless we aggregate recordings + clearEvents(); // clear before the recording starts, unless we aggregate recordings if (d->m_profilerState->clientRecording()) d->m_profilerState->setClientRecording(false); d->m_profilerState->setClientRecording(true); @@ -471,6 +472,13 @@ void QmlProfilerTool::showTimeLineSearch() Core::Find::openFindToolBar(Core::Find::FindForwardDirection); } +void QmlProfilerTool::clearEvents() +{ + d->m_profilerModelManager->clearEvents(); + d->m_profilerConnections->clearEvents(); + setRecordedFeatures(0); +} + void QmlProfilerTool::clearData() { d->m_profilerModelManager->clear(); @@ -555,6 +563,7 @@ void QmlProfilerTool::attachToWaitingApplication() IDevice::ConstPtr device = DeviceKitInformation::device(kit); QTC_ASSERT(device, return); QUrl toolControl = device->toolControlChannel(IDevice::QmlControlChannel); + serverUrl.setScheme(Utils::urlTcpScheme()); serverUrl.setHost(toolControl.host()); serverUrl.setPort(port); @@ -565,6 +574,8 @@ void QmlProfilerTool::attachToWaitingApplication() auto profiler = new QmlProfilerRunner(runControl); profiler->setServerUrl(serverUrl); + connect(d->m_profilerConnections, &QmlProfilerClientManager::connectionClosed, + runControl, &RunControl::initiateStop); ProjectExplorerPlugin::startRunControl(runControl); } @@ -858,7 +869,7 @@ void QmlProfilerTool::serverRecordingChanged() d->m_recordingElapsedTime.start(); if (!d->m_profilerModelManager->aggregateTraces() || d->m_profilerModelManager->state() == QmlProfilerModelManager::Done) - clearData(); + clearEvents(); d->m_profilerModelManager->startAcquiring(); } else { d->m_recordingTimer.stop(); diff --git a/src/plugins/qmlprofiler/qmlprofilertool.h b/src/plugins/qmlprofiler/qmlprofilertool.h index 4b784dfe8e1..334e51aeed2 100644 --- a/src/plugins/qmlprofiler/qmlprofilertool.h +++ b/src/plugins/qmlprofiler/qmlprofilertool.h @@ -74,6 +74,7 @@ public: void gotoSourceLocation(const QString &fileUrl, int lineNumber, int columnNumber); private: + void clearEvents(); void clearData(); void showErrorDialog(const QString &error); void profilerDataModelStateChanged(); diff --git a/src/plugins/qmlprofiler/qmlprofilertraceclient.cpp b/src/plugins/qmlprofiler/qmlprofilertraceclient.cpp index 31c664e5c78..6c859423d8e 100644 --- a/src/plugins/qmlprofiler/qmlprofilertraceclient.cpp +++ b/src/plugins/qmlprofiler/qmlprofilertraceclient.cpp @@ -227,10 +227,8 @@ QmlProfilerTraceClient::~QmlProfilerTraceClient() delete d; } -void QmlProfilerTraceClient::clear() +void QmlProfilerTraceClient::clearEvents() { - d->serverTypeIds.clear(); - d->eventTypeIds.clear(); d->rangesInProgress.clear(); d->pendingMessages.clear(); d->pendingDebugMessages.clear(); @@ -241,6 +239,13 @@ void QmlProfilerTraceClient::clear() emit cleared(); } +void QmlProfilerTraceClient::clear() +{ + d->eventTypeIds.clear(); + d->serverTypeIds.clear(); + clearEvents(); +} + void QmlProfilerTraceClient::sendRecordingStatus(int engineId) { d->sendRecordingStatus(engineId); diff --git a/src/plugins/qmlprofiler/qmlprofilertraceclient.h b/src/plugins/qmlprofiler/qmlprofilertraceclient.h index b71324e21e9..91fb6038b73 100644 --- a/src/plugins/qmlprofiler/qmlprofilertraceclient.h +++ b/src/plugins/qmlprofiler/qmlprofilertraceclient.h @@ -55,6 +55,7 @@ public: virtual void messageReceived(const QByteArray &) override; virtual void stateChanged(State status) override; + void clearEvents(); void clear(); void sendRecordingStatus(int engineId = -1); void setRequestedFeatures(quint64 features); |