When switching from a header to a source file, the source->header
mapping is cached. It's not the case anymore for private headers (_p).
Change-Id: I481c0613e29db0a3fb4e17f339626abb49ffa8e2
Reviewed-by: Leandro Melo <leandro.melo@nokia.com>
This makes navigation through large files much easier.
Change-Id: Ie55f75078a1727949db6e8824af4795deb96292e
Reviewed-by: Leandro Melo <leandro.melo@nokia.com>
Improve the sorting of proposals, so that "logical" sort is used: if there are
numeric parts in the strings, these are compared as numbers instead of purely
lexicographically.
Thus, the list: [item1, item10, item1b, item2]
gets sorted as: [item1, item1b, item2, item10]
Change-Id: I16a0106d9dc9bb27731f96c3f180ad20cd9a44f5
Reviewed-by: Leandro Melo <leandro.melo@nokia.com>
This replaces the debugger command, sysroot and target abi fields
with a profile id.
Change-Id: I831c42ff8624fcfa520c2f28f6f06d73191b2680
Reviewed-by: Tobias Hunger <tobias.hunger@nokia.com>
Just in case compilers id defining such things.
Change-Id: Ica6af8462e90bfab2bfa883ec12d5e648d6d33db
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
Not used anywhere currently, but should still be correct, of course.
Change-Id: I163bd94b87af8b0e71caa2cfdafd1551a4de86a4
Reviewed-by: Tobias Hunger <tobias.hunger@nokia.com>
Otherwise a new client acquiring the connection could be affected by
things happening in channels that were not opened by that client, which
would certainly be unexpected.
In particular, if the new owner of the connection runs in a different
thread than the old one, crashes could occur since the connection
assumes its channels run in the same thread.
Change-Id: I4fdf2b5a3751ed506631d6878e94342da033c31c
Reviewed-by: Tobias Hunger <tobias.hunger@nokia.com>
The parser now understands emit/Q_EMIT as an expression statement.
Also, the recent fixes in the preprocessor introduced a side-effect
in the hanlding of code such as: emit signal(); Member signal started
being treated as a local use (parsed as a declaration) and possibily
being highlighted as unused variable.
Previously that worked by accident since there was an inconsistency
in the preprocessor on which only object-like macros were being
expanded even when the "no expand" flag was set. Then, the code
mentioned above was being parsed as an expression, what kind of worked.
Change-Id: I47a68ed4c1c1702872620b8ed7c7264fb0997034
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
This stops certain profiles from being recreated during import
of a project.
Task-number: QTCREATORBUG-7564
Change-Id: I2194ec704484bfd9c5a52608e2b03272d544ab82
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
Always use the full path to avoid spurious warnings about the debugger
being missing.
Change-Id: I8ffe768f71fa89327f711752d6339ab969a8d34e
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
This allows our users to change/remove it.
Task-number: QTCREATORBUG-7568
Change-Id: Ie004eb73ceb4a4c77882db037609af4a3f226081
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
Old version was 1.8.8, new one is 1.10.2.
We now put all the code into one pair of files (via
a botan configure option) and move platform-specific
defines into the pro/qbs files. Besides drastically
reducing the number of files, this is expected to make
future updates less messy.
Change-Id: I004166b2ab15b6a699d69aebfcfd9999c5ccdb91
Reviewed-by: hjk <qthjk@ovi.com>
Do not treat "" as a invalid sysroot after the sysroot was already
set to something else.
Change-Id: I241d874969a7b7d81dfee0f2804579e5a92ada25
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
Do not add "(default)" used to mark the default profile to
the profiles name when changing some of its settings.
Task-number: QTCREATORBUG-7573
Change-Id: I41497013e5321f9169d054f549966fb29329786f
Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
Summary of most relevant items:
- Preprocessor output format change. No more gen true/false. Instead
a more intuitive and natural expansion (like from a real compiler) is
performed directly corresponding to the macro invocation. Notice that
information about the generated tokens is not lost, because it's now
embedded in the expansion section header (in terms of lines and columns
as explained in the code). In addition the location on where the macro
expansion happens is also documented for future use.
- Fix line control directives and associated token line numbers.
This was not detected in tests cases because some of them were
actually wrong: Within expansions the line information was being
considered as originally computed in the macro definition, while
the desired and expected for Creator's reporting mechanism (just
like regular compilers) is the line from the expanded version
of the tokens.
- Do not allow for eager expansion. This was previously being done
inside define directives. However, it's not allowed and might
lead to incorrect results, since the argument substitution should
only happen upon the macro invocation (and following nested ones).
At least GCC and clang are consistent with that. See test case
tst_Preprocessor:dont_eagerly_expand for a detailed explanation.
- Revive the 'expanded' token flag. This is used to mark every token
that originates from a macro expansion. Notice, however, that
expanded tokens are not necessarily generated tokens (although
every generated token is a expanded token). Expanded tokens that
are not generated are those which are still considered by our
code model features, since they are visible on the editor. The
translation unit is smart enough to calculate line/column position
for such tokens based on the information from the expansion section
header.
- How expansions are tracked has also changed. Now, we simply add
two surrounding marker tokens to each "top-level" expansion
sequence. There is an enumeration that control expansion states.
Also, no "previous" token is kept around.
- Preprocessor client methods suffered a change in signature so
they now receive the line number of the action in question as
a paramater. Previously such line could be retrieved by the client
implementation by accessing the environment line. However, this
is not reliable because we try to avoid synchronization of the
output/environment lines in order to avoid unnecessary output,
while expanding macros or handling preprocessor directives.
- Although macros are not expanded during define directives (as
mentioned above) the preprocessor client is now "notified"
when it sees a macro. This is to allow usage tracking.
- Other small stuff.
This is all in one patch because the fixes are a consequence
of the change in preprocessing control.
Change-Id: I8f4c6e6366f37756ec65d0a93b79f72a3ac4ed50
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>