Commit Graph

35 Commits

Author SHA1 Message Date
Ulf Hermann
a42e07beba QmlProfiler: Rename some classes and files to follow the common pattern
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>
2014-11-21 10:53:53 +01:00
Ulf Hermann
70102410df QmlProfiler: Centralize trace/window/range times
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>
2014-11-21 10:53:28 +01:00
Ulf Hermann
350615cc71 QmlProfiler: Add special model for notes
Change-Id: Ia0acbc5e0a02563cf497594b67a5f7a67488fb79
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
2014-10-15 10:33:38 +02:00
Eike Ziller
ea27143239 Merge remote-tracking branch 'origin/3.2'
Conflicts:
	src/libs/utils/ipaddresslineedit.cpp
	src/libs/utils/logging.h
	src/plugins/analyzerbase/AnalyzerBase.pluginspec.in
	src/plugins/android/Android.pluginspec.in
	src/plugins/android/androiddeploystep.cpp
	src/plugins/android/androiddeploystep.h
	src/plugins/android/androiddeploystepfactory.cpp
	src/plugins/android/androiddeploystepwidget.cpp
	src/plugins/android/androidpackagecreationfactory.cpp
	src/plugins/android/androidpackagecreationstep.cpp
	src/plugins/android/androidpackagecreationstep.h
	src/plugins/android/androidpackagecreationwidget.cpp
	src/plugins/android/androidpackagecreationwidget.h
	src/plugins/android/javafilewizard.cpp
	src/plugins/autotoolsprojectmanager/AutotoolsProjectManager.pluginspec.in
	src/plugins/baremetal/BareMetal.pluginspec.in
	src/plugins/bazaar/Bazaar.pluginspec.in
	src/plugins/beautifier/Beautifier.pluginspec.in
	src/plugins/bineditor/BinEditor.pluginspec.in
	src/plugins/bookmarks/Bookmarks.pluginspec.in
	src/plugins/clangcodemodel/ClangCodeModel.pluginspec.in
	src/plugins/clangcodemodel/clanghighlightingsupport.cpp
	src/plugins/clangcodemodel/clangsymbolsearcher.cpp
	src/plugins/classview/ClassView.pluginspec.in
	src/plugins/clearcase/ClearCase.pluginspec.in
	src/plugins/cmakeprojectmanager/CMakeProjectManager.pluginspec.in
	src/plugins/cmakeprojectmanager/cmakeeditorfactory.cpp
	src/plugins/cmakeprojectmanager/cmakehighlighter.cpp
	src/plugins/coreplugin/Core.pluginspec.in
	src/plugins/cpaster/CodePaster.pluginspec.in
	src/plugins/cppeditor/CppEditor.pluginspec.in
	src/plugins/cppeditor/cppfilewizard.cpp
	src/plugins/cpptools/CppTools.pluginspec.in
	src/plugins/cpptools/cpphighlightingsupportinternal.cpp
	src/plugins/cpptools/cppmodelmanagerinterface.cpp
	src/plugins/cpptools/cppmodelmanagerinterface.h
	src/plugins/cvs/CVS.pluginspec.in
	src/plugins/debugger/Debugger.pluginspec.in
	src/plugins/designer/Designer.pluginspec.in
	src/plugins/diffeditor/DiffEditor.pluginspec.in
	src/plugins/emacskeys/EmacsKeys.pluginspec.in
	src/plugins/fakevim/FakeVim.pluginspec.in
	src/plugins/genericprojectmanager/GenericProjectManager.pluginspec.in
	src/plugins/git/Git.pluginspec.in
	src/plugins/git/gitorious/gitorious.cpp
	src/plugins/git/gitorious/gitorious.h
	src/plugins/git/gitorious/gitoriousclonewizard.cpp
	src/plugins/git/gitorious/gitorioushostwidget.cpp
	src/plugins/git/gitorious/gitorioushostwidget.h
	src/plugins/git/gitorious/gitorioushostwizardpage.cpp
	src/plugins/git/gitorious/gitoriousprojectwidget.cpp
	src/plugins/git/gitorious/gitoriousprojectwidget.h
	src/plugins/git/gitorious/gitoriousprojectwizardpage.cpp
	src/plugins/git/gitorious/gitoriousprojectwizardpage.h
	src/plugins/git/gitorious/gitoriousrepositorywizardpage.cpp
	src/plugins/git/gitorious/gitoriousrepositorywizardpage.h
	src/plugins/glsleditor/GLSLEditor.pluginspec.in
	src/plugins/glsleditor/glsleditorfactory.cpp
	src/plugins/glsleditor/glslfilewizard.cpp
	src/plugins/helloworld/HelloWorld.pluginspec.in
	src/plugins/help/Help.pluginspec.in
	src/plugins/imageviewer/ImageViewer.pluginspec.in
	src/plugins/ios/Ios.pluginspec.in
	src/plugins/macros/Macros.pluginspec.in
	src/plugins/mercurial/Mercurial.pluginspec.in
	src/plugins/perforce/Perforce.pluginspec.in
	src/plugins/projectexplorer/ProjectExplorer.pluginspec.in
	src/plugins/pythoneditor/PythonEditor.pluginspec.in
	src/plugins/pythoneditor/pythoneditorwidget.cpp
	src/plugins/pythoneditor/wizard/pythonfilewizard.cpp
	src/plugins/qbsprojectmanager/QbsProjectManager.pluginspec.in
	src/plugins/qbsprojectmanager/defaultpropertyprovider.cpp
	src/plugins/qmakeprojectmanager/QmakeProjectManager.pluginspec.in
	src/plugins/qmakeprojectmanager/profileeditorfactory.cpp
	src/plugins/qmldesigner/QmlDesigner.pluginspec.in
	src/plugins/qmljseditor/QmlJSEditor.pluginspec.in
	src/plugins/qmljseditor/qmljseditorfactory.cpp
	src/plugins/qmljstools/QmlJSTools.pluginspec.in
	src/plugins/qmlprofiler/QmlProfiler.pluginspec.in
	src/plugins/qmlprojectmanager/QmlProjectManager.pluginspec.in
	src/plugins/qnx/Qnx.pluginspec.in
	src/plugins/qtsupport/QtSupport.pluginspec.in
	src/plugins/remotelinux/RemoteLinux.pluginspec.in
	src/plugins/resourceeditor/ResourceEditor.pluginspec.in
	src/plugins/resourceeditor/resourcewizard.h
	src/plugins/subversion/Subversion.pluginspec.in
	src/plugins/tasklist/TaskList.pluginspec.in
	src/plugins/texteditor/TextEditor.pluginspec.in
	src/plugins/texteditor/basetexteditor_p.h
	src/plugins/texteditor/basetextmark.cpp
	src/plugins/texteditor/codeassist/basicproposalitemlistmodel.h
	src/plugins/texteditor/codeassist/defaultassistinterface.h
	src/plugins/texteditor/codeassist/iassistproposalitem.cpp
	src/plugins/texteditor/itexteditor.cpp
	src/plugins/texteditor/itexteditor.h
	src/plugins/texteditor/itextmark.cpp
	src/plugins/texteditor/plaintexteditor.cpp
	src/plugins/texteditor/plaintexteditor.h
	src/plugins/texteditor/texteditoractionhandler.cpp
	src/plugins/todo/Todo.pluginspec.in
	src/plugins/updateinfo/UpdateInfo.pluginspec.in
	src/plugins/valgrind/Valgrind.pluginspec.in
	src/plugins/vcsbase/VcsBase.pluginspec.in
	src/plugins/welcome/Welcome.pluginspec.in
	src/plugins/winrt/WinRt.pluginspec.in
	tests/auto/debugger/temporarydir.h

Change-Id: I254af8be8119fe9855287909e17d4b8ca9d2fc2f
2014-10-14 15:36:16 +02:00
Eike Ziller
8295b503be License update
Change-Id: I3c22ef2685d7aa589f5d0ab74d693653a4c32082
Reviewed-by: Alessandro Portale <alessandro.portale@digia.com>
2014-10-09 11:41:44 +02:00
Ulf Hermann
0f3f3df36c QmlProfiler: Center trace view vertically around newly selected items
It's rather unintuitive if it only centers horizontally.

Change-Id: I9245da0b26fccc14a100804715d09aaa82059413
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-10-02 11:27:41 +02:00
Ulf Hermann
95a13d57c8 QmlProfiler: propagate selections from trace to event view by typeId
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>
2014-10-02 11:27:28 +02:00
Ulf Hermann
cfaa30d0b9 QmlProfiler: Eliminate ambiguity from TimelineModelAggregator::count()
It wasn't helpful that this method could either count all events or
only the events from a specific model.

Change-Id: I09dcb37edd3403a23f6ee9008fc71b6761aa9e26
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-09-29 14:28:10 +02:00
Ulf Hermann
b2487e1683 QmlProfiler: Introduce properties for timeline category heights
Like this we can easily refer to them from QML and it makes it simpler
to see if we mean the overall height or the height of a single category.

Change-Id: Ia2b79d99b5c46c3d9563cfc2ed0715bc352ce9b4
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-09-29 13:19:23 +02:00
Ulf Hermann
38f4d6a5f2 QmlProfiler: rename "eventId" fields to "typeId" and "selectionId"
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>
2014-09-29 13:06:45 +02:00
Ulf Hermann
2b362de064 QmlProfiler: introduce properties for empty, hidden and displayName
Like this we can properly refer to them from QML.

Change-Id: I98378d543d307f78909191225e72c9d0404dfa1d
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-09-15 09:15:52 +02:00
Ulf Hermann
2677e33782 QmlProfiler: rename relative height of timeline items to "relativeHeight"
This clarifies that the item height is not absolute but relative to the
row height, and it reduces the ambiguity of the various "height" methods.

Change-Id: I391441147c88b47a14e539fc3853702bb517d27b
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-09-10 15:43:00 +02:00
Ulf Hermann
36d8ad4c39 QmlProfiler: drag&drop reordering of models in timeline
Task-number: QTCREATORBUG-12337
Change-Id: I399593f44aa8ff8dd79c623108fecb3c317cb63c
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-09-09 12:02:38 +02:00
Ulf Hermann
00650c8b65 QmlProfiler: connect category labels to specific models
By listening only to the relevant expandedChanged and rowHeightChanged
signals we avoid accessing invalid data on clearing. When clearing the
models each one is collapsed. The collapsing in turn triggers
rebuilding of the labels. Unrelated labels could access already
cleared data like this.

Change-Id: I3fad45f5c6279019fbc27ec54e758f498a9d55f2
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-09-09 12:01:58 +02:00
Ulf Hermann
092627f680 QmlProfiler: Simplify range details
There is no use in creating multiple nested maps and lists and
selecting special translation contexts for that.

Change-Id: Ib83ab651adca8258a0e5b9ac99a657623a24145b
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-08-26 14:53:17 +02:00
Ulf Hermann
57fe9b7b5e QmlProfiler: Rename get* and find* methods to their canonical names
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>
2014-08-26 14:52:09 +02:00
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
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
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
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
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
Ulf Hermann
fea6580c82 QmlProfiler: get rid of hash strings
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>
2014-06-17 16:26:06 +02:00
Ulf Hermann
3ea13b9b12 QmlProfiler: remove eventType and simplify nesting calculations
With only one category per model we only have one eventType per model
and thus we don't need to differentiate per type anymore when
calculating the nesting.

Change-Id: Ic42a1c5c056f3480b7842a57fbff66a5e907abfb
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-06-17 16:25:31 +02:00
Ulf Hermann
accc92ae47 QmlProfiler: Allow only one category per model in timeline
This simplifies the code a lot and allows for more flexibility
when interacting with the data.

Change-Id: I69630071eee66840e905fcd95ba8c708742d58b6
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-06-16 12:17:49 +02:00
Ulf Hermann
eef83495ea QmlProfiler: Pass model index to QML when selecting in trace view
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>
2014-06-16 12:17:15 +02:00
Ulf Hermann
1c4db84063 QmlProfiler: Don't convert between QColor and QVariantList
There is no reason to express colors as QVariantList.

Change-Id: I8c816e547b2f9be0f02a9d275791021ac06cff4f
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-06-06 15:29:46 +02:00
Ulf Hermann
19652d7b84 QmlProfiler: Remove dead code.
Change-Id: Ib44094740e93f1389c3caa07371866714a375f04
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-02-19 16:39:14 +01:00
Ulf Hermann
58e3c9ed05 QmlProfiler: Unify QML and V8 data models
There is no real reason for the existence of a QmlProfilerSimpleModel.

Change-Id: I6419973cfad5564913bf92f17fdcf7e529af4b01
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-02-19 15:57:29 +01:00
Ulf Hermann
db7c75597c QmlProfiler: eliminate redundant categories() methods
Change-Id: I3a85322cc583de37f1cc4eb256e3382a92c5c179
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-02-18 14:46:17 +01:00
Ulf Hermann
70aa948f0c QmlProfiler: Remove some useless signals and QML variables
We don't want to emit a signal for each event being added. That's
expensive and doesn't serve any purpose. We also don't have to save
the availability of data in QML as it isn't used anywhere.

Change-Id: I32db06a1955a7cfd6b569f50b81bf5278333b622
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-02-18 14:44:46 +01:00
Robert Loehning
746c5d8863 Incremented year in copyright info
Change-Id: Ib5423fdd064e4546f848c0b640b0ed0514c26d3a
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-01-08 08:29:47 +01:00
Orgad Shaneh
4442a92729 Braces cleanup
Change-Id: I8413252c90a1487d291f15d92837c30ab697b245
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-11-14 08:13:52 +01:00
Christiaan Janssen
0a3b20f5f9 QmlProfiler: reworked
Change-Id: I66a236a024d76e7bef6edfb91ae30b5dd098b76b
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2013-08-09 17:19:32 +02:00