Pass id in constructor, so it can be const.
Change-Id: Id33fe19c4416109af8aa05a3ed0a09918eeb5cdf
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This simplifies the toolbar setup and removes the need for the
stack of toolbar widgets.
The actions themselves have been owned by the plugin already,
so nothing changed in this respect.
Change-Id: I44754e16c8fc2acc53633dd9d560b1e732eece27
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
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>
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>
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>
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>
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>
Save the state before child widgets are affected.
Task-number: QTCREATORBUG-20721
Change-Id: I1d0d1ca610b0a8e8904585953ecbb42dddee4827
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Mostly nullptr instead of 0, but also a few bits of collateral damage.
Change-Id: I921991272aca921dcdecf302dfff3716e79dfc24
Reviewed-by: David Schulz <david.schulz@qt.io>
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>
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>
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>
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>
For re-use in the GammaRay integration plugin.
Change-Id: I3fa1ad10645628a05bcd1248a50f23ac3d47a243
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
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>
To allow other mode main windows to re-use the perspective
concept.
Change-Id: Icf00b4f0e4bd73a09ebec131ef9c578154f25eec
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
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>
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>
We have 'raise' in there now, that's not a split anymore.
Change-Id: Id45c606056dfab1317fad37b2fe37216b0eacf85
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
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>
* 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>
Next steps is to re-use it for ex-DebuggerMainWindow.
Change-Id: Ic272d062f6db2e54ed62082c2a7d3a289b810a03
Reviewed-by: Christian Stenger <christian.stenger@theqtcompany.com>
... 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>
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>
Also slightly change meaning (now all stops may cause raising).
Change-Id: Ie3fee7371ab119e4e9747dc44a4d8ef2cd62c8d8
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
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>