Commit Graph

3443 Commits

Author SHA1 Message Date
Tobias Hunger
91f36271e2 CMake: Check build dir first, then source dir in server mode
The build dir might be contained in the source directory, but not
the other way around. So this should be more reliable.

Change-Id: I2459b249fcc1002aa7f7787231b5699444a4c6bd
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-09-08 11:18:24 +00:00
Tobias Hunger
bcad4a1b94 CMake: Add header icon to <Headers> folder
Change-Id: Ibb5a61ab100dbd3b32de385df230dd0862faf670
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-09-08 11:18:17 +00:00
Tobias Hunger
1cf1700d1c Core::FileIconProvider: Add helper method to get a directory icon with overlay
Add a helper method to request a directory icon with an overlay icon for the
project tree.

Change-Id: Idea2ea9ec2ea6790bf8d087723700364fbcafec6
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-09-08 11:18:09 +00:00
Daniel Trevitz
b5379d599f cmake: Crash when removing
Fix nullpointer error. Occurs when no active project exists

Task-number: QTCREATORBUG-18865
Change-Id: I826daac39c38ae1382d23cae20da9085dbcfe298
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2017-09-08 09:28:57 +00:00
Ulf Hermann
47886969cc Drop unused variables and lambda captures
Also, add context to connect() expressions where we are or were
capturing "this".

Change-Id: I6e006ba6f83d532478018550d148ee93eca59605
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: hjk <hjk@qt.io>
2017-09-08 09:06:53 +00:00
Nikolai Kosjar
dce0b1c945 Fix qbs build regarding app_version.h
Change-Id: I2b6bd8bf10221dc3d08ada30701d5b39cc763251
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2017-09-06 09:05:29 +00:00
Tobias Hunger
4ef01c961e app_version.h: Make IDE name configurable
Change-Id: I993f452c8d09cf89e9a2958fc8e36b7d2c17ee6f
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2017-09-05 10:19:48 +00:00
Eike Ziller
ca959d8063 Merge remote-tracking branch 'origin/4.4'
Change-Id: Ic9a1cf3b40b259d9c77f2f542405d189171e0fbf
2017-09-05 12:15:42 +02:00
Ivan Donchevskii
410e31c665 CppTools: set default -std=c++11 for Qt4
qmake from Qt4 does not provide C++ standard and
clang can't properly compile Qt4.8.6 and earlier
with c++1z. Behavior in this commit mimics qmake
from Qt5 which also provides c++11 as a default
standard.

Task-number: QTCREATORBUG-16441
Change-Id: I3d29891d6e47f2367f2b3b2bf4be4d86661924e9
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
2017-09-05 09:37:14 +00:00
Orgad Shaneh
139792ee25 Merge remote-tracking branch 'origin/4.4'
Change-Id: I9ab2c68d2bd07b0dd89051a2f5f6fa51676d8594
2017-08-30 01:24:11 +03:00
Eike Ziller
04da881268 Fix copyright year in plugin info, --version, and macOS info
By using the new QTCREATOR_COPYRIGHT_YEAR variable

Task-number: QTCREATORBUG-18612
Change-Id: I3bcf0319660d210436d3130c00f43325c460a66c
Reviewed-by: Kai Koehne <kai.koehne@qt.io>
2017-08-24 11:23:40 +00:00
Eike Ziller
d8fd5292f1 Merge remote-tracking branch 'origin/4.4'
Conflicts:
	src/tools/clangbackend/ipcsource/clangiasyncjob.cpp
	src/tools/clangbackend/ipcsource/clangjobrequest.cpp
	src/tools/clangbackend/ipcsource/clangjobrequest.h

Change-Id: Ib8602530663813ade418f995dfd2a736908cfe75
2017-08-15 10:07:51 +02:00
Tobias Hunger
68768d8e61 CMake: Get rid of <Source Directory> in server-mode
Change-Id: Ifa4f813d577ab64351d25eb4be1dc7981687da23
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-08-04 13:33:56 +00:00
Tobias Hunger
f119eec4d1 Project: Get rid of builddirectoryChanged signal
Get rid of Project::buildDirectoryChanged signal as well as
Target::buildDirectoryChanged (and the infrastructure).

Change-Id: Ia749e62eec7e182e558d81115dc2a3d07b72b346
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-08-02 11:20:37 +00:00
Tobias Hunger
e52ebbf217 ProjectExplorer: Add subscribeSignal method to targets and projects
Add a subscribeSignal method to targets and projects that will make
sure all signals of all project configurations added during the lifetime
of the project/target will get connected (if the type matches).

Use this to connect to some signal in all BuildConfigurations of
a project and get rid of code that keeps connecting to the current
build configuration.

Use Project::buildEnvironmentChanged as an example and convert its
usages.

Change-Id: I689bcebac4b191bf3f8a18765bf18eaac371c5fe
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-08-02 11:19:28 +00:00
Tobias Hunger
45046f7071 ProjectNodes: Do not derive Project Nodes from QObject
That should save some memory per node, and since creator has a lot of nodes
(e.g. opening the LLVM project adds about 1 000 000 nodes) this should be
noticeable:-)

Calling update inside ProjectTree::currentNode() and rename it to
findCurrentNode() to make sure it is an still existing pointer.
Also, try to reduce the somehow more expensive currentNode() calls
and sprinkle some const around that usage.

Change-Id: I6a7c5db01a71d53d39544d3013cad557d5b96cdc
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2017-08-01 11:24:53 +00:00
Christian Stenger
27cb331b4b AutoTest: Avoid guessing run configuration
Base the selection of the run configuration on the executable
we have gotten already from the BuildTargetInfo and take
deployment information into account.

This also reverts cce1e130 partially and avoids
stuffing unrelated information into the buildsystemtarget.

Change-Id: I3de6e910a5fd1092d428ec4afc33c4ca62daaa25
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2017-07-31 06:11:35 +00:00
Tobias Hunger
366ada9fea RunConfiguration: Centralize enabled state handling
Centralize handling of enabled state of RunConfiguration widgets.

Remove code that does the same thing in all the different run configuration
widgets.

Change-Id: I175d7e19d031bd28a2b19cd825e0b6568da19bc3
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-07-28 17:26:10 +00:00
Tobias Hunger
131c7a1c4e ProjectExplorer: Introduce base class for enabled/disabled project configuration
... and use this as a base for all RunConfigurations.

Clean out code in the individual run configurations dealing with their
enabled/disabled state.

Change-Id: Icc2ea136b056f7aea7ce96480b4402459d7ac0ce
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-07-28 17:26:03 +00:00
Tobias Hunger
f5beeb4c7e ProjectTree: Show parsing state of projects
Show which projects are currently parsing in the project tree.

Change-Id: Ie69907a73ec7c3cf2ef40c37db620a0144178f95
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-07-28 08:33:50 +00:00
Tobias Hunger
5d8b0e6352 Utils: Separate rendering out of ProgressIndicator
I want to reuse the rendering of the progress indicator outside
of a widget.

Change-Id: Icaeeb798578ad838693b68556bf2193c4ba45cfa
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-07-27 09:15:05 +00:00
Tobias Hunger
46f39f5601 CMake: Simplify signaling
Change-Id: I50fdaed0d813b5004c1756e9c5a6efd3ce7a3318
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-07-26 09:29:47 +00:00
Tobias Hunger
09b127f9f1 Project: Move signalling of parsing state into Project
Get rid of duplicated code to do such signaling in derived Project types.

Change-Id: I26914a1d751d72ee65c15a7943e0e7f34978f042
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-07-26 09:29:21 +00:00
Tobias Hunger
22e053b86f CMake: Show executable in Run Configuration
Task-number: QTCREATORBUG-18173
Change-Id: If512991873121151e18b56781729f6b841796549
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-07-25 14:29:58 +00:00
Tobias Hunger
b8e348c4af BuildStep: Do not use QLatin1String/QLatin1Char in BuildSteps
Change-Id: I287831a9151ba867eec443206235c7e07a6176e8
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-07-25 14:29:26 +00:00
Eike Ziller
efa5a7b6d7 Merge remote-tracking branch 'origin/4.4'
Conflicts:
	qtcreator.pri

Change-Id: If5f4a9821a23ac0df81eb84b3980f9cf7ecd70ba
2017-07-25 11:54:44 +02:00
Eike Ziller
41127e0f47 Merge remote-tracking branch 'origin/4.3' into 4.4
Change-Id: I4e14ef31dc6cdcc0606d39be90195e30c1ee9b25
2017-07-25 11:50:43 +02:00
Tobias Hunger
336f54def4 CMake: Fix progress calculation in server-mode
Add unit test to make sure this stays fixed.

Task-number: QTCREATORBUG-18624
Change-Id: Ieeb41982418481223d9ebf8f5c6ec4b3b78bfe00
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2017-07-25 09:35:24 +00:00
Eike Ziller
e8e46ab553 Plugins: Fix that mimetype definition was not valid JSON
JSON officially does not support multiline strings, so we should use
the same mechanism that we already use for the plugin description
(i.e. additionally support arrays of strings which are interpreted
as lines).
This just happens to work because Qt's JSON parser eats it without
choking.

Change-Id: I25ef04600b209775c5a7af916c687fda4a8b1a4d
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2017-07-25 06:00:49 +00:00
Tobias Hunger
d8e0ecb0ab CMake: Extract crossReferences data of targets in server-mode
Use the information to add a filenode below a target that takes
you directly to the target definition.

Change-Id: Ifcb8e2c4f085110033019ea3816c79f5b8630472
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-07-21 12:49:16 +00:00
Nikolai Kosjar
c8a543b949 TextEditor: Make TabSettings accessible for AutoCompleters
Change-Id: I3591ad94ca98979c2d47585d33800a489d87eeda
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
Reviewed-by: David Schulz <david.schulz@qt.io>
2017-07-20 12:35:10 +00:00
Claus Steuer
d105ac8255 CMake: Fix "CMake configuration changed on disk" dialog
The dialog is shown when the cmake configuration changes.
The user can either apply the changes or reject them. To determine the
decision of the user the return value of the dialog is evaluated.
This is wrong because the dialog uses custom buttons (see documentation
of QMessageBox::exec). As a consequence the configuration is never
applied.

Use QMessageBox::clickedButton to determine the user decision.
Additionally change the role of the apply button from AcceptRole to
ApplyRole as this better matches its intention.

Change-Id: I1d2d1fb7186dcc8d789c192c51bb34111eb84ee5
Task-number: QTCREATORBUG-18292
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2017-07-19 04:31:02 +00:00
Claus Steuer
9916c0a759 CMake: Do not check for changes if config was changed by the user
When the cmake configuration changes, BuildDirManager checks whether
the new configuration differs from the current configuration.
In case of differences a dialog is opened and the user must decide if
the changes shall be applied or rejected.
When the user changes the cmake configuration in the projects page the
dialog will open as well. This is unencessary since the user already
decided to apply the changes.

Let BuildDirManager not check for changes if the configuration was
changed by the user via the projects page.

Change-Id: I736ee7f4dee99fe707f2931c73b287231b1daa1d
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2017-07-19 04:30:51 +00:00
Claus Steuer
bf10378992 CMake: Fix cmake config can't be changed by user in tealeaf mode
Changes to the cmake configuration (via projects page) are not applied
in tealeaf mode.
The tealeafreader::parse method passes changed config parameters to
cmake only if the .cpb file does not exist. Since that file always
exists after project initialization the user can't change the cmake
config anymore.

Make tealeaf reader pass changed config parameters to cmake when
a reparse is forced. This restores the behavior from 4.2.2

Change-Id: I31ffad32d176e6290064b55758e4df96d2ffe6bc
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2017-07-19 04:30:38 +00:00
Claus Steuer
13bcdf700d CMake: Set project file location in tealeaf mode
The tealeafreader creates a RawProjectPart for each cmake build target.
However, the location of the CMakeLists.txt is not set/added to
RawProjectPart::projectFile and RawProjectPart::buildSystemTarget.
Both properties are required by the AutoTest plugin to map
run configurations to test configurations.

Make tealeafreader use the same code as the servermodereader
to determine the location of the CMakeLists.txt.

Change-Id: Ia35444799bcd3c46f84ad897044cae56c1aa16ac
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2017-07-19 04:30:19 +00:00
Eike Ziller
d12f5ca4aa Remove unused IAssistProvider::supportsEditor
Change-Id: Ieb2a36bfddbf4f2cade02cbf62b28d112dcb8f10
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
Reviewed-by: David Schulz <david.schulz@qt.io>
2017-07-03 13:23:08 +00:00
Tobias Hunger
543929cd2c CMake: Warn when doing out-of-source builds with in-source configuration
Warn when attempting to do an out-of-source build while an in-source build
is configured. This seems to confuse cmake.

Task-number: QTCREATORBUG-18381
Change-Id: I1abd3be4129ba5af6439dcd60d16d429b93c0382
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-06-28 11:43:25 +00:00
Tobias Hunger
c0c210cbda CMake: Use tr in BuildStep
Its a QObject, no need for QCoreApplication::translate here.

Change-Id: I3375a70fe60b66e13de6b9a99c35c85f82b9151e
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-06-28 11:43:08 +00:00
Orgad Shaneh
5f973de952 Merge remote-tracking branch 'origin/4.3'
Change-Id: Ib5405ed2c3356f65b49fe2f454f8ac2e0de44ef6
2017-06-26 08:24:26 +03:00
Jake Petroules
e3285ce85d Auto-detect CMake in standard paths on Windows and macOS
Change-Id: I8ae765eaed5bc234347e01fe81c208b77c1c32ec
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
2017-06-23 17:41:13 +00:00
Tobias Hunger
64c5f960e8 CMake: Return an empty project tree if parsing failed
This triggers the logic in Project to show the top level project
file in the project tree.

Remove similar logic in CMake.

Change-Id: I2bfdd3f5e3d4126910a3feb480cec5ef689954ed
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: Florian Apolloner <florian@apolloner.eu>
2017-06-23 09:56:07 +00:00
Tobias Hunger
8ede32677e CMake: Fix logic for target filtering
Broken by e42f3db9f0 from today:-/ Sorry.

Change-Id: I4803039939de5aae893a701e2bd6399d3fbfae1f
Reviewed-by: Florian Apolloner <florian@apolloner.eu>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-06-21 13:59:17 +00:00
Tobias Hunger
bee61b0fec CMake: Improve parsing of "CMake Error at" messages
Handle more "CMake error at" messages. This includes the generic
"Parsing failed" message from cmake.

Change-Id: Ie036c606bd7a8ad9cafbc32a34a77f8b95c3defa
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-06-21 08:06:08 +00:00
Tobias Hunger
228dec629f CMake: Remove spurios newlines
Change-Id: I6f381d4df8b9174f74d1b44364e0fbea58c1e6b6
Reviewed-by: Cristian Adam <cristian.adam@gmail.com>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-06-21 08:05:11 +00:00
Tobias Hunger
bc22de5f0a ProjectExplorer: Do not use version manager cache in threads
Do not use VcsManager's cache of version control systems from different
threads.

Iterate over all IVersionControls instead of getting the specific version
control for a directory. This is less exact, but will probably not hurt users.

Task-number: QTCREATORBUG-18258
Change-Id: Iae2be5735a0d7ecc8d774904f6681963fca1d114
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2017-06-20 14:24:02 +00:00
Tobias Hunger
e42f3db9f0 CMake: Avoid duplicate build targets
Make sure that build targets that get added explicitly are never reported
by any of the readers, too. This makes sure entries will not show up twice
in the UI.

Task-number: QTCREATORBUG-18409
Change-Id: Id5039add262211fd87cd5c2884df2af0fcf24577
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-06-20 13:39:40 +00:00
Tobias Hunger
dac2a188de CMake: Make sure no empty strings end up in deployment data
Task-number: QTCREATORBUG-18406
Change-Id: I0b9f8ca76cee8ad2e9ae2ee1f124f16f473033d5
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-06-20 13:39:12 +00:00
Tobias Hunger
a027f1cfce CMake: Only handle strings at start of line
Allow comments at the start of line only (or after only space characters) in
CMakeCache.txt-style lines.

Task-number: QTCREATORBUG-18385
Change-Id: I8b69144ea4f6a667ae1df382c8c4c1e88eca799b
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-06-20 13:38:28 +00:00
Claus Steuer
8542ebcd5d CMake: Do not react to builds in the background
If an error occurs while persisting or updating the cmake state, the
build might continue for a while in the background.

CMakeBuildStep does not disconnect the Error/Run-Trigger when an
error is signaled by the CMakeBuildConfiguration. Instead it reports the
build as finished (with error). The BuildManager then disconnects the
output and runs the next item in the build queue (if any). However the
cmake step might still be alive and emits the dataAvailable signal which
then triggers the build process.

Task-number: QTCREATORBUG-18382
Change-Id: I956133fe8c6f7de58b9f842b231c70d24778b1e0
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-06-20 13:37:58 +00:00
Claus Steuer
523439d71b CMake: The first build of a cmake project always fails in tealeaf mode
The TeaLeafReader tries to parse the CMakeCache.txt before cmake is
executed for the first time.

The error is signaled to the CMakeBuildStep which reports the build as a
failure.

Make TeaLeafReader::takeParsedConfiguration return an empty
CMakeConfig object if the CMakeCache.txt file does not exist instead,
but do not report an error.

Task-number: QTCREATORBUG-18290
Change-Id: Ibfc43858938477ae7479029e8fe6786c77823014
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2017-06-20 13:37:17 +00:00