Commit Graph

79 Commits

Author SHA1 Message Date
Ulf Hermann
ffa0c86617 QmlProfiler: Allow multiple events views loaded from plugins
Change-Id: Ifaf4e63f4a843a42a1a22f005e87d8c1a4604686
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2016-01-06 14:28:24 +00:00
Ulf Hermann
e4efb9bb3b QmlProfiler: Retrieve common actions from ActionManager
This removes the need to pass the QmlProfilerTool instance to all views.
QmlProfilerTool is exported so that we can access the common actions
from plugins.

Change-Id: Ie7072c23ef35763b729f4b87acce47ecbdb76e43
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2016-01-06 14:28:20 +00:00
Ulf Hermann
4223d76c48 QmlProfiler: Rename "events" to "statistics" view
Change-Id: Id552e0ead056214a7d72dd618c54897b55cd5e38
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2016-01-06 14:25:08 +00:00
Ulf Hermann
df4e46ff02 QmlProfiler: Reduce external interface of QQmlProfilerEventsWidget
Change-Id: I06a610cca606b98bc3f5741c1363b98f2b28d7eb
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2016-01-06 14:22:43 +00:00
Ulf Hermann
35ce8f50df QmlProfiler: remove dead code
We never propagate a selection by source location.

Change-Id: I4594b88080bd1834572c0087db0397bc08a81d70
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-11-12 09:15:23 +00:00
Ulf Hermann
07241006ee QmlProfiler: Adapt to updateCursorPosition() change in Timeline
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>
2015-11-12 09:15:20 +00:00
Ulf Hermann
1caa899b8d QmlProfiler: Make sure timeChanged() signal is queued when needed
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>
2015-09-01 10:17:17 +00:00
Ulf Hermann
7344c27622 QmlProfiler: Remove separator comments
It's not clear what they're supposed to tell us.

Change-Id: I62f4fb1265396b8d61df0ce6e3409f0eda677170
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-07-02 10:17:48 +00:00
Ulf Hermann
d573454936 Timeline: Remove the stateChanged signal from TimelineModelAggregator
It doesn't serve any purpose anymore.

Change-Id: I20c64e35415fc842852cf8e4bb20611294943a16
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-05-18 11:17:26 +00:00
Ulf Hermann
d71dfa97bf Timeline: Remove useless dataAvailable() signals
The only thing they did was trigger some QML code that set the zoom to
10% of the available range. 10% is somewhat arbitrary, so we shouldn't
have it in the general purpose timeline. Also, we don't really have to
pass the signal through several connections just to do that in QML.

The clearChildren() didn't have any effect there as dataAvailable()
should only happen if the view is already cleared.

Change-Id: I1813ed37a82fc3fd5c3b7fc02b2afb1dcbcadcfb
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-05-18 10:00:40 +00:00
Eike Ziller
af2db92523 QmlProfiler: Improvements to searching timeline event notes
- 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>
2015-05-15 06:44:47 +00:00
Eike Ziller
65cd5381d9 Merge remote-tracking branch 'origin/3.4' 2015-03-26 12:51:06 +01:00
Ulf Hermann
a4b3c46250 Timeline: Centralize the selection in zoom control.
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>
2015-03-24 11:36:16 +00:00
Eike Ziller
9790d8aa00 Merge remote-tracking branch 'origin/3.4' 2015-03-24 07:40:21 +01:00
Ulf Hermann
ce04aeb2dc QmlProfiler: Don't hide/show trace view when loading and saving
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>
2015-03-23 09:41:55 +00:00
Joerg Bornemann
c3e1ccf78e QmlProfiler: save trace data in background thread
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>
2015-02-26 16:19:11 +00:00
hjk
73e2b0c579 Analyzer: Dissolve IAnalyzerTool
Change-Id: I1fd90cf00d6b9dff54b4555a14747282830a4b93
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2015-02-18 14:52:07 +00:00
Orgad Shaneh
b6de2d1bd8 QmlDesigner: Remove unneeded qualifications
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>
2015-02-18 09:53:25 +00:00
Joerg Bornemann
1d14dbf1aa QmlProfiler: add functionality to search for notes
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>
2015-02-16 13:57:34 +00:00
Joerg Bornemann
5b6d89dd95 QmlProfiler: use QQuickWidget instead of window container
Using QQuickWidget removes the need for some work-arounds.

Task-number: QTCREATORBUG-11822
Change-Id: I1e344f0a9c11b4aa8601e8e1056602d855fb3f4d
Reviewed-by: Ulf Hermann <ulf.hermann@theqtcompany.com>
2015-02-16 10:52:00 +00:00
Eike Ziller
9926fc2ab1 Merge commit '3c85058694ee2e41658d17f524fb48f0b187d2fe'
Conflicts:
	src/libs/utils/tooltip/tipcontents.cpp
	src/libs/utils/tooltip/tipcontents.h
	src/plugins/android/androiddeployqtstep.cpp
	src/plugins/baremetal/baremetalconstants.h
	src/plugins/baremetal/baremetaldevice.cpp
	src/plugins/baremetal/baremetaldevice.h
	src/plugins/baremetal/baremetaldeviceconfigurationwidget.cpp
	src/plugins/baremetal/baremetaldeviceconfigurationwidget.h
	src/plugins/baremetal/baremetaldeviceconfigurationwizard.cpp
	src/plugins/baremetal/baremetaldeviceconfigurationwizardpages.cpp
	src/plugins/baremetal/baremetaldeviceconfigurationwizardpages.h
	src/plugins/baremetal/baremetalplugin.cpp
	src/plugins/baremetal/baremetalplugin.h
	src/plugins/baremetal/baremetalruncontrolfactory.cpp
	src/plugins/baremetal/baremetalruncontrolfactory.h
	src/plugins/cppeditor/cppcodemodelinspectordialog.cpp
	src/plugins/cppeditor/cppdoxygen_test.cpp
	src/plugins/cppeditor/cppdoxygen_test.h
	src/plugins/debugger/breakpointmarker.cpp
	src/plugins/debugger/debuggeritemmodel.cpp
	src/plugins/debugger/debuggeritemmodel.h
	src/plugins/debugger/loadcoredialog.cpp
	src/plugins/genericprojectmanager/cppmodelmanagerhelper.cpp
	src/plugins/projectexplorer/addnewmodel.cpp
	src/plugins/projectexplorer/addnewmodel.h
	src/plugins/projectexplorer/jsonwizard/jsonfieldpage.cpp
	src/plugins/qmlprofiler/abstracttimelinemodel.cpp
	src/plugins/qmlprofiler/abstracttimelinemodel.h
	src/plugins/qmlprofiler/notesmodel.cpp
	src/plugins/qmlprofiler/qml/CategoryLabel.qml
	src/plugins/qmlprofiler/qml/MainView.qml
	src/plugins/qmlprofiler/qml/Overview.js
	src/plugins/qmlprofiler/qml/Overview.qml
	src/plugins/qmlprofiler/qml/TimeDisplay.qml
	src/plugins/qmlprofiler/qml/TimeMarks.qml
	src/plugins/qmlprofiler/qmlprofilertimelinemodelproxy.cpp
	src/plugins/qmlprofiler/sortedtimelinemodel.cpp
	src/plugins/qmlprofiler/sortedtimelinemodel.h
	src/plugins/qmlprofiler/timelinemodelaggregator.cpp
	src/plugins/qmlprofiler/timelinemodelaggregator.h
	src/plugins/qmlprofiler/timelinerenderer.cpp
	src/plugins/qmlprofiler/timelinerenderer.h
	src/plugins/qmlprojectmanager/QmlProjectManager.json.in
	src/plugins/texteditor/findinfiles.cpp
	src/plugins/vcsbase/vcsconfigurationpage.cpp
	src/shared/qbs
	src/shared/scriptwrapper/interface_wrap_helpers.h
	src/shared/scriptwrapper/wrap_helpers.h
	tests/auto/qmlprofiler/abstracttimelinemodel/tst_abstracttimelinemodel.cpp
	tests/system/suite_debugger/tst_debug_empty_main/test.py
	tests/system/suite_debugger/tst_qml_js_console/test.py
	tests/system/suite_debugger/tst_qml_locals/test.py

Change-Id: I67540b648f8b162496f4aa606b04d50c7c9125c6
2015-02-12 17:29:21 +01:00
Eike Ziller
3c85058694 Update License
Change-Id: I711d5fb475ef814a1dc9d2822740e827f3f67125
Reviewed-by: Alessandro Portale <alessandro.portale@digia.com>
2015-01-16 12:37:56 +01:00
Ulf Hermann
c40d9e9d17 Timeline: Create new library from contents of QmlProfiler
Change-Id: I964b2f149e237eb25a08600e8dab8968e8bc0cb9
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
2014-12-16 15:22:48 +01:00
Ulf Hermann
32c4d554e7 QmlProfiler: Make overview declarative
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>
2014-12-15 14:52:17 +01:00
Ulf Hermann
516c0d6020 QmlProfiler: Move timeline classes into own namespace
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>
2014-12-15 14:51:33 +01:00
Ulf Hermann
c86efd2179 QmlProfiler: cleanup QmlProfilerTraceView
Remove some unnecessary code and consolidate things.

Change-Id: I3f6c971b84368013a60a7a7fa9545480b0cd551b
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
2014-12-15 14:51:23 +01:00
Ulf Hermann
d7206ee3c3 QmlProfiler: Rename qmlProfilerModelProxy to timelineModelAggregator
This makes it much easier to deduct where it's coming from.

Change-Id: Ica85e1df0a03a01c1b319b3523fb5746e6c2d8f8
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
2014-12-15 14:25:04 +01:00
Ulf Hermann
6239de07a4 QmlProfiler: split notes model in generic and specific classes
Change-Id: I633dc6a862f344a7e5e86c25e44e400e3000f644
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
2014-12-15 12:57:27 +01:00
Ulf Hermann
dcbd4ac1c6 QmlProfiler: Use generic timeline classes where applicable.
Change-Id: I7bab7b20f3467f000a7ba4917919caa8f15ecf22
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
2014-12-15 12:57:16 +01:00
Ulf Hermann
ef064154a4 QMLProfiler: Use scene graph for painting events in timeline
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>
2014-12-12 11:01:51 +01:00
Ulf Hermann
b1f4f56e99 QmlProfiler: Reorganize timeline into rows
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>
2014-12-05 13:14:18 +01:00
Ulf Hermann
e570e7a271 QmlProfiler: Make notes a property of timeline model aggregator
Change-Id: I5aa8162d18fad46601198fe71fe87591737c30ff
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
2014-11-21 10:55:11 +01:00
Ulf Hermann
4ec75995f8 QmlProfiler: fix selection propagation from event view to timeline
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>
2014-11-21 10:54:18 +01:00
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
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
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
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
38d69ae4ef QmlProfiler: Relay mouse move events to the timeline's parent window
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>
2014-08-26 19:04:45 +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
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
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
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
6d41c6922f QmlProfiler: put all of the traceview in one QQuickView
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>
2014-06-06 14:21:28 +02:00
Ulf Hermann
9e802e3af1 QmlProfiler: Reduce the amount of useless signals on item selection
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>
2014-04-09 16:36:04 +02:00
Ulf Hermann
be1a94ef1f QmlProfiler: Keep an extra time window in ZoomControl
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>
2014-04-02 16:46:53 +02:00
Ulf Hermann
224210b0fa QmlProfiler: remove dead code
The selectedEventChanged signal was never emitted and aliasing the
selectedItem property was unnecessary.

Change-Id: I2a15ad82bbf20a7ae9a42e17935242fbac7b5129
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-03-31 11:59:14 +02:00
Ulf Hermann
0c9a9348f9 QmlProfiler: Consistently clear when clear button pressed
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>
2014-03-31 10:39:52 +02:00
Ulf Hermann
7d23ee717d QmlProfiler: Remove dead code
No need to keep properties around that aren't read anywhere.

Change-Id: Ie9300ad646466a6a2368f644a420d8654891805f
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2014-03-31 10:34:38 +02:00