Commit Graph

1631 Commits

Author SHA1 Message Date
Eike Ziller
af17e1922f Merge remote-tracking branch 'origin/3.4'
Change-Id: I66ac8be7a8e99fc730131f75710bafc73809f593
2015-03-02 12:11:37 +01:00
Joerg Bornemann
d2892026c8 QmlProfiler: fix progress bar visibilty for loading traces
Move the main part of the loading work into a background thread
and show the standard progress indicator for the "reading file"
part of the load operation.
The load operation can be canceled now.

Change-Id: I4cb3b762072ab4a0665dcf9d4a39d6d6630d22e8
Task-number: QTCREATORBUG-11822
Reviewed-by: Ulf Hermann <ulf.hermann@theqtcompany.com>
2015-02-26 16:19:27 +00:00
Joerg Bornemann
5515d0308e fix indentation
Change-Id: I4a753fe1c3f94876f1ac2c205f90ff5ccc6504bd
Reviewed-by: Ulf Hermann <ulf.hermann@theqtcompany.com>
2015-02-26 16:19:22 +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
7f001dab1b Core: Make Context parameter to registerAction optional
... and default to C_GLOBAL. A rather common case.
Similar for ActionContainer::addSeparator().

Change-Id: I7f9ba573af201c0a472132d5a494ad17cc4175b7
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
2015-02-26 10:09:03 +00:00
Ulf Hermann
d2a3f3f2c7 QmlProfiler: Don't re-estimate profiling time when not profiling
Change-Id: I2485aff4f1317a0bf194455969757da497c7e404
Task-number: QTCREATORBUG-14024
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
2015-02-25 16:58:54 +00:00
hjk
54ce123a26 ProjectExplorer: Add runStartupProject() convenience function
The usage pattern seems to be used often enough to justify a function.

Change-Id: Iecdeb2b42879f419154902e685d0d13e8cae8b33
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Reviewed-by: Daniel Teske <daniel.teske@theqtcompany.com>
2015-02-23 11:01:56 +00:00
hjk
813e995ebf Analyzer: Reduce explicit use of StartMode enum
Change-Id: I27b1d06395dea940c8dd39cd2bd41fc09cee3a9c
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2015-02-20 09:35:24 +00:00
hjk
9d707ac63c Analyzers: Various cleanups
Fallout after the demise of IAnalizerTool.

Change-Id: I68f936ed5f2929dc4f09a408bdf6b0ea38e568ef
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2015-02-19 12:36:52 +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
hjk
64be0004a6 Analyzer: Remove IAnalyzerTool::m_toolMode member
It's always known from the context when needed.

Change-Id: Ibf314dfb779190e89b775acab784ed71acff2c83
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2015-02-18 13:24:01 +00:00
hjk
35d3088252 Analyzer: Move runMode member from IAnalyzerTool to AnalyzerAction
Slim down tool before dissolving.

Change-Id: I502aaa8860293acf8bfd93f541b751d5b96a9563
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2015-02-18 12:51:52 +00:00
hjk
da92b09969 Valgrind: Dissolve ValgrindTool hierarchy level
Medium term all *Tool should be replaced by RunControl(Factory)
to make the analyzer architecture more similar to Qt Creator core

Change-Id: I892cfc7fe45c73cc6ac4442a288810b83cb24c17
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2015-02-18 11:24:15 +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
hjk
23647954f8 QmlProfiler: Remove QmlProfilerAction
It's an empty shell.

Change-Id: Ifc382e66fb2c2885b82342ebf53dfc219926658e
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Reviewed-by: Ulf Hermann <ulf.hermann@theqtcompany.com>
2015-02-18 09:24:38 +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
Orgad Shaneh
24e257f5ed QmlProfiler: Fix compiler warnings on release build
Change-Id: Id6fde7279f80cdc7a74322bcee4e0ce41f7fc3bc
Reviewed-by: Ulf Hermann <ulf.hermann@theqtcompany.com>
2015-01-12 15:13:41 +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
acc4d1a412 QmlProfiler: Implement TimelineModelAggregator::clear()
Change-Id: I3c300a1ebc2286e0ac5d281f29dbffeb5259e62e
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
2014-12-16 15:22:36 +01:00
Ulf Hermann
eb9cbd5e3e QmlProfiler: Fix lock icon in selection details
It didn't show the "locked" state anymore.

Change-Id: Ia5f9e86bf265261c17ca1318bb166bbaf0414d78
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
2014-12-16 15:22:25 +01:00
Ulf Hermann
2b7a9f50b4 QmlProfiler: Fix selection by typeId
Selection propagation by typeId was still using the old general
aggregator methods that have been removed by now.

Change-Id: I955149e6ed8f3d6274a2a15a882e1f10341302e4
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
2014-12-16 15:22:20 +01:00
Ulf Hermann
b1cd118cff QmlProfiler: Fix nesting calculation.
The previous version makes no sense as two events for which
start2 > end1 cannot have start1 == start2. Also, as we only keep
parents, not children, in the parent list, we don't need all the
special cases for grandparents.

Change-Id: Ic6bae2fe237a31726fd55f560c309ba09b5af25d
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
2014-12-16 15:22:14 +01:00
Christian Kandeler
2f1cbad968 QmlProfiler: Fix qbs build.
Change-Id: I369e0bdf29481c3b86af71f82760dc7550d2be23
Reviewed-by: Ulf Hermann <ulf.hermann@theqtcompany.com>
2014-12-15 17:44:24 +01:00
Ulf Hermann
8f7bd19600 QmlProfiler: be more resilient against missing models in render passes
Change-Id: Ib5c0ec44bac213f544dfce533299bee03213b374
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
2014-12-15 17:13:11 +01:00
Ulf Hermann
2284de02ec QmlProfiler: Fix drag/drop reordering
Since the reorganization into rows it would behave strangely when
reordering small categories under large ones.

Change-Id: Ic481710a706cc06a699e50ff60eaea2937a50530
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
2014-12-15 16:42:47 +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
cf80b93be0 QmlProfiler: Make TimeDisplay more configurable
With the extra parameters we can also use it for the labels on the top
of the overview

Change-Id: Icd1a515498455f1f6247845ac559f07eaef40d08
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
2014-12-15 14:52:09 +01:00
Ulf Hermann
9c53c1dbea QmlProfiler: Require only subset of renderer to execute render passes
Like that we can easily add different renderers to use the same render
passes, e.g. for the overview.

Change-Id: Ib7dcb77a45e74488971011310f53f7639286768d
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
2014-12-15 14:52:01 +01:00
Ulf Hermann
2b143cf810 QmlProfiler: Convert the render pass state into a pure interface
Like that we don't have to expose any private members and we don't have
to care about QSGNodes we'll never create in a render pass.

Change-Id: I4e71da24c85de8f8f73d58fc2e76dc5e82ee31ae
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
2014-12-15 14:51:54 +01:00
Ulf Hermann
35204e1147 QmlProfiler: Apply d-pointer pattern to TimelineRenderState
It will be a public class in the timeline library.

Change-Id: I77a3bedd9e63b57c199680e89da1950ed7b7e3d1
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
2014-12-15 14:51:45 +01:00
Ulf Hermann
f87622c363 QmlProfiler: Apply d-pointer pattern to TimelineRenderer
TimelineRenderer will be a public class in the timeline library. We
don't want to expose its private members.

Change-Id: Ib82ab8b30f702293d1d8b5d101b7dd0e3380194c
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
2014-12-15 14:51:38 +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
67e515aec6 QmlProfiler: remove useless notesChanged signal from aggregator
Change-Id: Ifebd60a24b3e07702ca603425b5133e9a23557c5
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
2014-12-15 12:57:22 +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
13c5cee372 QmlProfiler: Untangle QML code
Split it up into some more files and remove all implicit cross
referencing by ID.

Change-Id: I3f829d6701906b1b054d18680d9e670b35b1716a
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
2014-12-15 12:57:09 +01:00
Christian Stenger
49b1fd133a QmlProfiler: Fix compile on OSX
Change-Id: If875b290dcdd2974a7e28dcc37e068e775a986d7
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
2014-12-12 12:42:40 +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
Eike Ziller
541d00453a Merge remote-tracking branch 'origin/3.3'
Conflicts:
	qtcreator.pri
	qtcreator.qbs
	src/plugins/projectexplorer/projectexplorer.cpp
	src/shared/qbs

Change-Id: I6d91042bb48314d00be721099aed19feca74e0ce
2014-12-10 13:20:02 +01:00
Ulf Hermann
7659159017 QmlProfiler: Constrain the length of painted events to the visible area
When overpainting, some note markers won't be visible.

Change-Id: I7888d43e8b1e3503b7a90e773e9c8138b70070f0
Task-number: QTCREATORBUG-13534
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
2014-12-09 11:10:35 +01:00
Ulf Hermann
901da05def QmlProfiler: more precise event selection in timeline
Generate a score for each candidate event and choose the one with the
best score in the end.

Change-Id: I463e87d2e6cb4e182f7febda7182ae8abf304e04
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
2014-12-05 14:15:33 +01:00
Ulf Hermann
c34ad1dc5b QmlProfiler: Don't modify height of timeline items based on row height
When precomputing all timeline items in advance we cannot react to
height changes later

Change-Id: Ib038fb59581fe8367c1c550839a728f371005ab6
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
2014-12-05 14:15:29 +01:00
Ulf Hermann
6b08ff6bc4 QmlProfiler: Use Flickable's pixelAligned property
This is much cleaner than manually casting contentX and contentWidth
to int. Also, it actually forwards the int-aligned dimensions to the
TimelineRenderer.

Change-Id: I7dad8eeabf1f3b70c5e725a82a2926b3db6f1b16
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
2014-12-05 14:15:22 +01:00
Ulf Hermann
54f5ef3e58 QmlProfiler: Optimize row lookup in timeline renderer
If the category is collapsed we just have to divide by defaultRowHeight
as rows cannot be resized then.

Change-Id: I147363a879c9756030b6b7da5cbce7fc2f3e9b47
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
2014-12-05 14:15:19 +01:00
Ulf Hermann
725623583f QmlProfiler: Separate expanded and collapsed row heights and counts
We'll need to access both of them when building the scene graph. This
change also clarifies the dynamics between expanding categories and
row heights and offsets.

Change-Id: I2e2bf488ad973c95d05f230bf6fff63598f39bf2
Reviewed-by: Kai Koehne <kai.koehne@theqtcompany.com>
2014-12-05 14:15:15 +01:00