The reasoning in 1b4766e26c did not take into account that the scope
of QT_NO_JAVA_STYLE_ITERATORS may change over time, as done with
f70905448f6 in Qt base.
Change-Id: Ib1966ff26c4d36d5f62e149d6b45baa4aecf825d
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Introduce a generic Utils::TouchBar that implements a touch bar for
macOS based on QAction. Touch bars can be nested, and one is set to be
the application's top level touch bar.
Also add an ActionContainer for the touch bar. That allows us to manage
the layout of the touch bar the same way we do with menus.
Since the touch bar is an input device with very limited space, a
command in the touch bar needs to be specifically styled for the touch
bar by setting either touchBarText or touchBarIcon (or both).
Touch bars can be nested by nesting the ActionContainers. A nested touch
bar ActionContainer needs to specify an icon and/or text to show in the
touch bar button that opens that sub-bar.
Commands are only shown in the touch bar if they are valid within the
current context.
Implementation-wise we cannot use the standard NSPopoverTouchBarItem for
nesting touch bar levels. We cannot hide items in the touch bar, because
hidden items still take up space in the touch bar. So we need to rebuild
the touch bar regularly. Since the items we show are very dynamic, every
time the items in the toplevel bar change because of a context change,
any opened sub-level touch bar closes. That is why we maintain a stack of
touch bar levels ourselves, replacing the main touch bar with the current
level, and managing opening and closing the levels manually.
This patch adds buttons for Help, Bookmarks, Header/Source, Follow
(Symbol), Decl/Def, and a sub-bar for the debugger actions.
Fixes: QTCREATORBUG-21263
Change-Id: Ib63e610f21a993f1d324fe23c83a7f2224f434ac
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
By default Qt does heuristics on the menu item text, to decide the menu
role of an item, including whether the item should be used for the
Preferences entry in the application menu.
Now, "QML Profiler Options" is translated to "Einstellungen des QML-
Profilers" which matches the heuristics for the "Preferences" item,
replacing the actual Preferences.
For menu items we already force the menu role to NoRole if there hasn't
been a role explicitly set. Do that for the generated menus as well.
Change-Id: I4abb3f20fd51ef033e5ec68c2283af8b7b52927d
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
It doesn't make sense to specify both a group ID and a menu to add
another menu before. This most certainly leads to inconsistency in the
internal book keeping in m_groups vs the actual menu insertion point.
Change-Id: Ic30508f390885ddeb72eb94f26efb75456b469ec
Reviewed-by: hjk <hjk@qt.io>
Shouldn't be necessary because the MenuActionContainer takes care of
deletion if it wasn't deleted before, but works around issues with
placing menu popups with Qt Wayland (QTBUG-68636)
Task-number: QTCREATORBUG-20516
Change-Id: Ib1d393abc78b145905429e64f8bf7541af75bdad
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
Reviewed-by: Robert Loehning <robert.loehning@qt.io>
This basically makes the Context parameter optional and default
to C_GLOBAL. Less noise on the user side.
Change-Id: Idaf1b83eabaf912450ab20bd5a8b613844bf69a2
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
Also make a bit less dependent on main window:
- Menus do not need to start with main window as parent.
- Centering the presentation label on the main window is wrong in the
presence of extra windows anyhow. It should be centered on the active
window.
Unfortunately, actions still must be added to the main window, because
actions that are not children of visible widgets do not trigger.
Change-Id: Ibb99644a3723de476db465ebe6a9cdc0820ea692
Reviewed-by: Tobias Hunger <tobias.hunger@theqtcompany.com>
Currently we pass in some places by value, elsewhere by const ref and
for some weird reason also by const value in a lot of places. The latter
is particularly annoying, as it is also used in interfaces and therefore
forces all implementors to do the same, since leaving the "const" off is
causing compiler warnings with MSVC.
Change-Id: I65b87dc3cce0986b8a55ff6119cb752361027803
Reviewed-by: hjk <hjk121@nokiamail.com>
Only methods as programming functions are affected. Besides renaming
some actions like "Switch Between Function Declaration/Definition" this
mostly touches (api) code comments.
This is a follow-up patch to commit 872bfb7.
Change-Id: Icb65e8d73b59a022f8885b14df497169543a3b92
Reviewed-by: hjk <hjk121@nokiamail.com>
A lot of our build system files specify unneeded include
paths. These roughly fall into the following categories:
a) Paths that are already set in more general files
such as qtcreator.pri.
b) Paths that serve no purpose at all, possibly
left over from earlier versions of the project.
c) Paths that act as workarounds for wrong include
statements of the form '#include "xyz.h"', where
xyz.h is not in the same directory as the including
file.
This patch removes such path specifications and fixes the offending
include statements from case c).
Tested on Linux, Windows and OSX with qmake and qbs.
Change-Id: I039a8449f8a65df0d616b4c08081145c18ae4b15
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
QDoc cannot find functions if the signature in the \fn command
is not identical to the declaration, including 'const' qualifiers.
Removed the \fn where the documentation comes immediately before the
function, as qdoc does not need it in that case.
Change-Id: If6a2a2e2d58b394905c803787d2a93489049e4ca
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
Replace compile-time checks for host OS by run-time checks.
Change-Id: I9f237389171586786c2609f81314bcb1bc17b01e
Reviewed-by: Eike Ziller <eike.ziller@digia.com>
Getting the #include directives ready for Qt5. This includes the
new-project wizards.
Change-Id: Ia9261f1e8faec06b9285b694d2b7e9a095978d2b
Reviewed-by: Eike Ziller <eike.ziller@nokia.com>
This crash can happen when enabling/disabling a certain combination
of plugins and restarting.
There was a null pointer de-reference that was occurring because the
qt4projectmanagerplugin was referencing an action that it believed
to have been registered by the texteditorplugin when it was initialized.
However, apparently the texteditorplugin was not initializing its actions
at plugin initialization, but rather when 'extensionsInitialized' was called.
I do not know the call graph for when this is to be called, but I encountered
at least one situation where the qt4projectmanagerplugin was being initialized
before this.
Change-Id: Iede1831e0ac9c92b80a079157e1bdc8c66473470
Reviewed-by: Leandro Melo <leandro.melo@nokia.com>
Reviewed-by: Eike Ziller <eike.ziller@nokia.com>