Indexing source files multiple times is unneeded overhead in many cases.
The source manager is a support class to handle that cases.
Change-Id: Id737eaa9a691c54563279562833493a221eb3431
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
While executing tests it had been possible to trigger another
run when using the context menu on one of the result items
inside the results pane. Prohibit it at first hand instead of
running into a soft assert later on.
Change-Id: Ib5a4ca53a2605d12f6539fd68aee099211f12174
Reviewed-by: David Schulz <david.schulz@qt.io>
Correct syntax of using regex substitution. The missing
replacement seems to have resulted performing the search
case insensitive which in turn resulted in splitting within
an option. Fix this by explicitly passing an empty
replacement.
Change-Id: Ieccde1f9daae445d0ebe3b7454f56d09f0139e3c
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Combine two branches. The function is only used in the remote and the
local plain case, and the resulting actions were the same.
Change-Id: I30c0b4488f04667d88b69f2c8ecd1dead92e0766
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
They fit our use-case much better.
Task-number: QTCREATORBUG-20874
Change-Id: Ifa06ce00f3e6999a99c3bc2bb7e9ba759fa02e94
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Some debugger functions are used for both C++ and QML debugging.
Putting them into an include file enables using the descriptions
in both the Qt Creator Manual and Qt Design Studio Manual.
Change-Id: Ief7e1e1c76a881eb6722161a1b216b3d711c6290
Reviewed-by: hjk <hjk@qt.io>
This is a step towards properly supporting multiple debugger
sessions side-by-side.
The combined C++-and-QML engine has been removed, instead a
combined setup creates now two individual engines, under a single
DebuggerRunTool but mostly independent with no combined state
machine. This requires a few more clicks in some cases, but
makes it easier to direct e.g. interrupt requests to the
interesting engine.
Care has been taken to not change the UX of the single debugger
session use case if possible. The fat debug button operates
as-before in that case, i.e. switches to Interrupt if the
single active runconfiguration runs in the debugger etc.
Most views are made per-engine, running an engine creates
a new Perspective, which is destroyed when the run control dies.
The snapshot view remains global and becomes primary source
of information on a "current engine" that receives all menu
and otherwise global input.
There is a new global "Breakpoint Preset" view containing
all "static" breakpoint data. When an engine starts up it
"claims" breakpoint it believes it can handle, but operates
on a copy of the static data. The markers of the static
version are suppressed as long as an engine controls a
breakpoint (that inclusive all resolved locations), but are
re-instatet once the engine quits.
The old Breakpoint class that already contained this split
per-instance was split into a new Breakpoint and a
GlobalBreakpoint class, with a per-engine model for Breakpoints,
and a singleton model containing GlobalBreakpoints.
There is a new CppDebuggerEngine intermediate level serving as
base for C++ (or, rather, "compiled") binary debugging, i.e.
{Gdb,Lldb,Cdb}Engine, taking over bits of the current DebuggerEngine
base that are not applicable to non-binary debuggers.
Change-Id: I9994f4c188379b4aee0c4f379edd4759fbb0bd43
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: hjk <hjk@qt.io>
When using QMAKE_CXX='ccache g++' the build failed.
Change-Id: Ic580d4d6561711d4d871ea242151628ad2678f99
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
It is needed for the Qt Design Studio Manual, where the
"analyze" folder is now excluded from doc sources.
Change-Id: Ic5fc97f05ca84e428be6309979e2927563c9e814
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
To be able to build Qt Creator Manual and Qt Design Studio Manual
from the same sources.
Change-Id: I6adbc7b7f23c40f24508a8de7ae9ad5a2a3a103e
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
This patch is needed due to some issues of an older STL
implementation. The patch can safely be reverted when
Xcode 8 is marked as outdated.
Change-Id: I0f66eb6f3a0ae71f0da3f5678d9b4d47cdf146bf
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
With Gnome, Qt seems to send shortcut override events to the
CompletionList, and not to the input field, so handle
the shortcut override for Ctrl+N/P there too.
Technically this is the correct thing to do anyhow, since
CompletionList also handles the corresponding key press events.
Task-number: QTCREATORBUG-20867
Change-Id: Ia72aae3b085140f18b0f1007991d38864dfe8426
Reviewed-by: André Hartmann <aha_1980@gmx.de>
Currently, only Android and embedded Linux devices are supported
by Qt Design Studio.
Change-Id: I10005f6a9cfeb93c99447796c1c9e6d47ab578de
Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
When used in SubItem, enums were displayed as
"value of type E at address <addr>".
Change-Id: Ieecfb791126c6f63f272817afc6c8d05f28b9242
Reviewed-by: David Schulz <david.schulz@qt.io>
It is required with Qt 5.11.
Task-number: QTCREATORBUG-20912
Change-Id: I172caf605a95d560d730d8007f2cf623abc90957
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Remove MSVC-specific flags and split the string into
separate flags.
Change-Id: Idce7c2e988651df670c0119245dc6f6c89461c41
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
Qt Creator failed to properly display GDB's LazyString.
The problem was that GDB's 'PlainDumper::__call__' passed a 'gdb.Type',
while 'DumperBase::putCharArrayHelper' called methods that are only
defined for the custom and more abstract 'Type' type defined in 'dumper.py'.
As described at [1], GDB's 'LazyString.type' "holds the type that is
represented by the lazy string’s type. For a lazy string this is a pointer
or array type. To resolve this to the lazy string’s character type,
use the type’s target method."
In addition, 'gdb.Type' does not have a 'size()' method, just a 'sizeof'
member, s. [2].
Since all other uses of 'DumperBase::putCharArrayHelper' are passed
a "proper" type, extract the code common to the GDB case and all others
into a separate method and directly call this one for the GDB LazyString
case.
[1] https://sourceware.org/gdb/onlinedocs/gdb/Lazy-Strings-In-Python.html#Lazy-Strings-In-Python
[2] https://sourceware.org/gdb/onlinedocs/gdb/Types-In-Python.html#Types-In-Python
Task-number: QTCREATORBUG-20939
Change-Id: I16608668c9403b6d8e509dab17eb1788586f453e
Reviewed-by: hjk <hjk@qt.io>
Use a model index from the right model, and update the bread crumb, when
updating the scroll position delayed, for the case where the directory
for the file was not already loaded in the file system model yet.
Broke with introduction of the folder vs alphabetic sorting.
Task-number: QTCREATORBUG-20897
Change-Id: Ifc912184b4910ed546c0141044eead3650b98c87
Reviewed-by: David Schulz <david.schulz@qt.io>
Environment variables are passed on to user applications,
and we should avoid forcing ANGLE on these.
Task-number: QTCREATORBUG-20808
Change-Id: Ia6663e4e2bc4f78ec053d100563a0f07d47092be
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
When hiding the bread crumbs in the filter option dropdown, there was
some spacing and the separator line left.
With this patch, the spacing and line are hidden too, making the layout
nicer and more similar to before the bread crumbs feature existed.
Task-number: QTCREATORBUG-20733
Change-Id: I560b4414804c8cd25e88d645aa3042acb1b8e06c
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Update module version for import completion.
Task-number: QTCREATORBUG-20785
Change-Id: I11761854bd5c7c4ce832f39b815f7bbf710db5e8
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
In Vim land do as Vim does.
Change-Id: I4172039804fbee2c596f02587028943ac9845164
Task-number: QTCREATORBUG-20923
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
System includes suppress warnings and prevent indexing of unwanted symbols.
Using system includes for all includes outside of the project can be
quite advantageous. The rootProjectDirectory() can be extended to be set
in the project settings. An automatic generation could be possible but
could create an unwanted path which includes files outside of the
perceived project.
Change-Id: Ib9d3158f14f41efe1f6657f962d5c4437bb324b2
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
This is an intermediate step to handle the indexing of the project parts
completely. The generated files are now independently handled from the
project parts. We still not handle the case the a file is indexed but the
generated file is not provided. This will be done in a different patch.
All provided data is now sorted too to improve merging.
Change-Id: I09712b99217a881ec0a233d09aea8659fb787324
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
The kate syntax highlighter format allows to directly assign a color for
a specific item. This could result in a bad contrast ratio between text
and background. Check the contrast ratio according to W3C Recommendation
and apply if it exceeds the minimum contrast ratio for large text.
(https://www.w3.org/TR/2008/REC-WCAG20-20081211/#visual-audio-contrast-
contrast)
Task-number: QTCREATORBUG-20919
Change-Id: If5a5d09224446df72f31027cd30e50088179d6d7
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Follow-up for d2b951565a. Handle anonymous namespaces
via USR because they don't have displayName.
Change-Id: I5c747951ce406963a0c9a22ff78c92678909a61c
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
Since some Xcode version, running clang directly from the Toolchains
directory requires explicitly passing the sysroot to use.
If that is not done, inclusion of some standard headers like string.h
fails.
Change-Id: I640eca41d4132354f1091a7514586cb582e5d05c
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Pass id in constructor, so it can be const.
Change-Id: Id33fe19c4416109af8aa05a3ed0a09918eeb5cdf
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
ManhattanStyle adapts the palette of widgets in its polish(...) method.
But creating widgets directly schedules a polish event, and after a
widget was polished it will never be polished again (except if the style
changes).
Before f45f1a8cef, toolbar widgets were
directly added to the widget hierarchy of the toolbar, but now that is
no longer the case. That means that the widgets are polished before they
are added to the toolbar hierarchy, so ManhattanStyle does not change
their palette.
To fix this we explicitly make tool bar widgets "panelwidget"s when they
are added to a perspective.
Task-number: QTCREATORBUG-20916
Change-Id: I659798c7c314a481d1ec467b1877f2e6ddd6da70
Reviewed-by: Christian Stenger <christian.stenger@qt.io>