We will need it in a second derived model.
Change-Id: I5d2459c490034b592f643f248bf5be2e44af44aa
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
If we're merely synchronizing to another view the source location has
already been taken care of.
Change-Id: I272c1f3a664271327d3a59d851632eb1241108a0
Task-number: QTCREATORBUG-13360
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
We never propagate a selection by source location.
Change-Id: I4594b88080bd1834572c0087db0397bc08a81d70
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
As the timeline doesn't automatically move us to the right file/line
anymore when we programatically trigger a selection, we have to do it
explicitly now when searching for notes.
Change-Id: I439b2162555a6cbf1c757c691ad3b0de067e3f94
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Now that we don't recreate the debug connection anymore when (re)trying
to connect, we have to do it explicitly when changing the connection
parameters or when a connection attempt fails and we need to cancel the
"Connecting" state.
Change-Id: Ib2b6b4fb1e39e64fe3c9f2bf90b6e43043d05a9e
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
If we're already trying to connect when the "Waiting for ..." message
arrives we don't want to start from scratch, but rather reuse the
existing connection.
Otherwise the handshake may be interrupted in an arbitrary state,
either leaving the remote QML engine waiting for the local QML profiler
to send the recording status, or prompting the local profiler client to
stop recording as the connection "broke".
The local QML profiler will only send the recording status if new QML
engines show up, which doesn't happen on the second successful
connection. That may be a different bug.
Change-Id: Ia17fcf9d0a28edf700274bcd88c2b7030220c290
Reviewed-by: Robert Loehning <robert.loehning@theqtcompany.com>
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>
It doesn't do anything useful. Also the qmlDataReady member is
write-only and can be removed.
Change-Id: I667b05611cfc5960eb2fd73254a7b3c621ae98a3
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
The complete() methods do something more specific. We should call them
by what they do. Also, we don't need to signal the finishing of data
acquisition via a signal and most of the postprocessing can happen in
the worker thread.
Change-Id: Iae986aefb8e7e7d4327c481d7a85325bbff7fa48
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Now that the V8 model is gone we don't need a base model anymore.
Change-Id: I35aee0627f78f417ec9c971e1c7bbf70adfc7b27
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>
There is no need to keep a redundant copy of the file name.
Change-Id: I407b1e4b92232a5869eade4d52eb7b4468fffa9d
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
We better call QmlProfilerModelManager::complete() from the main
thread. There are too many things that can break if it's called from a
worker thread.
Change-Id: I92211df7ec072d572ed82dc1203efd2f67b4b540
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Whatever that is, it definitely didn't work.
Change-Id: Ib15b9dcad6e22d52285a253b234989e55d817268
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
When changing the selected range the main model doesn't change. If the
main model is empty there is nothing to select and we can skip the
selecting.
Task-number: QTCREATORBUG-15047
Change-Id: I997c104ff7f9f541da0eaade7a519cebd39607a4
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Most other options pages do it this way and none of them delete the
widget in the destructor. Apparently we can rely on finish() getting
called in time.
Change-Id: Ie0964d291bc8ab3eea537921bf476012d58776a4
Reviewed-by: Alessandro Portale <alessandro.portale@theqtcompany.com>
Ultimately we want this as jobs for the progress manager, but let's
get the logic right before. The state widget should not estimate
profiling times and it doesn't have to keep local copies of all the
state the model and state managers already have. Also, we need an
additional indication for "waiting for application to send data", as
that can take significant time.
Change-Id: I3677dea4b0561bc83a7bc3c196ce0854c5624f12
Task-number: QTCREATORBUG-12958
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
It can be triggered from a thread loading trace data. This triggered
the warnings about QObject::startTimer and QObject::killTimer and was
generelly unsafe.
Change-Id: Iee1f5f29a49147a20b1f5c826f85b6713fcb8a45
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
The ProgressManager can only deal with at most (1 << 31) / 100.
Change-Id: I03c61839fa5b9dab56b99f98a63ed7ab8b340c09
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>
The services need to be loaded before the first QML engine is created.
The first QML engine may be created before a client connects. When the
JavaScript debug service is loaded the engine is put into interpreter
mode as we don't support debugging in JIT mode. Profiling, however
should be done in JIT mode, whenever possible.
Thus, in order to avoid the loading of unnecessary plugins and to get
better results from the QML profiler we tell the debug server which
services we expect, even before the client connects. Qt 5.6 will support
additional command line arguments to specify the services and this
change uses them.
Change-Id: I6dcee016c39995e9adada6eaf0e39d8299c9b7e7
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
Reviewed-by: hjk <hjk@theqtcompany.com>
We can receive data while recording now. The progress bar is not
helpful, though, as it doesn't tell us how much data we have received.
It's better to disable it until the recording is done.
Change-Id: Icc567fd33607e0c9b011504a0c76a7d84163945a
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, end up with one single control for hiding and showing
categories.
Change-Id: Ifb1484d53a50255894284d5236b0446e924e4102
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>