Commit Graph

1631 Commits

Author SHA1 Message Date
Ulf Hermann
e5a38bacc4 Move QmlProfiler specific files from qmldebug to qmlprofiler
These file were not used anywhere else and had no business to be in
qmldebug to begin with. Moving them allows us to drop a number of
namespace qualifications and forces us to rename a few local symbols
in other classes in order to avoid name clashes.

Change-Id: I658ed455eec027cbaddacf2980d2ea6827ae6205
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
2016-05-03 15:00:50 +00:00
Eike Ziller
0f94aa3f4d Merge remote-tracking branch 'origin/4.0'
Conflicts:
	src/plugins/debugger/debuggerruncontrol.cpp
	src/plugins/projectexplorer/projectwizardpage.cpp
	src/plugins/projectexplorer/xcodebuildparser.h
	src/plugins/qmldesigner/qmldesignerplugin.cpp
	src/tools/clangbackend/ipcsource/translationunits.cpp

Change-Id: Ibf0857cf8dbf95fc9ac13d5c2112b3f4a2ca7de6
2016-05-03 11:49:01 +02:00
Ulf Hermann
75d8169e1e QmlProfiler: Repopulate the file finder when loading a trace
We might have opened or closed projects since the last time we
populated the finder, and we will need the files from those projects
to resolve file names in the trace.

Change-Id: I5979702a105c60e1be452b0b029d01d7498bff3d
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
2016-05-02 11:35:52 +00:00
Ulf Hermann
d92b8edf51 QmlProfiler: Keep find bar in focus when notes are found
Change-Id: Icca92cd50d7fcda510b7d9d023e4450f53cbdbfd
Task-number: QTCREATORBUG-16193
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
2016-05-02 10:50:55 +00:00
Ulf Hermann
e76685107a QmlProfiler: Remove timeline model factory
Change-Id: I173f23730f3b6c6b7fb41bb3810f2f21ae6b0acb
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
2016-04-29 13:58:26 +00:00
Ulf Hermann
a01dccb426 QmlProfiler: Remove QmlProfilerStatisticsView::getStatisticsInRange()
Change-Id: I49afff5b522fe51651b65046dc560aeb8217e23c
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
2016-04-29 13:32:50 +00:00
Ulf Hermann
09908655e1 QmlProfiler: Remove acceptedEventTypes property from flame graph model
It is unused.

Change-Id: I4c2cb02f21ca564d5b783c46b6cce7c4ac8223e5
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
2016-04-29 13:03:47 +00:00
Ulf Hermann
9092a9e9b8 QmlProfiler: Remove unused QmlProfilerEventsViewFactory
Change-Id: I813e1a7df32085f26dfdff8ae06f864c29903f20
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2016-04-29 08:08:30 +00:00
Alessandro Portale
e42dd1eb70 Move "Clear/Clean" icon from ProjectExplorer to Core
And use it in the menu entry for
"Window->Output Panes->Clear"

Change-Id: Iff8c011fde8a21fd10bf52b35163eb3f63659153
Reviewed-by: Alessandro Portale <alessandro.portale@theqtcompany.com>
2016-04-27 16:45:41 +00:00
Ulf Hermann
600e1cdcea Merge QmlProfiler and QmlProfilerExtension plugins
Change-Id: Iaa1de7afda664a7a0779f47d104f863a16a34976
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
2016-04-26 14:10:17 +00:00
hjk
ae9fff17a1 Use function objects for IRunConfigurationAspect::createConfigurationWidget
Change-Id: Ief70ed8fc2731ad21b00c74407ff4b659d705caf
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2016-04-22 08:53:59 +00:00
Eike Ziller
ee8bf341c6 Merge remote-tracking branch 'origin/4.0'
Conflicts:
	src/plugins/projectexplorer/session.cpp
	src/plugins/qmlprofiler/qmlprofilerclientmanager.cpp

Change-Id: I6946139f5e5fa3a9cdbb322fd50be248e2c0133f
2016-04-20 14:58:48 +02:00
Ulf Hermann
385237dbbd Use Utils::Port where possible
This solves the ambiguity between 0 and -1 being the "invalid" port.

Change-Id: I3bac11dd4117bb1820fbd58186699925b73df1c5
Reviewed-by: hjk <hjk@theqtcompany.com>
2016-04-20 11:06:34 +00:00
Ulf Hermann
88476a1435 QmlProfiler: Disable run controls after they are finished
Disabled runControls would still receive and send signals, confusing
the profiler state.

Also, connect lambdas with receiver argument where possible.

Change-Id: I0cd43456d3462efe402e9d68792b67314e9b6e0b
Task-number: QTCREATORBUG-16073
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2016-04-18 08:07:04 +00:00
Ulf Hermann
f0b7a73f33 QmlProfiler: Properly clear any pending connections before reconnecting
Otherwise we might end up waiting forever for a previous session's
connection.

Change-Id: I695d7a1ce21bc9720cc84436a7c4e6ba4616b0ab
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2016-04-15 14:39:12 +00:00
Eike Ziller
5c87432260 Merge remote-tracking branch 'origin/4.0'
Conflicts:
	src/plugins/qmldesigner/components/propertyeditor/propertyeditorqmlbackend.cpp

Change-Id: I6ae2d37290643d69390f679a54f7596782f3d97f
2016-04-12 11:34:46 +02:00
Alessandro Portale
b81d624543 QmlProfiler: New Record ON/OFF button icons
Change-Id: I95f4a28de5aeefdd321a5fe131351a6aab5b9498
Reviewed-by: hjk <hjk@theqtcompany.com>
2016-04-08 16:55:25 +00:00
Alessandro Portale
63cbcbc729 Locator: Remove old "Locator" menu icon. Re-use the "search" icon.
This patch removes the locator.png icon and replaces it with a
menu-friendly variation of the zoom icon.

The current ZOOM icon becomes ZOOM_TOOLBAR.

Change-Id: I8817c5c420801351db659caa4c4190a9074be720
Reviewed-by: hjk <hjk@theqtcompany.com>
2016-04-08 15:59:10 +00:00
Albert Astals Cid
be94766d25 Make sure the path we add to pendingDocs is canonical
Otherwise i had a problem where we were waiting for
 /usr/share/unity8//Dash/DashPageHeader.qml
but then on QmlProfilerDetailsRewriter::documentReady we got
 /usr/share/unity8/Dash/DashPageHeader.qml
and since it's not the same qstring we didn't realize it was the same file

Task-number: QTCREATORBUG-16020
Change-Id: I3b07450438d98734fbbff9f8b7a3d9d851ed4e5d
Reviewed-by: Ulf Hermann <ulf.hermann@theqtcompany.com>
2016-04-07 11:07:53 +00:00
Eike Ziller
1ae483fc83 Merge remote-tracking branch 'origin/4.0'
Conflicts:
	src/libs/utils/tcpportsgatherer.h

Change-Id: I495f3e05789f09efb8b1e84827893423a5b5b60c
2016-04-05 14:11:47 +02:00
Leena Miettinen
838216ab5b QML Profiler: Fix capitalization of UI text
- Qml > QML
- When an icon tooltip can be considered an action name, use
  book style capitalization and no punctuation.

Change-Id: I7ea6f4976f988c462160a4cdbecf14a792f8ca3f
Reviewed-by: Ulf Hermann <ulf.hermann@theqtcompany.com>
2016-04-05 09:55:20 +00:00
Oswald Buddenhagen
e426d08e54 Merge remote-tracking branch 'origin/4.0'
Conflicts:
	qtcreator.pri
	qtcreator.qbs
	src/plugins/debugger/debuggerruncontrol.cpp

Change-Id: I81b43480a1369e3d7be60ae26e812dda6b962b0b
2016-04-01 17:31:39 +02:00
hjk
39a38d5679 Wholesale conversion to #pragma once
Kudos to cgmb and https://github.com/cgmb/guardonce

Change-Id: Ifa8970734b8d43fd08c9260c645bdb0228633791
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
2016-03-30 15:20:19 +00:00
Ulf Hermann
9ddf44cb9a QmlProfiler: remove dead code
Change-Id: I9f55fa23056b33fe55d0621058978aa45b0fa622
Reviewed-by: hjk <hjk@theqtcompany.com>
2016-03-24 15:22:24 +00:00
Oswald Buddenhagen
3c2f0096ea Merge remote-tracking branch 'origin/4.0' 2016-03-22 15:23:12 +01:00
Ulf Hermann
7e03cbd8a0 Timeline: Allow setting the timeline model's displayName
This makes a lot of things easier. There is no real reason for it to be
const.

Change-Id: I426a2cbcfce6eae7cf7fabc28ab63098885324b8
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2016-03-17 09:25:24 +00:00
Eike Ziller
f1e14468c6 Merge remote-tracking branch 'origin/4.0'
Conflicts:
	src/plugins/coreplugin/find/findtoolbar.h

Change-Id: I7db695a28473d1b16c46b1e39a4d6fce537c13a1
2016-03-16 15:28:47 +01:00
hjk
bcf7a11c24 Core: Apply 'static' pattern to Core::FindPlugin
Also, rename it to Core::Find. It hasn't been a plugin for a while.

Change-Id: I845885ccf18bdc1440258d523b033758d5583881
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
2016-03-15 12:43:59 +00:00
Ulf Hermann
179a28f76d QmlProfiler: Choose state widget background from theme
This way we don't get white text on light grey background.

Change-Id: I632e692d0528d554e6ca90a4202d146c81d0ad66
Task-number: QTCREATORBUG-15842
Reviewed-by: Michal Klocek <michal.klocek@theqtcompany.com>
2016-03-11 16:59:09 +00:00
Christian Stenger
119a7dfd20 QmlProfiler: Fix running state
If a run finished not by using the 'Stop Profiling' button the
Application Output pane still handled the respective tab as running.

Change-Id: I283bea73fe9df86a89e6130ad6737a86e1dc0341
Reviewed-by: hjk <hjk@theqtcompany.com>
Reviewed-by: Ulf Hermann <ulf.hermann@theqtcompany.com>
2016-03-11 09:48:30 +00:00
hjk
5996ff0ab8 QmlProfiler: Disable start actions during building
Helps to prevent multiple starts of the tool in parallel.

Change-Id: Ibd2d0a66e7ce08ea07604f13fbee6d18a40dfc39
Reviewed-by: Ulf Hermann <ulf.hermann@theqtcompany.com>
2016-03-10 13:02:06 +00:00
hjk
92e301a054 Debugger: Merge debug mode and analyze mode
On the user-visible side, only the 'Analyze' mode button disappears,
and instead a combobox to switch between different tools in appears
in the Debug mode toolbar.

Internally, that's quite some re-organzition: The centralized
'Analyze mode is busy' flag is gone, allowing us to run e.g.
ClangStaticAnalyzer and MemCheck in parallel.

Analyzer tools and debugger now share the same mechanism to
generate/load/save dock widgets.

Analyzer tools now create and handle their own start/stop button
when appropriate. In general, Analyzer tools can create/handle more
than one run control at a time.

Further consolidation is possible, e.g. RunControl state handling
could be merged into the base ProjectExplorer::RunControl to
avoid the still existing duplication in ~15 instances.

Change-Id: I91e5940ebc4211f98056d507cf2f7b5f8efe7f07
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2016-03-07 15:06:10 +00:00
Eike Ziller
f4e87a7e0c Merge remote-tracking branch 'origin/3.6' into 4.0
Conflicts:
	src/plugins/projectexplorer/applicationlauncher.cpp
	src/plugins/projectexplorer/applicationlauncher.h
	src/plugins/qmlprofiler/qmlprofilerclientmanager.cpp
	src/plugins/qmlprofiler/qmlprofilertool.cpp
	src/plugins/qtsupport/uicodemodelsupport.cpp
	src/plugins/qtsupport/uicodemodelsupport.h

Change-Id: I6f6ae77422d99f4f422b108ade6b64273df9dd57
2016-03-03 16:10:04 +01:00
hjk
65d7aedd27 Debugger: Rename Perspective::Split to Perspective::Operation
We have 'raise' in there now, that's not a split anymore.

Change-Id: Id45c606056dfab1317fad37b2fe37216b0eacf85
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2016-03-03 12:53:45 +00:00
hjk
55dcec95f7 QmlProfiler: Shuffle tool widget creation around
Put the border between plugin code and view code in a more
natural place.

Change-Id: Ib5250a30e52ec9899dcb01bac23cdad62a2d5c5e
Reviewed-by: Ulf Hermann <ulf.hermann@theqtcompany.com>
2016-03-03 09:57:31 +00:00
hjk
f3bd7412ef Debugger: Remove return value from AnalyzerManager::createDockWidget()
Change-Id: If6cd2a68f2f99a1977ded0f05a12790194143274
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2016-03-02 08:08:15 +00:00
Ulf Hermann
09c4ae8ed5 QmlProfiler: Limit hard resetting of QML debug connection
On windows it can take a long time to establish the connection. On OSX
we want to throw away the first connection after trying for 200ms. We
don't want to introduce #ifdefs here, so after throwing away two
connections stick to the third one.

Change-Id: I407120244747ac39429786e371c93a7d1e29933d
Reviewed-by: David Schulz <david.schulz@theqtcompany.com>
2016-03-01 12:04:40 +00:00
Ulf Hermann
dfa8e27968 QmlProfiler: Check runConfiguration for 0 before accessing it
Change-Id: I274d7a75313a899a2b0c05fddbe8e189f9b99156
Reviewed-by: hjk <hjk@theqtcompany.com>
Reviewed-by: David Schulz <david.schulz@theqtcompany.com>
2016-03-01 09:00:31 +00:00
hjk
a26d5ece43 QmlProfiler: Avoid use of Analyzer::createDockWidget return value
In a quest to make the function return 'void'.

Change-Id: I36635c89948ded84b89861f169303a00bf2ea6bf
Reviewed-by: Ulf Hermann <ulf.hermann@theqtcompany.com>
2016-02-29 15:03:58 +00:00
hjk
931ee3382c Analyzer: Rework the dock widget layout generation
Decouple layout generation from widget generation and
separate analyzer action description from menu action creation.

Tool specific layouts are named "Perspective" now.

Change-Id: I774efe77a07640c4cc26e4e566662c8a673c8831
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2016-02-29 10:47:43 +00:00
hjk
aaf05f5acd Move analyzerbase to debugger
This is the first mechanical step to execute on the 'shared pool of
debugger/analyzer views' idea.

Future steps would be providing infrastructure for the view pool,
making all analyzer/debugger views use the pool and then re-extract
a sensible base for a 'analyzer-and/or-debugger' tool plugin interface.

Change-Id: I1bb392e6dd3084fc56937956bee1d6fd9530335d
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
2016-02-25 12:31:06 +00:00
Ulf Hermann
e3ce0435e7 QmlProfiler: Clear range restrictions when clearing events views
Range restrictions don't persist across profiling sessions, in contrast
to feature selections.

Change-Id: If98a8dae7eed3019e68e361ea69689658241d39d
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2016-02-18 10:53:08 +00:00
Ulf Hermann
33916d8078 QmlProfiler: Remove duplicate signal declaration
We want the signal from the base class to be sent.

Change-Id: Ic681b3b8527b849f5edd9fec476e5e9e1768408a
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2016-02-16 13:47:28 +00:00
Ulf Hermann
2e26d4abc8 QmlProfiler: Remove duplicate signal declaration
If the wrong signal was sent the desired slots weren't invoked. The
effect was that clicking on entries in the statistics view didn't take
you to the right source location anymore.

Change-Id: I187c3e53969558fb7992bb44f868c9d8730eaef7
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2016-02-16 11:28:43 +00:00
Ulf Hermann
6980ccf8e1 QmlProfiler: Fix Qt version comparison for connection type
The previous code would fail on Qt versions n.0 to n.5 with n > 5.

Change-Id: I7e9d512bab269137862370db86e0da19e250059e
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2016-02-10 13:35:02 +00:00
Eike Ziller
72af6b7834 runAsync: Remove ResultType template parameter.
It is now deduced from either the type of the
QFutureInterface<ResultType> function argument, or the return type.

Change-Id: Iddab3cc329206c649a6e55a44b2de2d406701dee
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
2016-02-10 10:58:55 +00:00
Ulf Hermann
21d1f6161e QmlProfiler: Avoid race conditions when loading or saving data
We cannot assume that the model manager is still available when the
operation finishes. Also, accessing the QML model or the trace time
from the thread is dangerous.

Change-Id: I673c57c09490a0e3e2647f3197929eff1ce4ceb3
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
2016-02-09 09:53:45 +00:00
Eike Ziller
e307b7eecf QmlProfiler: Avoid QtConcurrent
QtConcurrent runs everything on a global thread pool, which means that
calls of QtConcurrent::run/map/etc can block each other.

Change-Id: Ia7a61b5ae1e0919113205a83a43caa1f27015732
Reviewed-by: Ulf Hermann <ulf.hermann@theqtcompany.com>
2016-02-08 15:36:11 +00:00
hjk
f1139b1d51 QmlProfiler: Remove some dead code in RunControlFactory::create
The check is covered by canRun().

Change-Id: Id2360a5d2cb2fd915e164a6b5a533f008fe670f1
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2016-02-02 14:00:19 +00:00
Tobias Hunger
66bdd60947 ProjectExplorer: Sprinkle overrides over the code
Sprinkle overrides over code derived from classes in ProjectExplorer

Change-Id: Ia4cc25649f7dc00b0ea126d8176a59afbc5ed574
Reviewed-by: hjk <hjk@theqtcompany.com>
2016-01-29 12:34:19 +00:00