Add the View > Modes menu as a context menu to the mode selector in the
emtpy areas. Add a context menu with "Hide" and the mode style to the
modes that don't have a menu, and extend existing mode menus (Debug
mode) with these items too.
Change-Id: I28106d9b6c4f0d69b2d06c4ec9664eb67e2b1216
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: hjk <hjk@qt.io>
On Windows it is hard to figure out which of the items you
want to choose. The popup's menu on Windows just gets the
width of the current item and therefore you may only see
mid-elided items holding a leading and a trailing letter.
This patch makes the popup behave like it does on Linux
or macOS where the width is always wide enough to display
the items correctly.
Change-Id: I53d155fc64b765692c071886cca883f376c86a82
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Since dd9f9c799b we not only save the dock
widget state as the state of Perspectives, but the whole FancyMainwindow
state, so other properties from FancyMainWindow like the side bar state
is saved too.
The conversion from "legacy" to "new" state information was only done
when saving the state of perspectives when switching them (and for the
active Perspective at shutdown). The code that serialized that into
settings was expecting "new" state information, which was not true and
lead to soft asserts.
Do the conversion directly when reading settings instead.
Change-Id: I588fcf49bb7195100030266e5752358b7e734113
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Like it is now supported in Widget Designer, the view/hide action
toggles the corresponding dock widget area. We cannot do that for the
left dock widget area yet, because that action still needs to toggle the
navigation side bar.
To support this, we need to save not only the QMainWindow state for the
debugger perspectives, but the whole FancyMainWindow state including the
information about hidden dock widget areas. Unfortunately the
PerspectiveState was serialized to QVariant without versioning, so
keeping it that way is difficult. Switch saving&restoring of
PerspectiveState to Utils::Store (and keep some compatibility code).
Change-Id: I0035841930c6a574aeb31650a28be9989e2b5741
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Add a button that can be used to collapse a dock widget's contents
temporarily, as an alternative to removing and re-adding it.
To achieve that, remove the inner widget of the dock widget and store it
in an inner pointer. Just setting the inner widget invisible/visible
does not work, because the title widget of a dock widget with invisible
inner widget becomes 0 for some reason. We also need to add a dummy
widget with a maximum height, to make the dock widget resize and not be
resizable afterwards.
Do not allow collapsing if the dock is the only one in the area, in a
horizontal layout, floating, or tabbed.
Change-Id: Ibc1acb59d58069f08184e65c4814642acb0028ee
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
This added complexity with the hovering to get the title bars shown, and
discoverability issues with the action in the views menu to show all
title bars, and the issue that some docks then had double titles,
because we wanted some title to be shown even if the title bar is
hidden.
Instead only show the dock control buttons only on hover, which already
removes a lot visual clutter that was the main reason for the
whole exercise.
One issue is that the title is now uselessly repeated for tabbed docks.
Another is that the title bar style is ugly and not very compatible to
what we otherwise have.
Change-Id: Ib093e0a3f2f07ece74b9055015c5523994032c5a
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
Assign a name for a label for easier retrieval and fix the used
objects inside the shared script.
Change-Id: I1769b87d776a2dc9fee9ca9eb26805f6a8475fc0
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
This commit introduces the capability to initiate
CMake Debug sessions directly from the debug panel
in the QtCretor.
Change-Id: I00245e0e14aded378e881c4049cdc41dd1fbd00e
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: hjk <hjk@qt.io>
This introduces string constants in Utils::StyleHelper. They are used by
code all over in Qt Creator to tell ManhattanStyle how to paint certain
widgets.
Change-Id: Iecca36103f80084cd5fe93fcb6b18b8fbb3a32bb
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
This makes sure that toolbutton sizes and spacings are correct in all
toolbar layout modes.
Task-number: QTCREATORBUG-29082
Change-Id: If2aad74b77c0b8dcda81478e3d345c783584cec4
Reviewed-by: hjk <hjk@qt.io>
20 string duplications warrant a centralized setter. A couple more of
them will come with the upcoming toolbar changes.
Change-Id: Ide8c680da21d5be09f968bcc0a774e062c6f0260
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Since we also license under GPL-3.0 WITH Qt-GPL-exception-1.0,
this applies only to a hypothetical newer version of GPL, that doesn't
exist yet. If such a version emerges, we can still decide to relicense...
While at it, replace (deprecated) GPL-3.0 with more explicit GPL-3.0-only
Change was done by running
find . -type f -exec perl -pi -e "s/LicenseRef-Qt-Commercial OR GPL-3.0\+ OR GPL-3.0 WITH Qt-GPL-exception-1.0/LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0/g" {} \;
Change-Id: I5097e6ce8d10233993ee30d7e25120e2659eb10b
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
We've been requiring C++17 since Qt 6.0, and our qAsConst use finally
starts to bother us (QTBUG-99313), so time to port away from it
now.
Since qAsConst has exactly the same semantics as std::as_const (down
to rvalue treatment, constexpr'ness and noexcept'ness), there's really
nothing more to it than a global search-and-replace.
Task-number: QTBUG-99313
Change-Id: I88edd91395849574436299b8badda21bb93bea39
Reviewed-by: hjk <hjk@qt.io>
The toolbar is wrapped around QScrollArea.
Because the height of toolbar (=25px) is 1px bigger than the height of
the scroll area (=24px), widgets on the toolbar move up/down 1px by
mouse wheel.
Fixes: QTCREATORBUG-28107
Change-Id: I83dc9c6d7b0916f31d5f0f15f310be3b0d149bec
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Replace the current license disclaimer in files by
a SPDX-License-Identifier.
Task-number: QTBUG-67283
Change-Id: I708fd1f9f2b73d60f57cc3568646929117825813
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Visible in the O and <> buttons of the Callgrind toolbar.
Change-Id: I1016f853335bfc243f7e934e7a0cd430922c8af6
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This is not exactly what the linked task complained about, but
solves the issue. Disabling the central editor is rarely useful
(it can be limited to three lines in height) but still temporarily
possible with this patch.
Task-number: QTCREATORBUG-25315
Change-Id: I18182e11d7d3e2167a24a340ab1ae7222009b8c9
Reviewed-by: David Schulz <david.schulz@qt.io>
... to applicable analyzers.
Rather than inventing separate shortcut categories for all the
analyzers, we make use of the fact that only one analyzer view is active
at any given time, and make them use the same shortcuts for consistency.
Fixes: QTCREATORBUG-20659
Change-Id: Ifa60080def0e6b32395854cff588ab3af9ea33b9
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
The coreplugin/id.h header is kept for downstream for now.
Change-Id: I8c44590f7b988b3770ecdc177c40783e12353e66
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Set a menu for switching perspectives on the debug mode icon. When icons
& text are shown for the modes, there is an additional arrow to the
right of the mode that can be clicked to open the menu. This
functionality was added in 4.1 for that purpose, finally use it.
Do not show and arrow in "Icons Only" mode, so it stays small, but make
it available on right-click as well.
Change-Id: If19877b5231b7f01f0b3fd98cf65e8eaf9da1a5f
Reviewed-by: hjk <hjk@qt.io>
There are more, but we need to keep those because MSVC believes they are
required. This is the subset that satisifies both compilers.
Change-Id: I0b0a63d5496acc119a7f0513d3a1da0b76fa1fca
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: David Schulz <david.schulz@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This ensures the showCentralWidget() call in restorePersistentSettings()
has something to operate on.
Change-Id: I52e676517cad4e7c3c0e7ca80b8756f937c805a0
Fixes: QTCREATORBUG-23755
Reviewed-by: David Schulz <david.schulz@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
A "View" menu seems to be what many users are looking for when they want
to show or hide panes/views, so move corresponding actions there.
Window management / split actions stay in the "Window" menu.
Fixes: QTCREATORBUG-23610
Change-Id: Id683addc681de99abb35697a735fdbc9dc0d00cd
Reviewed-by: hjk <hjk@qt.io>
... to DebuggerPlugin ctor. This fixes a "Variant::load: unknown users
type with name Utils::PerspectiveState" message when the TextEditor
plugin restore the FontSettings.
Change-Id: I8e1ebe562233ff6e9b7bdbfa85680e5acf6c4715
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
op.dock can legitimately be valid for 'Raise' operations.
Change-Id: Ic59dbf102302bb3f38da56fb0e8d46f18e26cf8b
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This is bit of a hack: The dock widget sizes were actually restored
but when previously non-existing docks were affected, a re-layout
was triggered, resulting in different sizes. This can be avoided
by instantiating all dock first.
Fixes: QTCREATORBUG-22415
Change-Id: I4c0b27f5bab5864e93e303db758d8b909a51a425
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Amends 5273ef2a8a
Use cases mentioned there should still work.
Fixes: QTCREATORBUG-22938
Fixes: QTCREATORBUG-22286
Change-Id: Ie7bb6b7ea6d05a94cbeeb5b8021dc638548778d9
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
(cherry picked from commit e9c0ba9997)
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Amends 5273ef2a8a
Use cases mentioned there should still work.
Fixes: QTCREATORBUG-22938
Fixes: QTCREATORBUG-22286
Change-Id: Ie7bb6b7ea6d05a94cbeeb5b8021dc638548778d9
Reviewed-by: Christian Stenger <christian.stenger@qt.io>