- 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>
This is where it logically belongs, given that trace, window, and range
are already there. Also, it fixes the types to qint64, making it easier
to reason about type conversions and numerical overflows.
Change-Id: I2f88b2646b9a649d34bdf4fe87c37e7afdeee078
Task-number: QTCREATORBUG-14170
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
This was a workaround to compensate for the fact that windows in window
containers don't follow the stacking order and thus the state widget
wasn't shown. With QQuickWidget we don't need to do this anymore.
Change-Id: I2c1e57d891bee6284ef9f033b8747df4b153271b
Task-number: QTCREATORBUG-11833
Reviewed-by: Joerg Bornemann <joerg.bornemann@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>
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>
Using QQuickWidget removes the need for some work-arounds.
Task-number: QTCREATORBUG-11822
Change-Id: I1e344f0a9c11b4aa8601e8e1056602d855fb3f4d
Reviewed-by: Ulf Hermann <ulf.hermann@theqtcompany.com>
Using the TimelineRenderer's render passes we can as well draw the
overview in a nicer way without procedural painting.
Change-Id: I9464f10c52988a6af10c849878e678e4958a1057
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
The new namespace "Timeline" is for classes that are supposed to go to
the generic timeline library later.
Change-Id: I1f6dce59de2c37398b1ed89473e1a94ec020104b
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
Remove some unnecessary code and consolidate things.
Change-Id: I3f6c971b84368013a60a7a7fa9545480b0cd551b
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
This makes it much easier to deduct where it's coming from.
Change-Id: Ica85e1df0a03a01c1b319b3523fb5746e6c2d8f8
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
By using the scene graph we can retain the geometry for events in
the timeline on the GPU and potentially speed up the rendering for
large amounts of items.
Change-Id: I2cfbb8ef4ebc7b56f1977ec1facb4f2e7f2002ee
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
This potentially allows us to use different views for different
categories and reduces the reliance on TimelineModelAggregator.
Change-Id: I486481599d1517abc0087c565358f27405e4108b
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
The event view deals in type ids and the timeline view has to handle
selection by type id. Using the coincidence that typeId == selectionId
in the cases we're interested in is ugly.
Change-Id: I6f94ccd2c3945d5901d0a225deee7de077bfce58
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>
Avoid keeping multiple, potentially diverging copies of the same time
information and make sure all the times are consistent with each other.
Stating the times as properties allows us to use bindings in more
places, too.
Change-Id: I9cdd4f561ac22ad795939594ba340b1fbc070e9a
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
This is faster and more accurate than propagating by source location.
Change-Id: I6aed3b1591380b49dd7c56a66bdc35912570e347
Task-number: QTCREATORBUG-12932
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
The convention is now that selections are the rows in the expanded
timeline, "types" are the types in the QmlProfilerDataModel, and
events are the single boxes in the timeline. Thus, the event view
shows only types and for consistency the V8 view does so, too.
Having eventId as synonym for "type index" and "event index" as
actual index into the list of events is confusing.
Change-Id: I6b7c4c3f1ab0a8b71c511de52ab296a2e91cf5f0
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Like this the DockWidget gets notified when the mouse has entered it
and can show the title bar if necessary.
Change-Id: I164b125f6a4a2099f1f95cf6f0a7699605d12051
Task-number: QTCREATORBUG-12899
Reviewed-by: hjk <hjk121@nokiamail.com>
Also, all methods about events in models don't really need the "event"
prefix as that is what the models are about.
Change-Id: I7b995aa9c9dce7e01d4c862d094b1e73e6b6fb40
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
They had been lost somewhere between QtCreator 2.8 and 3.0. Also
putting the location in braces looks nicer than the original.
Change-Id: Ia455ba99015ad38c21e528a0f8177902749ba1d5
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Using strings to identify equal events is terribly inefficient. By
keeping a global list of event types we can assign each event a
numerical type index and use that to compare them.
We can also avoid excessive string copying and data duplication by
referring to the global type list where event type information is
needed.
Task-number: QTCREATORBUG-11823
Change-Id: I837bd5d0f5395b0003002ef8dd278fb27679c65d
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
This allows more precise specification of which event is supposed to be
selected.
Task-number: QTCREATORBUG-11945
Change-Id: Iff2e9bb8569711cc5df72a5ca55956e0091d6163
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Having multiple views not only is bad for performance but also creates
difficult to debug problems on some hardware configurations and is
fairly confusing.
Task-number: QTBUG-38222
Change-Id: I885e800b1ededab9137874105e3b2f9ec88a06e8
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
By passing signals with identification information of varying accurary
between the different views the event being selected could be changed
while it was selected. By checking the current selection against the
information given in the signal and not reselecting when it matches the
situation is improved.
Also, the selection methods are given more appropriate names. We hardly
ever want to select the "next" event, but rather the "best fitting" one.
Task-number: QTCREATORBUG-11945
Change-Id: I659b4929cb88f4c931a0893aa95a3bc92da5a23b
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
This window is dynamically sized so that no integer overflows can occur
when using it in the timeline view instead of the whole trace time.
Task-number: QTCREATORBUG-11879
Change-Id: Id86faaf614b5f833e47ce26bb859b63eb09e7547
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
The selectedEventChanged signal was never emitted and aliasing the
selectedItem property was unnecessary.
Change-Id: I2a15ad82bbf20a7ae9a42e17935242fbac7b5129
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Several QML properties need extra treatment to avoid stale data
after clearing. Toggling the visibility of the timeline renderer
doesn't really help there.
Task-number: QTCREATORBUG-11833
Change-Id: I1903d7bd69d6fe31ecc4cadca8e30fa2104fa09a
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
No need to keep properties around that aren't read anywhere.
Change-Id: Ie9300ad646466a6a2368f644a420d8654891805f
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
As a lot of events show up as QML bindings and signals and as
JavaScript functions the events view can be hard to navigate. This
change allows the user to either filter out JavaScript events and make
it look like the old QML events view or filter out QML events and make
it look like the old V8 JavaScript view.
Change-Id: I9e0c1184da21263ae174f322b8fcd8ee5ca13f6d
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
As QQuickView is a window with its own event handling, disconnected
from the main window, we need to relay relevant events manually.
Task-number: QTCREATORBUG-11535
Change-Id: If316225ecc01ddc4255c209d7df70a9cee812596
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
This is a temporary fix to work around the fact that the profiler's
loading indicator won't show on top of the timeline view. It's not
particularly beautiful but at least the UI doesn't just "hang" anymore.
A final solution has to be provided in qtdeclarative by allowing widgets
to be placed on top of QML scenes. In principle it's also possible to
change the loading indicators to be actual windows and by doing that have
them stay on top, but the result would be very messy.
Change-Id: Ic774b0792786d7d278da5ba0beda4531f0dba77d
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
This allows us to steer the timeline models in a more fine grained
way and avoid duplicate processing of the same data. We don't need
to rebuild everything on stateChanged of the model manager then.
Task-number: QTCREATORBUG-10950
Change-Id: I2aa9a96a33c602f062fc3b644ac06280ba7cd45a
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
As it's hard to pass arguments for signals from non-QML-mapped objects
to QML objects handle the signal in C++ instead and just directly set
the properties.
Task-number: QTCREATORBUG-10943
Change-Id: I039f6938db3d7e64ca1a4bcff2f0f6aa79c65219
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
Reviewed-by: Eike Ziller <eike.ziller@digia.com>