Commit Graph

1631 Commits

Author SHA1 Message Date
Ulf Hermann
00e6285ece QmlProfiler: Rename occurrences of "title" to "displayName"
Also, remove categoryTitles() which isn't used anywhere.

Change-Id: I919abf1221fb71d407eb04190d27180ed39b7b45
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-08-26 14:51:39 +02:00
Ulf Hermann
2e69cb1c90 QmlProfiler: Remove TimelineModelAggregator::eventAccepted
It doesn't make any sense

Change-Id: Ida6d19e3e7835a9ad23b8cbc7099bf07b05701c3
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-08-26 14:51:11 +02:00
Ulf Hermann
be62804e53 QmlProfiler: Remove name from abstracttimelinemodel
It isn't used anywhere.

Change-Id: Ie69328b85d0b7de4fc2ade753567a8a24e3e2a03
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-08-26 14:50:25 +02:00
Ulf Hermann
1f46fca305 QmlProfiler: Remove getState() methods
A numerical representation of "state" is not so useful after all.

Change-Id: I7fc3ae08a2fd44000b5543f4ba25730a8d79358d
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-08-26 14:36:58 +02:00
Ulf Hermann
5ceb0b68d6 QmlProfiler: Remove lastTimeMark()
It's unused and there is no point in having it as you can retrieve the
time span from zoomControl

Change-Id: I474ecf4ee6c183ac8b97bbac9c47618f52d956c0
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-08-26 14:36:06 +02:00
Ulf Hermann
8b3b868f4c QmlProfiler: Rename JavaScript view to "V8"
The fact that the separate JavaScript view only works with versions of
Qt that use the V8 JavaScript engine is frequently confusing users.
JavaScript events for newer versions of Qt are integrated into the
Events and Timeline views, making the separate JavaScript view obsolete.
For those users who already know it and who are still using Qt 5.0 and
5.1 "V8" will be recognizable. For others "V8" won't mean anything and
they'll ignore it.

Change-Id: Iac0d89db24a3677e47b978a152cfc25c01f9c2b6
Task-number: QTCREATORBUG-12766
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
Reviewed-by: Robert Loehning <robert.loehning@digia.com>
2014-08-18 10:33:13 +02:00
Eike Ziller
d9d0aba1c4 Merge remote-tracking branch 'origin/3.2'
Conflicts:
	qtcreator.pri
	qtcreator.qbs
	src/plugins/coreplugin/editormanager/editormanager.cpp
	src/plugins/projectexplorer/editorconfiguration.cpp
	src/plugins/projectexplorer/projectfilewizardextension.cpp
	src/plugins/qmakeandroidsupport/createandroidmanifestwizard.cpp

Change-Id: I8de0f6fcdd8d214fbc14e79f74cb0206e6e2c6c1
2014-08-15 16:14:34 +02:00
Ulf Hermann
7b6efde141 QmlProfiler: Use correct width for scaling timeline ranges
The width of the flickable element may be different from the width of
the timeline renderer because the flickable can have a scrollbar. This
is the same principle as in b3348daefd .

Change-Id: Ife0064c4226ecff0e99d3d6aaf7a104b3c46e751
Task-number: QTCREATORBUG-12822
Reviewed-by: Alex Blasche <alexander.blasche@digia.com>
2014-08-12 17:00:30 +02:00
Oswald Buddenhagen
f3a61e8bf7 Merge remote-tracking branch 'origin/3.2'
Conflicts:
	qtcreator.pri
	qtcreator.qbs
	src/plugins/android/androidglobal.h

Change-Id: I3367bf2ea47c088989175dddeed2210294346f4c
2014-08-05 14:24:23 +02:00
Fawzi Mohamed
02bdf30f45 qmljs: improve handling of qml dialects
Language::Enum -> QmlDialect
 * class instead of enum
 * moved Language specific operations to it (from Document)
 * nicer handling
QStringList -> PathsAndLanguages
 * store language along with path, to perform a correct scan and improve
   path handling

Change-Id: If69d35c63cfeb48aa670b51870916cd0c40f1916
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@digia.com>
2014-07-30 15:07:35 +02:00
hjk
bf5e43be94 TextEditor: Merge ITextEditor and BaseTextEditor
Adjust all callers, de-export BaseTextEditorAnimator

Change-Id: I2329d976c1398e2449844bb480a4d4ed29859506
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
2014-07-25 13:45:55 +02:00
hjk
b8adc78615 Analyzer: Use a more common default value for the initial dock area
Change-Id: I8449d7e540d715ffc1fbcc46b21a1a4ea7d740ab
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2014-07-24 10:32:15 +02:00
hjk
7bb3f728ef Analyzer: Set dockwidget title on inner widget first
Will be promoted to dockwidget title by the fancy mainwindow.

Change-Id: Idbb4d2869c254140a241cd5a8f5b75b3ef739692
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2014-07-24 10:32:06 +02:00
hjk
38f068efa7 QmlProfiler: De-noise
Change-Id: Ife43116c45299811f4b2f80364346f4d267f26d7
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-07-23 12:48:18 +02:00
hjk
18dca1e3ac AnalyzerTool: Make runMode and toolMode value members
Change-Id: Iaf89bc399db65e17345effb2e9767692786b5ca8
Reviewed-by: Christian Stenger <christian.stenger@digia.com>
2014-07-23 10:58:57 +02:00
Ulf Hermann
df86884d7b QmlProfiler: Keep TimelineRenderer and Button states in sync
You could enable the select-on-hover mode by clicking in an empty time
line, even though the buttons bar was disabled. You could also trigger
various bad behavior by clearing the view and restarting the profiler.
Properly initializing and clearing all members, and sending change
signals on clearing helps with that.

Change-Id: Ie7df80a52daaf166c3a4adb2eb1f28a59c21df57
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-07-11 13:54:24 +02:00
Ulf Hermann
b3348daefd QmlProfiler: Make sure TimelineRenderer is using the right x and width
If we use different x and width parameters in JavaScript and C++ we
introduce numerical instability which leads to visual glitches.

Change-Id: I352f3e8365ca52d135230343c2f034332ec71323
Task-number: QTCREATORBUG-12648
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-07-11 13:53:10 +02:00
Ulf Hermann
a97aa6be67 QmlProfiler: Apply documentation style to sortedtimelinemodel.cpp
Change-Id: I5ed4449b3003d53c27859e11606d4b4dceee229a
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
2014-07-11 12:18:42 +02:00
Ulf Hermann
4f4251ba6d QmlProfiler: Fix rounding error for items starting outside the screen
Change-Id: I132b7058de9e51f6a1d958594917fc926039a585
Task-number: QTCREATORBUG-12648
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-07-10 13:35:11 +02:00
Ulf Hermann
49cc0c9df1 QmlProfiler: Clean up assignment of initial details to events
- Build the displayname from the location only once per event
- Make sure Qt4 paint events show the "GUI Thread" label
- Remove useless "Animations" displayName. It isn't shown anywhere.

Task-number: QTCREATORBUG-12496
Change-Id: I823676499670fc019b5dbf225668f833d17076b8
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-07-09 12:58:07 +02:00
Ulf Hermann
c930551b55 QmlProfiler: Remove dead code from trace file writer
The whitelisting doesn't actually do anything useful. The trace writer
uses a generic method to save range events and only needs specific code
for non-ranges. The compile time checks for the sizes of MESSAGE_STRINGS
and RANGE_TYPE_STRINGS make sure that you can't accidentally leave some
event type unimplemented. The calculation of measured times is obsolete,
too, as the only code the trace writer is called from also sets the
trace time.

Change-Id: Id431630114cb0a0247b774f10874c5caff761436
Task-number: QTCREATORBUG-12496
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-07-09 12:51:54 +02:00
Ulf Hermann
e24618134b QmlProfiler: Fix logic when selecting previous event
Events should be walked in the order of their start time, not end time.

Change-Id: Id9f9746958dbfbdc28424c34b3ca1f5e4b9ff373
Task-number: QTCREATORBUG-12634
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-07-09 12:40:30 +02:00
Ulf Hermann
bd529f74d4 QmlProfiler: make sure indices in SortedTimelineModel are correct
In the rare case that a new item is not appended but inserted in the
middle of already existing data, the end times were confused. On that
occasion, also add a note explaining how the indices work,

Change-Id: I587b8285cd5482a9ffb1592302b442192e5944b8
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-07-09 12:39:22 +02:00
Ulf Hermann
730997b2d8 QmlProfiler: Document restrictions of SortedTimelineModel
SortedTimelineModel only works with perfectly nested ranges. Specify
what that means so that we don't stumble over it for the (n+1)th time.

Change-Id: I77f276ba9152fb023d875d0f326e7d646945d3a7
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-07-07 14:33:05 +02:00
Ulf Hermann
cb7963bc18 QmlProfiler: Make events view properly sortable
Add all the missing bits and actually use the filename for sorting.

Change-Id: Icc2a07d297fe17423aa23bf58a602dfa0dcf5a87
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-07-07 10:26:19 +02:00
Ulf Hermann
6a93d41831 QmlProfiler: Make V8 view properly sortable
Don't accidentally reuse the EventViewItem class from the events view,
drop the column number as it's always -1, and actually use the file name
for sorting instead of random junk. Also add all the missing bits
necessary for sorting all tables by any column and drop the hash string
as it's useless.

Change-Id: I26dcdd229f1f1ef18f68edcb6edfb0427a2e2e6f
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-07-07 10:26:15 +02:00
Ulf Hermann
4ecefc6857 QmlProfiler: Fix crash in range model
The first element in the expandedRowTypes is always -1 as that is the
empty row. Don't try to retrieve its type.

Change-Id: I1a4b59e0de6638201485d503e3be05afddf625fb
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-07-03 12:07:01 +02:00
Ulf Hermann
981bb850e9 QmlProfiler: Rename Qt5 "Painting" to "Animations" and always show it
"Animations" is a much better name as that's what it actually shows. It
also serves to distinguish from the QtQuick 1 only "Painting" category
that really does show the time QPainter took to paint the scene.

Hiding the "Animations" category when profiling QtQuick 1 makes no
sense as we also don't hide the JavaScript category or any of the
commercial addons which are only available from QtQuick 2. As QtQuick 1
is deprecated we keep hiding the Painting category when profiling
QtQuick 2 to reduce clutter in the UI for the more common case.

Change-Id: I0e14fab8abf427dc1abb6d00874e7e4af0fa30e5
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-07-03 12:06:40 +02:00
Ulf Hermann
dcb14c4bc0 Boost small paint events a little when no scale is shown
Like this you can see if the frame rate is low, even if there aren't
many animations.

Change-Id: Ib9c759278d4c5e7e4bff94737e2ced87791f2e4b
Task-number: QTCREATORBUG-12589
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-07-03 10:23:31 +02:00
Ulf Hermann
ccf871aa20 QmlProfiler: Show placeholder labels in select locations
The "<bytecode>" and "Source code not available" labels should not be
added to the model as otherwise they end up in trace files. Instead the
view should show them instead of empty strings where it makes sense.

Change-Id: I37a0c8468ead0194771556d9276c24cb7f05c061
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-07-02 14:33:55 +02:00
Ulf Hermann
7394211603 QmlProfiler: Off-by-one when calculating row offsets
Change-Id: I255f3e15e0afc0761a6d3c9a32955d007cd3b637
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-07-02 14:30:07 +02:00
Christian Kandeler
93304df038 Always pass Core::Id by value.
Currently we pass in some places by value, elsewhere by const ref and
for some weird reason also by const value in a lot of places. The latter
is particularly annoying, as it is also used in interfaces and therefore
forces all implementors to do the same, since leaving the "const" off is
causing compiler warnings with MSVC.

Change-Id: I65b87dc3cce0986b8a55ff6119cb752361027803
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-07-01 11:52:08 +02:00
Ulf Hermann
34f48ea0c0 QmlProfiler: improve location lookup a bit
It's not a good idea to copy the event location for every single lookup
and there is not point in always reconstructing the label strings,
either.

Change-Id: I2cea8a2a93b31d2c32bd2a27ae1d3b0bd26df6f6
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-06-24 16:22:13 +02:00
Ulf Hermann
75b5e6fa6b QmlProfiler: Native text rendering for all text elements
Change-Id: Ife322b57479bac885a3dc6a898e6516be6e8e15e
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-06-24 16:22:08 +02:00
Ulf Hermann
54b366d7d3 QmlProfiler: replace calls to QVector::length() with QVector::size()
Like that we get a higher chance of staying compatible with Qt < 5.2.

Change-Id: Iecd6e1fbf75bd610917a38a22635a0d8e731738f
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-06-24 14:57:25 +02:00
Ulf Hermann
b9d349bda5 QmlProfiler: Draw selection boxes only as large as the items
Change-Id: I0f7f4f2a73c24faeff9c502b118e984938a27d25
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-06-24 14:56:54 +02:00
Ulf Hermann
6d5cf83a69 QmlProfiler: Add scaling support to paint events model
Change-Id: I04856628b7498df976d3b7db5539a1125060e9eb
Task-number: QTCREATORBUG-12337
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-06-24 14:56:31 +02:00
Ulf Hermann
daf6aa160b QmlProfiler: access the background marks from where they're created
It's considered bad style to access properties of parent objects
defined in a different component as that reduces code reusability.

Change-Id: I0dbe4a3663026d12b2666de75c93841528fe295c
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-06-24 14:53:10 +02:00
Ulf Hermann
3dbc59309a QmlProfiler: restore tooltips on category labels
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>
2014-06-24 14:52:57 +02:00
Ulf Hermann
0d695617f1 QmlProfiler: Add scales to rows in timeline
If you resize the rows to at least double their default size and if the
model specifies a scale it will be drawn as additional horizontal lines
and numbers in the background.

Change-Id: I02844b4102e043031ee04daa45666dc3f8da1d2e
Task-number: QTCREATORBUG-12337
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-06-24 14:50:31 +02:00
Ulf Hermann
f30cbf9711 QmlProfiler: allow interactive resizing of rows in timeline
Task-number: QTCREATORBUG-12337
Change-Id: Ib9ddb128605831841023bb3cc9aed758ed171de9
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-06-24 14:50:27 +02:00
Ulf Hermann
63ca524069 QmlProfiler: Put height of rows in the timeline into the model
Like that we can provide functionality to interactively resize rows in
the model so that one can zoom in to more interesting parts.

Change-Id: I31f14cd8aa37703240ebec744ca2e77188fb0f27
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-06-24 14:50:02 +02:00
Nikita Baryshnikov
12103e0f67 Reinvent deprecated qSort as Utils::sort
Change-Id: I4f6011cc2b6127037249aabc2426a88ad7108ebf
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-06-19 14:00:32 +02:00
Ulf Hermann
e9edc3ad3d QmlProfiler: Don't use initializer lists, yet
Change-Id: I27a636036b3f7d613079245432858e0ba690ab77
Reviewed-by: Tim Jenssen <tim.jenssen@digia.com>
2014-06-18 14:33:54 +02:00
Ulf Hermann
6c33c98a24 QmlProfiler: Actually do simplify the details string when loading
Change-Id: I86303991c9bb3858f9421edd7e12a54c1c9516da
Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
2014-06-18 12:59:29 +02:00
Ulf Hermann
2a6b41101e QmlProfiler: Remove unused signal
Change-Id: I66379e0cc8b506978a69f85111d2a5efb7a5bcf5
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-06-17 16:28:04 +02:00
Ulf Hermann
ac358b3b05 QmlProfiler: Add missing file to qbs
Change-Id: I76e62856dba78d697e740c91ea956c5157f26ffe
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-06-17 16:27:51 +02:00
Ulf Hermann
b85a63d5d3 QmlProfiler: Save and load memory events in trace files
Change-Id: Id95a3adf2d97255f962cb16aa486a15cacc7c1d1
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-06-17 16:26:37 +02:00
Ulf Hermann
f70f4e6f7c QmlProfiler: remove "Source code not available."
This string crops up in far too many places where it's not supposed to
be. If we really need it we should add it to the views in the exact
places where we want it instead of writing it into the model.

Change-Id: I5f17a2aead7f6c2d42f485bf629baaf759e90547
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-06-17 16:26:31 +02:00
Ulf Hermann
22fb31557f QmlProfiler: remove useless signals
Sending a signal for every model when clearing or loading data is not
very smart.

Change-Id: Ifc81d74f6b7f93bcd6748a919dfb553050b8d725
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-06-17 16:26:16 +02:00