Setting a number of models one by one results in quadratic overhead
when (re)building the UI. If there are many models this quickly gets
out of hand.
Change-Id: I7f017784c3f0a6a9d7e52c881eb1d8ca4cf70886
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
The adjustment for items of small height in the vertex shader was
broken.
Change-Id: Icfaef5b1e582696240fe1ed211dbb26502cc208e
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
This is also necessary for a uniform handling while adding or
updating test tree items, which in turn makes it possible to
separate model and items once more.
Change-Id: I84ff558d23490c8734b22062f00e03e8c06d6720
Reviewed-by: David Schulz <david.schulz@theqtcompany.com>
In standalone tests there is no instance of ExtensionSystem::PluginManager.
Change-Id: I890016c4e0d2fbb41cfc0a5614e936d31e43cd0f
Reviewed-by: Marco Benelli <marco.benelli@qt.io>
The row labels use up quite a lot of memory, and most of the time we
don't need them.
Change-Id: I25d0498311eb1fc0b3cc9abc7312baa2c1211a8d
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
So far, they didn't show up in the submit editor,
so they could be forgotten during a commit.
Unlike Git, these files don't prohibit the commit,
but at least are shown in the list of modified files
and can be diffed.
Change-Id: Ia5cac7befb870321d2048622c1fac022d979c745
Reviewed-by: Hugues Delorme <delorme.hugues@fougue.pro>
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
Use SynchronousProcess::runBlocking in favor of SychronousProcess::run.
This avoid nested event loops which can produce really strange crashes
if not use carefully.
This patch only converts those processes that have a timeout of less
than 5 seconds or use the default timeout.
Change-Id: I9de8899dcc946af7049ea357a91972996c0256a1
Reviewed-by: Vikas Pachdha <vikas.pachdha@theqtcompany.com>
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
From Diana, to be used in screenshots
Change-Id: I8ee855c4bc512c4154c2bb47d8a23b8b1458dd02
Reviewed-by: Alessandro Portale <alessandro.portale@theqtcompany.com>
To allow enabling/disabling both features separately.
Change-Id: Ica154e3b400823de7cf22daf006958802d751c64
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
This way we only have to transmit the location and data events once per
type, not once per event.
Change-Id: Ic6ab9619824764fc8b3abf09c7b58200eda2a198
Reviewed-by: Milian Wolff <milian.wolff@kdab.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
This way we will be able to use server-provided type IDs for more
efficient lookup of event types.
Change-Id: I37cd592a7829e5f36c6cfc04e400013d1dc37155
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Running them through the model manager via signals doesn't make much
sense anymore.
Change-Id: I6103d281dd640493f28acd7e787ea49712ebd8df
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
This saves two vertices and fixes the test case.
Change-Id: Id0d7cec5412ec24720c610d704ccaeb9036ddcaf
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Fixes warnings when building with clang.
Change-Id: I8775862e3ee4d717067f5cf42f9efe58e69845c7
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
With this change, if you have more than 1M events in a category, the
ones with the shortest distances from one another will be drawn
together, in grey instead of their respective colors. You can zoom in
or hover-select them to see what they are.
This greatly reduces memory consumption in those cases, but it requires
some more book keeping in order to identify the events to be
aggregated.
Task-number: QTCREATORBUG-14983
Change-Id: If54d6d7efe5f720aa72003b2c307ea9562c911a1
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
When resolution of a local include fails, a global resolution must be
done. When doing so, re-use the cache.
This will speed up the resolution for projects that mainly use the local
include directives also for global headers.
Change-Id: I7488c1977a44b881f90faa863d22f6276c20b147
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
Some compilers don't like explicit initializers for arrays.
Change-Id: I49d056e0000334857a635d8da10491c0d1e5f36c
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
Instead of the progress bar we can now show the number of events we
have received, and the number of finished finalizers. This should give
a the user a better idea of what is going on.
Change-Id: I324fefbe6d5e3c24b080bfbc103c4317fa585215
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Storing traces in binary form is preferable as loading and saving is
faster and the trace files are smaller.
Change-Id: Ia7340ac526d5ce9391b1e32fc48fc1fab3ffa13d
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
As we only ever iterate the master event list in a linear fashion, we
can use a temporary file to store it. This should allow for larger
traces to be handled without running out of memory.
Change-Id: I0d2aea6f998458fe5f426f6fef0f6937e915ae68
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
This removes the last access to the master event list, which allows
us to also remove the accessor function.
Change-Id: I0e70c2eb23d2b11aa8b131c03eb3adfad1a9b9e7
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
We want to get rid of the big master list of QmlEvent in
QmlProfilerDataModel, as that gets very large for longer traces. In
order to reduce the dependencies on that list we load the events on the
fly into the child models while they are being received, rather than
having the child models query QmlProfilerDataModel for the event list
later.
As the trace client so far only emitted rangedEvent() for complete
ranges we run into problems with models that need their events sorted.
The rangedEvent() signals were sorted by end time, rather than start
time which makes it inconvenient to analyze them in a stack based way,
for aggregation. This is solved by passing on all the details from the
trace client to the models, with the QmlProfilerDataModel aggregating
the type information before having the events dispatched to the child
models.
Change-Id: I5831a20551f21cf91e27d298a709f604ebd96c3e
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
This paves the way for driving the event loading from the model
manager. Also, unify the loading and eliminate the two different
classes for the children models.
Change-Id: Ic89e757963292d75b3b6fd7d6012f09194dff5a9
Reviewed-by: Alex Blasche <alexander.blasche@theqtcompany.com>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
When announcing features models have to provide functions that handle
events for those features now. The model manager gets a function to
dispatch events to the models that subscribe to them.
Change-Id: I3fd80443a68ba264a513d8d53ed473cf072f1dc7
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
All the models do the same thing when loading the data: They iterate
the list of events, determine for each one if they accept it, and if
so, they load it. After the list has been fully loaded, they do some
finalization. This can be centralized, and ultimately we won't need to
expose the central QVector<QmlEvent> for that anymore.
Change-Id: Ia82facfdc3968200bbec323a02f2fcc02ac44e9e
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Some models check the visibility to determine what to load.
Change-Id: I94d42ddc6e531d04f240c66d4b789826d8c17cf6
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>