Commit Graph

1631 Commits

Author SHA1 Message Date
hjk
249a36b573 Analyzer: Remove AnalyzerRunControl::runnable() and .connection()
These re-implementations are conceptually "too specific". Rather let
the indiviual tools handle there expectations themselves.

Change-Id: I0bbea407b2241816a40d19eb1dbb0a7589cbda7b
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2016-01-29 09:39:47 +00:00
hjk
d5ecd4cf8b ProjectExplorer: Use StandardRunnable in ApplicationLauncher
Change-Id: I7092d748207762d3dbd6c69c01cc06c88cbf63d8
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2016-01-28 11:35:51 +00:00
Christian Stenger
76ef8e3c75 QmlProfiler: Fix missing environment for profiling Quick UI
Change-Id: I006802132db3a2d970f028306def16f953fabf53
Reviewed-by: hjk <hjk@theqtcompany.com>
2016-01-28 09:45:35 +00:00
hjk
07332eecb3 QmlProfiler: Use StandardRunnable in LocalQmlProfilerRunner
Change-Id: I8c59f9dfe562717edd86453b0154b7f2811a06f3
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2016-01-28 08:08:19 +00:00
hjk
f2012bca8f Analyzer: Remove explicit working directory storage in run control
Instead, use the one in its (Standard)Runnable.

The change is mechanical except to the fallback to the project directory
which was introduced in 8150209f to keep some compatibility with the previous
setup of the Android runner which created and copied the fallback value around
and ignored it in the end. Not producing the fallback value is less effort.

Change-Id: Ie04da570f0f9fbc1d048f2eacaed522f7253afa3
Reviewed-by: hjk <hjk@theqtcompany.com>
2016-01-27 16:34:01 +00:00
hjk
61709e9266 Analyzer: Use a StandardRunnable instead of an AnalyzerRunnable
... with a lot potential to code consolidation.

Change-Id: I4d3a7fcc1cc6ae8763799f18cf9701695f387791
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2016-01-27 15:29:11 +00:00
hjk
9ae2ce7629 ProjectExplorer: Drop LocalApplicationRunConfiguration
The functionality can be provided by producing a suitable Runnable
in the derived classes directly.

Change-Id: I7b8e8fe33fffd2b00176b6cf6633eca4e152e466
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
2016-01-26 10:09:29 +00:00
Ulf Hermann
ed96957714 QmlProfiler: Fix logic in QmlProfilerTool::clientsDisconnected()
We want to do acquiringDone(), no matter if the app died or not.
Otherwise we wait forever for more data to arrive if the app has not
died.

Change-Id: Iad807ad75d7b8aba899211497586e5324124d16a
Reviewed-by: hjk <hjk@theqtcompany.com>
2016-01-22 17:34:54 +00:00
Ulf Hermann
a1dd1e4c5b Add runConfiguration to remote tool starters
Most of them need a run configuration. It's better to pass the
right one than to use various hacky ways to work around it.

Change-Id: Ic21b0ef33bdd79b526b1e1a1ead5ca87d9f32c4d
Reviewed-by: hjk <hjk@theqtcompany.com>
2016-01-22 17:26:17 +00:00
hjk
e6f6026520 Valgrind: Random cleanups
Remove unneeded function arguments, Qt 5 connects etc.

Change-Id: I95faf80e7b5ccc574e2457b841f7913bc2aa05d3
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2016-01-21 12:56:37 +00:00
Ulf Hermann
434b51dca6 QmlProfiler: finalize setup when starting
Change-Id: If7cf8158bf4c0cd6a2ffff2d5157a98f2d8c0f50
Reviewed-by: hjk <hjk@theqtcompany.com>
2016-01-21 09:05:52 +00:00
hjk
789488af4d Analyzer: Remove AnalyzerStartParameters
Change-Id: I4188ffd046cc92be64bf9751e90fe8c66942b08c
Reviewed-by: Ulf Hermann <ulf.hermann@theqtcompany.com>
2016-01-20 17:10:27 +00:00
hjk
5dad96e3b7 QmlProfiler: Adapt QmlProfilerRunControlFactory to Analyzer changes
Change-Id: I8047cdb3fc65df2139c1a5770218c48e83ef5f5a
Reviewed-by: Ulf Hermann <ulf.hermann@theqtcompany.com>
2016-01-20 16:08:07 +00:00
Robert Loehning
c594d27c68 Small string improvements
Change-Id: Iad60750b4c4164b074a3b0203e4121e8586909de
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@theqtcompany.com>
2016-01-20 13:22:28 +00:00
hjk
abe08966a4 Analyzer: Remove AnalyzerStartParameters from AnalyzerRunControl ctor
Change-Id: I0f7e982a9144469869e0c42daedfb411789511ca
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
2016-01-20 11:06:50 +00:00
hjk
dcba1b3c36 Analyzer: Split AnalyzerStartParameters
... into AnalyzerRunnable and AnalyzerConnection and use the
RunControl's storage instead of an own copy in AnalyzerRunControl.

This is an intermediate step on the way to remove
AnalyzerStartParameters.

Change-Id: Iee7c38781b2fd6ef030dcdada1993684cbb34c74
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
2016-01-20 09:39:45 +00:00
Tobias Hunger
dc8a12780f QmlProfiler: Fix warning during build
Change-Id: Ibfb33a67ee431159bdbe132ecd5cdce95cf6add8
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
2016-01-20 09:02:16 +00:00
Tobias Hunger
397e7f4843 Update License according to agreement with Free Qt Foundation
* Update files in src/plugins

Change-Id: Ia5d77fad7d19d4bb3498e78661982f68729adb22
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
2016-01-19 15:57:01 +00:00
Ulf Hermann
42d570a3fe Rename Project::ExcludeGeneratedFiles
We want to distinguish between source files and generated files. So
let's call them by their names.

Change-Id: I324c4b82ca7fb7d8d0e175ea6c4f14f1306ec929
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
2016-01-13 14:12:08 +00:00
hjk
8150209ff7 Analyzer: Slim down AnalyzerStartParameters
* SysRoot can always be determined from kit.
* Pass around RunMode as extra parameter
  not as part of AnalyzerStartParameters.
  That's closer to the pattern used elsewhere.
* Environment was always initialized from the runconfig's
  EnvironmentAspect. The tools can do that directly.
* Provide setter for display name for cases where
  it is not equal to RunConfiguration::displayName

Change-Id: I811a0d7cdeb55cc37a16a593b3942abb567a2150
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
Reviewed-by: Ulf Hermann <ulf.hermann@theqtcompany.com>
2016-01-07 18:11:09 +00:00
Ulf Hermann
ffa0c86617 QmlProfiler: Allow multiple events views loaded from plugins
Change-Id: Ifaf4e63f4a843a42a1a22f005e87d8c1a4604686
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2016-01-06 14:28:24 +00:00
Ulf Hermann
e4efb9bb3b QmlProfiler: Retrieve common actions from ActionManager
This removes the need to pass the QmlProfilerTool instance to all views.
QmlProfilerTool is exported so that we can access the common actions
from plugins.

Change-Id: Ie7072c23ef35763b729f4b87acce47ecbdb76e43
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2016-01-06 14:28:20 +00:00
Ulf Hermann
c16b843ecc QmlProfiler: Remove "Limit to Range" option from statistics view
You don't see the range you are limiting to in the statistics view, so
I doubt that anyone has ever understood what this does.

Change-Id: Ic9da3c1ac067f76d239a931d316a69a3999884a4
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2016-01-06 14:25:19 +00:00
Ulf Hermann
3cd2d375ff QmlProfiler: Rename QmlProfilerEventsModelProxy
It is only used for the statistics view.

Change-Id: I71027dd864715b4a2f95c2b11af0c0d83c514229
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2016-01-06 14:25:15 +00:00
Ulf Hermann
4223d76c48 QmlProfiler: Rename "events" to "statistics" view
Change-Id: Id552e0ead056214a7d72dd618c54897b55cd5e38
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2016-01-06 14:25:08 +00:00
Ulf Hermann
df4e46ff02 QmlProfiler: Reduce external interface of QQmlProfilerEventsWidget
Change-Id: I06a610cca606b98bc3f5741c1363b98f2b28d7eb
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2016-01-06 14:22:43 +00:00
Ulf Hermann
01e4ba4a10 QmlProfiler: Move constants to qmlprofilerconstants.h
Change-Id: Ic4f1b02bbf9e1467811334a16cd9c13d1924c47e
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2016-01-06 14:22:09 +00:00
Ulf Hermann
334e4f32d9 QmlProfiler: Show self time in events view
Someone had already prepared it years ago, but forgot to wire up the
details.

Change-Id: I895bf34694f134eb9526cea98fe08f91b6b9d808
Task-number: QTCREATORBUG-15442
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-12-03 11:40:27 +00:00
Ulf Hermann
a841dcebfc QmlProfiler: Deobfuscate connection mechanism
Whenever we create the connection we as well try connectToHost()
immediately instead of deferring it until the next timeout. The
else branch in tryToConnect() would never be executed because if
the connection is there and not connecting or connected, then
the socketState must be != ConnectedState.

Change-Id: I6736b35348671961fbb3a48edb5e9c6c1d7ce915
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-12-02 09:24:34 +00:00
Ulf Hermann
ff1e2150e4 QmlProfiler: Fix bogus disconnect() calls
Change-Id: I8caa5a2a45682e7472b9ebac9050c1a9a2a6f932
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-11-27 16:25:57 +00:00
Eike Ziller
9099a37d4b Fix merge issue
Change-Id: I414a72ba77ea5218711fb9a8b0d3d160670a93d2
Reviewed-by: Ulf Hermann <ulf.hermann@theqtcompany.com>
2015-11-26 12:22:04 +00:00
Eike Ziller
fa227a4eef Merge remote-tracking branch 'origin/3.6'
Conflicts:
	src/libs/qmldebug/qmldebugclient.cpp
	src/libs/qmldebug/qmldebugclient.h
	src/plugins/qmlprofiler/qmlprofilerclientmanager.cpp

Change-Id: I9594b4e9befc78f8138deb121f0bfc4212f7edbf
2015-11-26 13:01:20 +01:00
Ulf Hermann
35ed93fe2d QmlProfiler: replace TCP connections after 200ms of failing to connect
Sometimes it takes very long to establish a TCP connection to the debug
server. If the connection hasn't been established after 200ms we
probably don't want to wait for it any longer. If, however, the TCP
connection is there and the "hello" hasn't arrived yet, we keep the
connection in order not to trigger an unexpected state in the
application.

Change-Id: I1a64493fefc759f526cdebff434a2557077f9246
Task-number: QTCREATORBUG-15383
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2015-11-26 11:40:51 +00:00
Ulf Hermann
e3c16259ed QmlProfiler: When showing connection error, cancel any connects
The device can exist without being open, which makes the disconnect()
when the message box finishes ineffective. Also, disconnect() merely
trashes the signals and slots, but doesn't remove the device.

Task-number: QTCREATORBUG-15383
Change-Id: I8eb8ca3db496c9841156c0949c3e3bfd92329056
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2015-11-26 10:36:55 +00:00
Alessandro Portale
033862f305 Themed Icons: Introduce Utils::Icon
Instead of describing icons via file name or in the themed icons case
via
a string that is a list of mask/color pairs, we have now a class for it.

Icons are now listed in per-plugin *icons.h headers.

RunControl::m_icon was The only place left where an icon property was in
fact a string. This patch changes that member to be a Utils::Icon.

Change-Id: Ibcfa8bb25e6d2e330c567ee7ccc0b97ead603177
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
2015-11-25 12:30:52 +00:00
Eike Ziller
3f63635053 Merge remote-tracking branch 'origin/3.6'
Conflicts:
    src/libs/3rdparty/modeling/qmt/model_widgets_ui/classmembersedit.cpp
    src/plugins/git/gitplugin.cpp

Change-Id: I78a21510d484b655e01141a3543e08ee2123f9cd
2015-11-23 14:25:38 +01:00
Ulf Hermann
3b48de66bf QmlProfiler: Don't open 2 error boxes when failing to connect
If we've parsed an error message from the application's stderr we can
stop trying to connect.

Change-Id: I8d58e5db19de3253681c52be1637cfddfd46a519
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-11-20 11:40:10 +00:00
Ulf Hermann
ffc11d5e9e QmlProfiler: allow for multiple sequential traces to be aggregated
Task-number: QTCREATORBUG-13317
Change-Id: Ic7d1d5c94d8d522741b6c4207a21a43f521da5fb
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-11-19 12:16:44 +00:00
Ulf Hermann
030acfdf73 QmlProfiler: Send the client recording state to new engines
Otherwise some engine can stop recording by sending a "Complete" event
and that will be the state we send to any new engines, although the
recording button was checked when the recording started.

Also, don't redirect state changes and the associated recording state
sending through a signal and slot. This allows us to remove the
"enabled" property of QmlProfilerTraceClient and adapt the signature
of sendRecordingStatus() to facilitate the redirection of newEngine()
through the client manager.

Task-number: QTCREATORBUG-13317
Change-Id: Ie9dc6785eb761514bc96aaf5724f7b23d3c2932e
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-11-19 12:16:41 +00:00
Ulf Hermann
d7f6dec98e QmlProfiler: Use correct coding style and remove dead code
Change-Id: I10967ee080076d40cf54aaf4ae28c63d78b7f216
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-11-19 12:16:38 +00:00
Ulf Hermann
d58b714a3a QmlProfiler: Debug messages are no QML events ...
In particular, they can also occur if we're not AcquiringData.

Change-Id: Ia310206ee15973fc5b2fa1c607d7c9a48b6f435f
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-11-19 12:16:35 +00:00
Ulf Hermann
7b4e253a1e QmlProfiler: Support local connections on Qt >= 5.6
This removes the need to receive messages from the application via
stderr. The "Connecting to socket" is still parsed, but only for
diagnostic purposes. If it doesn't arrive, the profiling will still
work.

Change-Id: I022691293da2a1e671ba1263bc76e4044bf1a5b7
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-11-19 11:33:20 +00:00
Ulf Hermann
2217eef3a3 QmlDebug: Allow different styles of command line arguments
We have tcp, local, and native by now. We have to expose that in a
clean way.

Change-Id: I0ce7be693aa7f47ebea7abe435a224a176b6c94b
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-11-19 11:33:15 +00:00
Ulf Hermann
81eea72d44 QmlDebug: Simplify error and state signaling
There is no point in sending two signals for every state change and
error. Also, the signals only reflect events in the socket, not in the
logical connection.

Change-Id: I617a925c69164aa1a02a7781b9da7dca55daa304
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-11-19 11:32:46 +00:00
Ulf Hermann
47317eff60 QmlDebug: Rename some members of QmlDebugConnection
This is to adopt the naming to the code in src/qmldebug in
qtdeclarative. Once we can require a version of Qt that has qmldebug
for building QtCreator we can then remove our own version of this code.

Change-Id: I573f0703871b5812789c5c7a6287567d5c2875e6
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-11-19 11:32:42 +00:00
Ulf Hermann
04fda7d0f5 QmlProfiler: Avoid unrestricted unions
It seems we cannot use them, yet.

Change-Id: Ie5b0fd7daffbdc46992fc040448058dbde4b7209
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
2015-11-18 11:35:24 +00:00
Ulf Hermann
131c8027da QmlProfiler: Fix traceTime updates
If the trace time hasn't been set yet, decreaseStartTime and
increaseEndTime should still do something.

Change-Id: I626c0df66a5d7327708ada77c78546ad4aafc52b
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-11-17 16:44:01 +00:00
Ulf Hermann
9f857880a7 QmlProfiler: Initialize the model progress numbers
Change-Id: I037d0146e20d5fe1681f455fbd5da9ac5e89184b
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-11-17 16:03:31 +00:00
Ulf Hermann
b89d12c450 QmlProfiler: Include debug messages in trace
A separate model will show them in the timeline for better orientation.

Change-Id: I537bac82ddef6a8bcc64ae403731512f8edcc9db
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-11-17 13:06:33 +00:00
Ulf Hermann
35cedb2aee QmlProfiler: Allow string data in events
The restriction to put all strings in the type data is becoming a
burden to further enhancements. Also, introduce proper ctors for all
event structs.

Change-Id: I42d3bac96155ac1ac183a2b82785ce0396c5a932
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-11-17 13:06:29 +00:00