Commit Graph

82 Commits

Author SHA1 Message Date
hjk
01f2b982a2 Debugger: Move ownership of perspective dock widgets to plugins
Similar to the previous patch, but affecting more plugins: with dynamic
perspectives lifetime is better managed close to the code that knows how
to (re-)construct the items.

Change-Id: I0e7bfcf769d198ec2afa88b972be900baa1b6a46
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2018-08-01 11:27:21 +00:00
hjk
0c2bc9c2da Debugger: Move ownership of perspective central widget to plugin
It's only used in GammaRay currently, and with dynamic perspectives
lifetime is better managed close to the code that knows how to
(re-)construct the beasts.

Change-Id: I9e8ebe2e93d749a62fb008f773f1702a4c0bab3c
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2018-07-31 13:41:18 +00:00
hjk
be89452602 Debugger: Start introducing dynamic perspectives
Make perspectives and tool bars destroyable. This is a
step forward to multiply debugger engines whose perspective's
life time is connected to the engine, not the debug mode.

In the present setup there are two kind of perspective:
1 - static: with a lifetime associated to the application
(or, rather, plugin that defines them). These are listed
in the perspective chooser, later e.g. Debugger for
pre-set breakpoints
2 - dynamic: with a shorted lifetime, e.g. running GDB engine.

Presently, and possibly also in future so, a dynamic
perspective is related to exactly one of the static
perspectives, i.e. are kind of "child".

Change-Id: Ic11572e7121e14f8da2927a0c0ac3441c99073a3
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2018-07-31 07:38:38 +00:00
hjk
d41e690c84 Debugger: Add a way to add perspective windows one-by-one
More convenient in some circumstances.

Change-Id: I413be4bebe9f5a2bbdfa9617ada6242d867eb1a0
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2018-07-26 08:44:50 +00:00
hjk
33e5c3672d Debugger: Make perspective saving more flexible
This essentially replaces saveCurrentPerspective by some
savePerspectiveHelper(m_currentPerspectiveId)

This is in preparation of the change introducing multiple running
engines, and per-engine perspectives.

Change-Id: Ibdbdac019bb5d47936ba4ab5de08711f2c16ea99
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2018-07-25 07:35:59 +00:00
hjk
0a0e56fe3b Debugger: Compile fix
Change-Id: I1b7c4de471d79ec4ea712cbfdb61fe6f5c43a743
Reviewed-by: hjk <hjk@qt.io>
2018-07-24 11:31:16 +00:00
hjk
c1ea6f518c Debugger: Return created tool button from Perspective::addAction
It will be needed later to show/hide the buttons depending on
engine-specific abilities or other circumstances.

Change-Id: I029012e01929e5e96e2af87da2cf3580a8d82b3f
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2018-07-24 11:20:45 +00:00
hjk
cb572773c0 Debugger: Robustify MainWindow state saving
Save the state before child widgets are affected.

Task-number: QTCREATORBUG-20721
Change-Id: I1d0d1ca610b0a8e8904585953ecbb42dddee4827
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2018-07-06 13:42:05 +00:00
hjk
1b87d19a64 Debugger: Modernize
Mostly nullptr instead of 0, but also a few bits of collateral damage.

Change-Id: I921991272aca921dcdecf302dfff3716e79dfc24
Reviewed-by: David Schulz <david.schulz@qt.io>
2018-02-01 10:28:54 +00:00
hjk
78513ecd8f Debugger: Split Expressions view into dock of its own
Change-Id: Ie86a5bd72c3140219f925835a065d9f6a3ae0ea4
Task-number: QTCREATORBUG-19167
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-11-06 11:53:57 +00:00
Hannah von Reth
ada1429594 Introduce setPerspectiveEnabled
This enables us to mark perspectives as disabled.

Change-Id: I52b2434f33f8550b6d2459f915dfd8cdb1389140
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: hjk <hjk@qt.io>
2017-07-11 15:38:49 +00:00
Tobias Hunger
85115d486a Debugger: Initialize members
m_toolbarDock was only initialized in finalizeSetup, which is triggered
by the plugin's initialize() method. This is not safe since Creator might
shut down before that method ever gets called.

Change-Id: Idadb6ac943ed6799d1bd9db1ecb884cb39038389
Reviewed-by: hjk <hjk@qt.io>
2016-12-05 13:19:40 +00:00
Tobias Hunger
e2986af343 Debugger: Initialize variables in debugger main window
Change-Id: I705e02d177b2d8cd41f87791441dcc9fa093e60a
Reviewed-by: hjk <hjk@qt.io>
2016-11-29 16:32:00 +00:00
hjk
e7d6f8e514 Debugger: Compile fix after previous change
Change-Id: Ie9b871a7dee7bf886474ff87306ed934c1a67b6d
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-11-21 13:40:46 +00:00
hjk
6de88f7fae Debugger: Add a way to notify perspective about their activation
Change-Id: I5a6189e835aa293341f357c08f1d4b8ca4dd8326
Reviewed-by: Filipe Azevedo <filipe.azevedo@kdab.com>
Reviewed-by: hjk <hjk@qt.io>
2016-11-21 13:10:26 +00:00
Ulf Hermann
72cca4855d Debugger: Have main window handle mode change separately
On shutdown the DebuggerMainWindow might not be alive anymore. By
connecting the signal handler to the window, rather than the plugin we
avoid dereferencing null pointers in that case.

Change-Id: I6421eebc6b1b76f176b31eafeb039d91edd3f0b3
Reviewed-by: hjk <hjk@qt.io>
2016-08-26 11:52:23 +00:00
hjk
df8e3b5925 Debugger: Let perspectives specify their central widget
The default 0 value will be interpreted as 'use the editor stack'.

Also, drop the idea of value semantics for Perspective objects
to get a simpler approach to the destruction of owned widgets
(tools docks + central widget)

Change-Id: Ic6470411ee5d387c43447f95b5a12c81c6658ff8
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2016-05-13 11:34:00 +00:00
Alessandro Portale
97cd094009 Debugger: Display separate icons for toolbar and menu
Overriding the ProxyAction icons accordingly.

Change-Id: I52b6414fe6a0b1128394452f599b2b6c67d37e53
Reviewed-by: Alessandro Portale <alessandro.portale@theqtcompany.com>
2016-05-04 10:37:26 +00:00
hjk
04acb9d643 Debugger: Export Debugger::createModeWindow()
For re-use in the GammaRay integration plugin.

Change-Id: I3fa1ad10645628a05bcd1248a50f23ac3d47a243
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2016-04-11 13:37:02 +00:00
hjk
5e47d35fcd Use Core::Id in ModeManager interface
Makes it more uniform to use and allows placeholder widget
creation to be independent of mode creations.

Change-Id: I4021bc9db7f8c78f0374c0cc3b3331506959afe4
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
2016-04-08 10:38:49 +00:00
Oswald Buddenhagen
e426d08e54 Merge remote-tracking branch 'origin/4.0'
Conflicts:
	qtcreator.pri
	qtcreator.qbs
	src/plugins/debugger/debuggerruncontrol.cpp

Change-Id: I81b43480a1369e3d7be60ae26e812dda6b962b0b
2016-04-01 17:31:39 +02:00
hjk
39a38d5679 Wholesale conversion to #pragma once
Kudos to cgmb and https://github.com/cgmb/guardonce

Change-Id: Ifa8970734b8d43fd08c9260c645bdb0228633791
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
2016-03-30 15:20:19 +00:00
hjk
259c3cb4d4 Debugger: Fix object leakage on shutdown and heap-use-after-free.
Task-number: QTCREATORBUG-15938
Change-Id: I437756705c33730398a129651fabe34c92334656
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
2016-03-24 15:02:56 +00:00
hjk
48fb9e1855 Debugger: Move main splitter creation to DebugMainWindow setup
To allow other mode main windows to re-use the perspective
concept.

Change-Id: Icf00b4f0e4bd73a09ebec131ef9c578154f25eec
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2016-03-11 08:08:11 +00:00
hjk
f09f39f7e2 FancyMainWindow: Move toolbarDockWidget "property" to subclass
This was only used to accommodate the debugger main window
and is not needed in the base class.

Change-Id: Ifbe9937cd4c21f5bed2fab35b23d874f4f2dd0e4
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
2016-03-09 15:35:12 +00:00
hjk
92e301a054 Debugger: Merge debug mode and analyze mode
On the user-visible side, only the 'Analyze' mode button disappears,
and instead a combobox to switch between different tools in appears
in the Debug mode toolbar.

Internally, that's quite some re-organzition: The centralized
'Analyze mode is busy' flag is gone, allowing us to run e.g.
ClangStaticAnalyzer and MemCheck in parallel.

Analyzer tools and debugger now share the same mechanism to
generate/load/save dock widgets.

Analyzer tools now create and handle their own start/stop button
when appropriate. In general, Analyzer tools can create/handle more
than one run control at a time.

Further consolidation is possible, e.g. RunControl state handling
could be merged into the base ProjectExplorer::RunControl to
avoid the still existing duplication in ~15 instances.

Change-Id: I91e5940ebc4211f98056d507cf2f7b5f8efe7f07
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2016-03-07 15:06:10 +00:00
hjk
65d7aedd27 Debugger: Rename Perspective::Split to Perspective::Operation
We have 'raise' in there now, that's not a split anymore.

Change-Id: Id45c606056dfab1317fad37b2fe37216b0eacf85
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2016-03-03 12:53:45 +00:00
hjk
9ff81d5c68 Debugger: Make Perspective status label global
After some discussion we agreed that the contents is ephemeral
and does not need to survive perspective switching.

Change-Id: I41de6a8f9478e4bd229c8b204ef7a3fa0a344b75
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2016-03-02 13:14:14 +00:00
Orgad Shaneh
c5f60bcc7c Debugger: Fix compilation without tests
* Some functions were inside WITH_TESTS section.
* MSVC requires Perspective::Split to be explicitly exported.

Change-Id: I272cefc5c4f446415b2714595f8b398f8ce010a4
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2016-03-02 08:52:30 +00:00
hjk
f3bd7412ef Debugger: Remove return value from AnalyzerManager::createDockWidget()
Change-Id: If6cd2a68f2f99a1977ded0f05a12790194143274
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2016-03-02 08:08:15 +00:00
hjk
6492d16408 Debugger: Split out re-usable parts of ex-AnalyzerMainWindow
Next steps is to re-use it for ex-DebuggerMainWindow.

Change-Id: Ic272d062f6db2e54ed62082c2a7d3a289b810a03
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2016-03-02 08:06:55 +00:00
hjk
397e6546e1 Debugger: Split debugger main window implementation
... into a plain Utils::FancyMainWindow object and the debugger
specific functionality in Debugger::MainWindow.

A step forward to share the Utils::FancyMainWindow with the
(Ex-)Analyzer MainWindow and towards merging Analyzer and
Debugger mode.

Change-Id: I50e89d9d615226cb9b9af1a653c7383468e40a93
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2016-03-02 08:05:23 +00:00
Tobias Hunger
397e7f4843 Update License according to agreement with Free Qt Foundation
* Update files in src/plugins

Change-Id: Ia5d77fad7d19d4bb3498e78661982f68729adb22
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
2016-01-19 15:57:01 +00:00
hjk
6e7f07c37a Debugger: More modernization
New connects, some auto.

Change-Id: I768637aae9cbb0a62e9082e56141f212022d8220
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
2015-02-27 12:19:25 +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
hjk
aff13fdf27 Debugger: Make DebuggerEngine internal
Expose less of debugger internals to the device plugins.

Change-Id: Ie78756b033fae3fe02bff92eadf26b7319990605
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
Reviewed-by: Christian Kandeler <christian.kandeler@theqtcompany.com>
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-12-15 17:23:48 +01: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
hjk
3ed30f09cf {Fancy,Debugger}MainWindow: Consolidate dock actions menu population
There are several places where the list of dock actions are shown,
and at least two where it was created.

Change-Id: Ib2c18e602b5d6f57c1b7471bd75f3b989d536600
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2014-07-18 08:14:56 +02:00
hjk
7347ecc54b Debugger: Hide some dock widget access
Change-Id: I6cd12a0a7a04f4d37165828552c08263537cfdbb
Reviewed-by: hjk <hjk121@nokiamail.com>
2014-07-16 16:42:21 +02:00
hjk
3ebc5220a3 Debugger: Simplify raise-on-stop logic
Also slightly change meaning (now all stops may cause raising).

Change-Id: Ie3fee7371ab119e4e9747dc44a4d8ef2cd62c8d8
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2014-05-27 10:22:49 +02: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
hjk
78dc4ee112 Debugger: Add view menu to toolbar
Change-Id: I8783ce66d28626e9a484d6aa729fccd07bbda0b8
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2013-06-25 14:53:34 +02:00
Eike Ziller
65ce453c4e Add split in new window action for editor views.
A few details are still to be done:
- extra windows are not restored yet
- window title of extra windows should show information about current
  editor
- the "raise main window" hack for Linux doesn't work with Qt 5

But it should already now be quite usable.

Change-Id: I638583ee4b2abe32e95c261bdf31b4a10b472748
Reviewed-by: David Schulz <david.schulz@digia.com>
2013-05-08 13:07:05 +02:00
hjk
ed890bc940 Debugger: Move dockwidget object names into a more private place
Change-Id: I5a3565179fdd8627387ba01370e6484d668e2160
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-04-23 17:36:36 +02:00
Friedemann Kleint
68cd15382d Fix Krazy warnings about includes/header guards in Debugger.
Change-Id: If547a0002d37710fac58c1a13bacc48cf531bed7
Reviewed-by: hjk <hjk121@nokiamail.com>
2013-03-12 12:49:48 +01:00
Robert Loehning
298531e370 Incremented year in copyright info
Change-Id: Ic6a9ff0359625021ebc061d22db6811814534205
Reviewed-by: Kai Koehne <kai.koehne@digia.com>
2013-01-29 16:27:03 +01:00
hjk
386ca7c8dd Adjust license headers
Change-Id: Ice592c6de9951ee3b2c4cb52ed0bb3b6770e0825
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
2012-10-05 17:12:56 +02:00
hjk
60de95aff6 debugger: Remove dead code
Change-Id: Id59c9df315f7b19cd8a705e4283e749fb71b4dce
Reviewed-by: hjk <qthjk@ovi.com>
2012-08-16 12:35:10 +02:00
Eike Ziller
e0e8cf3ada Contact -> qt-project.org
Change-Id: I7134d7de30bcf9f9dcfad42520dd45ee083a852d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2012-07-19 13:23:21 +02:00