Creator is distinguishing enumerations and records, so we should do too.
Change-Id: I114cfd207464abd9afd96c26c7504cf8a3a1cb8c
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
The previously per-Project/RunConfiguration changing meanings of
BuildTargetInfo::buildTarget have by now been split
into separate values in BuildTargetInfo:
- buildKey a handle to one item in Target::applicationTargetList
- displayName a user-visible string in the run settings page
The buildKey was tweaked to coincide with the previous 'extraId',
i.e. the non-RunConfiguration-type part of the project configuration
id that (still) use id mangling.
This allows replacing the cases of locally stored seven different
versions of buildKey(-ish) data by one RunConfiguration::m_buildKey,
and do all remaining extraId handling in RC::{from,to}Map only,
i.e. remove the base ProjectConfiguration::extraId() virtual and
remove the "re-try fromMap with mangled id" hack entirely.
The id mangling is still used to temporarily maintain .user file
compatibility in some cases for now, but should be replaced by
storing the build key and the RunConfiguration type soon. Qbs
already changes in here to only use the uniqueProductName as
buildKey, without the previously added display name which is
stored as part of the ProjectConfiguration already.
It turns out that RunConfiguration::buildSystemTarget was intended
and used to retrieve an item from the Target::applicationTargetList
for some configurations, coinciding with what buildKey does always.
So use that insteand and drop RunConfiguration::buildSystemTarget.
There is clearly is further consolidation potential left.
handling of (default)displayNames is still a per-runconfiguration
mess and there is further consolidation potential left.
Change-Id: I448ed30f1b562fb91b970e328a42fa5f6fb2e43e
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
... with the paths of libraries used at link time. The value can still
be set per run config.
Task-number: QTCREATORBUG-20240
Change-Id: Ibe2425e95d791f93af2fba85a64be8bde6b31f5a
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
The directives .pragma and .import are not included in the AST.
Their source code locations are not stored in any other place.
As a result, when reformatting the source, they simply disappear.
This patch keep track of their source code locations, so they are
not removed when reformatting the source code.
This patch contains also some modification in the lexer that should
probably be ported to the qtdeclarative version.
Task-number: QTCREATORBUG-13038
Change-Id: I5d568abf02d37a584d4d246939736aaec5af5053
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
gcc 4.9 and msvc 2015 choke when creating those from initializer lists.
Change-Id: I85936fe33418d5d9ffeb3c910392ad43fbb9a9bb
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
This allows us to tighten up the public interface of the model.
Change-Id: Iaa0363993de7cd94c3468d2c939198e65746e829
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
Build the tree in only one loop.
clangbackend generates tokens almost as fast as it
did before (about 10% slower in general).
Broken documents are more affected and take much more
time (about 300%) but it's better to have this time spent
on backend side then in QtC itself.
Task-number: QTCREATORBUG-20205
Change-Id: I34c58bca30c4494005a029abd82c7e612ecd6fb9
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
When talking about call stacks call them "caller" and "callee". Call
the invisible root item of the model "rootItem".
Change-Id: I551b23f1491d391145193901d3f3a29ab3942089
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
Qt is unlikely to run there, so that's never triggered.
This also removes the only dependency of the plugin on QtSupport.
Change-Id: Ic22dcca9836e72a0bce46e67d354c4fcff1ac069
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
They aren't part of any public API and the pimpl pattern just gets in
the way here.
Also, initialize members inline where possible, remove redundant
deletes, prefer explicit ownership over parenting, and use
std::unique_ptr for owned objects and QPointer for non-owned QObjects.
Change-Id: Ibe1e1f88d0e38b6ca26544fccb1db6b809d1556b
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
The grouping checkbox enables grouping, but frameworks can have
more grouping modes than the default implementation.
Allow frameworks to provide its own tool tip for the checkbox
on the general settings page.
Change-Id: I0515e542284491a669ef33820104a32074ecf885
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: David Schulz <david.schulz@qt.io>
This adds another grouping mode to the gtest framework based on
gtest filtering. You can now specify a filter that will be used
to group the gtest tree items into matching and non-matching
tests.
Change-Id: Iaf0e55c9e57e2720f4fa84ab4b51ecaeb614df88
Reviewed-by: David Schulz <david.schulz@qt.io>
Add extra data to Keyword tokens.
Does not affect highlighting.
Change-Id: I206499ea35ee4ece5fe442665c904090cf5d90fc
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
There have been requests to easily re-use FakeVim in other projects.
To make that easy, cut the few explicit ties to libUtils in
fakevimhandler.cpp.
Change-Id: I090d50fb1fd4e62d97e9430e94a84d1f267773a4
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
None of the fields are ever unavailable, and they are always shown in
the same order, so we can just use the enums directly instead of a
mapping and an extra whitelist. This enables us to also drop some magic
numbers. In addition, none of the items have children. So we don't need
to expand or collapse them.
Change-Id: Ibf3d1933d1fb703f5d8e74ae5043c3d1db462738
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
This prevents a soft assert from triggering.
Change-Id: Ic2b650f1c850d87492bad8f23d200ede0de35722
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
The type restrictions enforced by ListModel effectively force us to
convert everything to QString before we print it. This is probably not
more efficient than using dynamic types, and it force us to write a lot
of boiler plate code.
Change-Id: I3f61409782a676858874380d3b617ab46b4144ff
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Set the minimum size on first start to something reasonable. Currently
the SettingsDialog starts out tiny on Linux and is unusable till
resized for the first time with empty settings.
Change-Id: I1e0f6dc0bc5a41ba53f655f81181fbba84da23df
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Utils::Icon can theoretically take lists of "plain" pixmaps and compose
them into one icon/pixmap. But neither is that feature used once in Qt
Creator nor does the Icon API really imply that possibility. Therefore,
the functionality can be removed.
As an additional gain, this change lets QIcon/QPixmap handle the loading
of single pixmaps directly with the benefit that QIcon handles different
@?x versions "the Qt way" (returning QIcons with multiple resolutions,
if available).
Change-Id: Id1ef5115c973a99bebd3d433bf88b3ab24be2bbd
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This allows to create a copy of an item. Basically it will
copy its member objects, but it does not copy its children.
Preparation for extending grouping support for GTest.
Change-Id: I75f92be53ff4191cacea2944b31641a9292d1e58
Reviewed-by: David Schulz <david.schulz@qt.io>
There's no easy way to build clang-tidy .dll
and load it dynamically. The same for clazy.
Required for the tools based on clang executable
which want extra diagnostics from clang plugins.
Change-Id: I425d10c1a87e3051a44b9ffd13eb2968110101af
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
We use CXTranslationUnit_KeepGoing, so errors in headers will not lead
to the expensive regeneration of the preamble on each reparse. Adapt the
info bar hint.
Change-Id: I340a1f862473f1b3aec0718bb5a2940fff0a91ed
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
* Remove unneeded #include that might lead to false diagnostics
* Fix typo
Change-Id: I38a3bbe07dbcb33f004c7b7a2a4ca4a90fb77350
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
Not used anymore inside Qt Creator.
If 3rd party code really relies on this function, it can use the
function locally, or, likely switch to the still supported
getObjectByName or getObject.
Change-Id: I041877b3e0630e6b257055dec5e10baf68c83546
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
An option is added to the Options dialog:
* Allow to enable high DPI scaling on Linux
* Allow to disable high DPI scaling on Windows
On macOS+retina, high DPI scaling applied automatically
and we do not show the option on macOS.
I had to duplicate the logic for parsing -settingspath,
because the code has to run before QApplication is created.
Task-number: QTCREATORBUG-20232
Change-Id: I4e94fc54391fe99e30d4778ec2a178529961eed7
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Considering that you can link C libraries into the binary the
hostAbi is a better default than unknown-unknown-unknown-unknown.
Change-Id: I24ced24a2d04cdeb794d32c85a42bb848c7291ed
Reviewed-by: hjk <hjk@qt.io>
When system include paths are added via QMAKE_CXXFLAGS in a .pro file,
in order to use the -isystem parameter, they are not taken into account
by Qt Creator.
This patch adds support for -isystem parameter in QMAKE_CXXFLAGS
parsing.
Change-Id: Ibd25734ec9f3a18258c445804c4a17269d7522ed
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>