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>
* 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>
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>
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>
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>
Previously, the display would show 0.0 while the profiler was waiting
for the application to send data. That is somewhat confusing.
Change-Id: I3ad85e5479c2cf3a65e6c4b411d959a5b15baae8
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
You could trigger invalid states by pressing the recording button
while the profiler was waiting for data to be loaded from the
application or by pressing the "stop" button twice. Now the buttons
are disabled when they don't make any sense. In particular you cannot
clear, change features, filter the display while recording and you
cannot toggle the recording while loading. Pressing the "stop" button
twice will cancel the loading now, similar to what happens if you
first disable recording and then stop while the data is loaded.
Change-Id: Ie5133f4bed76593dedc9763b778a2c5c17187543
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
This is quite handy if you keep all your traces in one directory.
Change-Id: I09842404493c02fb0ca9c4a328950f7b6dcb5be0
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Only half of the states are useful for anything.
Change-Id: I4591ccda6eec902e929e07947bad6c3f7b967ef9
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
This class is only accessible through the model manager and there is no
real point in keeping it separate.
Change-Id: I575d47c08aa8f6731d44739f9604072b95fd1dcd
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Flushing data while the application is running can distort the results
because the flushing itself takes time. However, not flushing leads to
longer load times in the end and higher memory usage. The best strategy
depends on the application being analyzed and the users should decide
if they want to flush or not.
The settings infrastructure also paves the way for preserviing the
layout of the timeline and statistics views as well as the category
filters across sessions.
Change-Id: I2cdc37c7fc7eb9b05b6870955ddffaa712d6c956
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@theqtcompany.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
It's always a pain to search for the only RunControl that's called
"engine" half of the time.
Change-Id: I4cece9f8958ff989925d9efaaf6fb41731842647
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Move the search and filter buttons left of the label, as the label's
length can change.
Don't auto-reshow the filter menus after selecting from them. This is
a very unusual feature and it gets in the way more often than it helps.
Change-Id: I23d0846eb2efaa20d872632175a21680a8216d85
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
This way we can have a central filter menu to hide and show features
in any connected views.
Change-Id: I8142da0062a23f8166555016de6c7cb38060f725
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
This provides a way for third-party plugins to implement run
modes without the need to add a value to the central enum or
using manual workarounds like RunMode(*(int*)&someUniqueObject).
Instead of centrally defined enum values this uses Core::Id that could
be defined anywhere.
Change-Id: Ic350e3d8dbb8042c61b2d4ffec993ca151f53099
Reviewed-by: Daniel Teske <daniel.teske@theqtcompany.com>
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
Those positevly stone old. Everyone using Qt 4 should be on at least
4.8.
Change-Id: I71e0edc38bb8bb39a40919920ab4de90cf09b09e
Reviewed-by: Ulf Hermann <ulf.hermann@theqtcompany.com>
Make startTool() explicit as selectAction(Id) + startAction(Id).
Change-Id: I695112bd8419021a781234121a55440b5dc381be
Reviewed-by: Ulf Hermann <ulf.hermann@theqtcompany.com>
The toolPreparer can do a last minute check and stop the execution of
the actual tool. The QML profiler uses this to check for unsaved notes.
Change-Id: I5185430f50ffb01e9854cafa442f0eaaad27fa5d
Reviewed-by: hjk <hjk@theqtcompany.com>
This is what it is on the top level. The change makes it obvious
that in the valgrind(-derived) plugins the value is later wrongly
used to make a decision on whether to run the valgrind process
locally or remotely. But that's isolated in valgrind now and
can be fixed there.
Change-Id: I6fa5e669dec1f9e2cdebe42a1591d15144082a21
Reviewed-by: Anton Kreuzkamp <anton.kreuzkamp@kdab.com>
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Reviewed-by: Ulf Hermann <ulf.hermann@theqtcompany.com>
- Open timeline view when clicking search button
- Use the usual search tool bar
- Implement incremental search and the various search options
Change-Id: Id83ab502cf4175738a825f531d9e454169663765
Reviewed-by: Ulf Hermann <ulf.hermann@theqtcompany.com>
Move the main part of the loading work into a background thread
and show the standard progress indicator for the "reading file"
part of the load operation.
The load operation can be canceled now.
Change-Id: I4cb3b762072ab4a0665dcf9d4a39d6d6630d22e8
Task-number: QTCREATORBUG-11822
Reviewed-by: Ulf Hermann <ulf.hermann@theqtcompany.com>
Trace data is saved in the background, progress is emitted, and
the save operation can be canceled. While data is being saved
the views are disabled and a semitransparent layer is put on top
of the trace view.
Task-number: QTCREATORBUG-11822
Change-Id: I94ec93147fb1788fc85939ddc591961d058050b5
Reviewed-by: Ulf Hermann <ulf.hermann@theqtcompany.com>
... and default to C_GLOBAL. A rather common case.
Similar for ActionContainer::addSeparator().
Change-Id: I7f9ba573af201c0a472132d5a494ad17cc4175b7
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
Fallout after the demise of IAnalizerTool.
Change-Id: I68f936ed5f2929dc4f09a408bdf6b0ea38e568ef
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
It's always known from the context when needed.
Change-Id: Ibf314dfb779190e89b775acab784ed71acff2c83
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Slim down tool before dissolving.
Change-Id: I502aaa8860293acf8bfd93f541b751d5b96a9563
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Medium term all *Tool should be replaced by RunControl(Factory)
to make the analyzer architecture more similar to Qt Creator core
Change-Id: I892cfc7fe45c73cc6ac4442a288810b83cb24c17
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Mostly done using the following ruby script:
Dir.glob('**/*.cpp').each { |file|
next if file =~ %r{src/shared/qbs|/qmljs/}
s = File.read(file)
s.scan(/^using namespace (.*);$/) {
ns = $1
t = s.gsub(/^(.*)\b#{ns}::((?!Const)[A-Z])/) { |m|
before = $1
char = $2
if before =~ /"|\/\/|\\|using|SIGNAL|SLOT|Q_/
m
else
before + char
end
}
if t != s
puts file
File.open(file, 'w').write(t)
end
}
}
Change-Id: I492792bb9e5655c55795e938031efc557c9a462f
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
Added a text field to search for notes within the timeline's events.
Task-number: QTCREATORBUG-13417
Change-Id: Ic121ec8ade42b1ef99d5da13d1f732761d244327
Reviewed-by: Ulf Hermann <ulf.hermann@theqtcompany.com>
Remove some unnecessary code and consolidate things.
Change-Id: I3f6c971b84368013a60a7a7fa9545480b0cd551b
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
The ones we'll refactor into the timeline library should be called
timeline* and the others should be called qmlprofiler*.
Change-Id: I6ecccbe4ef523681ca0baeef140368e2c1839964
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
The stopIt() slot is already connected in the constructor of
AnalyzerRunControl.
The double connection is clearly not intended and, considering that
various analyzers modify internal state from those callse, could lead
to incorrect behavior.
Change-Id: I1c68eb06729849771f4a25257a219c84a032adf3
Reviewed-by: hjk <hjk121@nokiamail.com>
We cannot just set it unconditionally on setRecording() because the
client recording state is supposed to reflect the user's intention.
Instead, if the recording button's state differs from the intention
and then spontaneously changes to match it (through a change in the
application), we toggle the client recording state twice to make sure
everything is properly synchronized.
Change-Id: I070d38364e63ab9cf0597fabed3d326ac3685589
Task-number: QTCREATORBUG-13322, QTCREATORBUG-13430
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>