This allows us to sort the locals by name immediately when the action
is triggered.
Task-number: QTCREATORBUG-16645
Change-Id: Ifd24f49e66523af5e988065c9a33aae00e7fb290
Reviewed-by: hjk <hjk@qt.io>
This has the effect of sorting the members immediately, rather than
the next time something else changes.
Change-Id: I3f3cb261f1fb69b6b36914b811a431b045bb49ae
Task-number: QTCREATORBUG-16645
Reviewed-by: hjk <hjk@qt.io>
Under the assumption that the QNX debug support should work similar
to the RemoteLinux debug support we have to:
a, use the Runnable provided with the run control
b, not recycle the arguments from the run control start parameters
c, prepend a new set of QML debugger arguments when QML debugging
There seems to be some mechanism that allows us to do C++ debugging
by simply starting a process "pdebug <n>" for some port number <n> on
the target. We don't touch this here.
Task-number: QTCREATORBUG-17208
Change-Id: I0f4541968e1d20940617e8ff6d16a8ad86ea22c9
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Rafael Roquetto <rafael.roquetto@kdab.com>
Make sure the combobox values are set to null. Otherwise the ComboBoxItem
might try to read from that value while it is being removed from the model.
Task-number: QTCREATORBUG-17223
Change-Id: I6588aaddf39736846878593a8e6844dab96de408
Reviewed-by: hjk <hjk@qt.io>
Change the UI text to use the name of the Structure view
instead of "Browser", which is a term not used in the documentation
or the model editor UI.
Change-Id: Id5654bc7f5c4a9c7147315333f60c88a9e667bbc
Reviewed-by: Jochen Becher <jochen_becher@gmx.de>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
A filled circle can be used for other icons as-well.
Change-Id: Ifed0dda111ccb92fa5bb44d63f1c23af1137121a
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
For the MSVC compiler we parse the environment variables from the
output of a 'set' call. So far we didn't enforce any encoding, which
means that the current code page is used. Then we tried to parse this
with QTextCodec::codecForLocale, which is not necessarily the same.
Avoid this by forcing UTF-8 as output (code page 65001),
and parse as UTF-8.
Task-number: QTCREATORBUG-17219
Change-Id: Ia1a6fa56e5c3e1599bf545795c655bf9376bae5c
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
The invalid port is -1, and Utils::Port does not need an explicit
initialization.
Change-Id: Id545fb98677d26541aa89611ddd50b735e08530a
Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
Reviewed-by: hjk <hjk@qt.io>
The bundle.infoPlistFile property does not exist anymore. A file tag
based approach is being used these days.
Change-Id: I5b73facb5397a28c0c40f1745c82225c24ffba9d
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
don't fail to make the build pass evaluator cumulative as well.
Task-number: QTCREATORBUG-17214
Change-Id: I217578b7d29d0dcf9ef63c954ec403412812c70c
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This reverts commit cbdf673696.
It introduce a dependency to utils for a couple of lines,
so it is not worth.
Change-Id: I2f53ff3f63322719de6faed7f55c66282d1044e8
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
- Changing the theme settings and reopening options page switched back
to current theme
- When passing a theme on the command line, closing the options dialog
would state that the theme change takes effect after restart, even if
theme was not changed
Fix these issues by showing the current theme setting in the options
page, ignoring the currently active theme, and showing a label telling
the currently active theme instead.
Task-number: QTCREATORBUG-15852
Change-Id: I343fc729c33f17fcb15a8e9facd7a49076d0e0d1
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Split up getting the data from the arguments list and actually applying
the values, and move the details of theme creation and application to
better places.
This gets rid of ugly control flow details like that
CorePlugin::initialize created the action manager before calling
parseArguments, because that is needed to apply the presentation mode
argument setting, and parseArguments created the main window because
that needs to be created _after_ setting the theme (which can be
overridden by command line argument), but _before_ applying the override
color argument setting.
Change-Id: I9c99305b6efbfcc4b37cea9e5c70d816a621963b
Reviewed-by: David Schulz <david.schulz@qt.io>
...by not passing in IDE_LIBEXEC_PATH.
While at it, fix the call to CrashHandlerSetup.
Change-Id: Ie4018bf58f286c121bb85951546c4fe4d31e9959
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
The appman plugin is supposed to add device support for the Qt
Application Manager. This is something which the current state of the
appman plugin does not provide, and which it will most likely do before
the release of Qt Creator 4.2.
Change-Id: I2e73e7270488097eca8cfaac2ba6ff051451f9a7
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Currently this function is just used for debugging purposes.
Change-Id: I4058f417235050b5a93e0437f2752921bfecc405
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
don't resolve the source files once for deployment and once for the
project tree.
Change-Id: Ifddf8fc7883bf025d3640de0d6676b5930991088
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
instead of resolving all sources both in the exact and the cumulative
pass and de-duplicating the joined list in the end, resolve only these
files from the cumulative pass which are unique to it to start with.
Change-Id: Ie3327799ecd94f8710f8b99bcc46998790ba2c74
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
rather than resolving them once in bulk (for the code model) and once
per pri file (for the project view), resolve them only in bulk, but
"tag" them. then do a cheap filtering pass for the project view.
as a side effect, this fixes the problem that sources that are listed by
a file that is not shown in the project tree (as is the case for qrc
files synthesized by resources.prf) would not be shown at all. instead,
these sources now appear belonging directly to the pro file.
Task-number: QTCREATORBUG-3670
Change-Id: I1a1756d95bd90db4da1274eebcc4dad2a854f43d
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
so far, we used a build pass only to retrieve accurate target
information from the exact evaluator. however, this is insufficient for
at least two reasons:
- the recently introduced postprocessing of RESOURCES in resources.prf
is executed only during build passes
- some relevant variables are build pass specific, for example
INCLUDEPATH when it includes RCC_DIR
an additional upside is that using the build pass' values is consistent
with qmake's vcxproj generation mode.
on the downside, the extra cumulative build pass adds 33% of pure
project evaluation time. however, this isn't as bad, as the pro files
are already loaded and parsed, and the expensive source file resolution
moves completely to the build pass.
the alternative of defeating the build pass logic (as lupdate does) is
not feasible, as we rely on accurate target information from an actual
build pass for the run configurations.
note that this all applies only to windows (and macos when explicitly
configured with -debug-and-release).
Task-number: QTCREATORBUG-16019
Change-Id: I8a97856b3b738aa1a581d24ba24bb3e7199d8078
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
consistently with Xcode, qmake nowadays knows only one SOURCES list,
which is automatically classified by extension.
to replicate that, we actually copy the objective_c.prf file from qt
5.6.3 and use it to override whatever comes with qt, so we can treat all
qt versions uniformly.
also, the code model throws away the information which files were listed
as sources and which as headers. this is technically incorrect, as a
source may be only included rather than compiled, but there is no point
in extracting information which is not used.
conclusion: lump all c-like sources into one variable as far as project
processing is concerned.
and as far as configuration goes, our code model doesn't differentiate
anyway, so the duplicated setup paths can be eliminated as well.
Change-Id: I24b1bc056f8d9eb579c9378817f602912ab49971
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
each such object has exactly one associated ProFile if it shall result
in a pri node, and no ProFile if it shall result in a pro node. there is
no point in dealing with lists at various levels.
Change-Id: I930fd8c14fcd6336cd297bacefdd0036f556741b
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
the cumulative evaluation has a good chance to make a mess of the
virtual file contents created by the exact parsing, so better contain it
to its own namespace.
the ProFile cache also needs to keep the files separate. this
specifically addresses the side issue discussed in QTCREATORBUG-10779.
it also fixes attempts to deploy the wrong build when the variant is
selected through a cache file, as in QTCREATORBUG-15815.
in the project explorer, we don't track from which evaluation pass
particular files came from, so we try the cumulative first to get the
most contents, and fall back to the exact one if the former file is
empty (or does not exist at all).
Task-number: QTCREATORBUG-15815
Change-Id: I2c1eb16c97526fa275a1c6a2eae9266d385859ac
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
ProFileEvaluator::absoluteFileValues() now returns only files, which
allows us to skip the subsequent QFileInfo::isFile() calls at some
call sites.
as a side effect, IoUtils::fileType() does not see anything except
regular files and directories any more. that's not expected to be a
problem, given the function's scope.
Change-Id: I53063ad8cacb3afe5cc1baf6d6d5feba3465e74f
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
when the QFile object is already constructed, querying whether the file
exists is actually cheap, so do it right away instead of later on
demand. that makes the calling code a bit cleaner.
fwiw, that we need to explicitly query the file's existence at all is a
result of QFile's completely useless error "codes" (which merely say
which function failed, as if the caller would not know).
Change-Id: Ifec39d05b1713d8128046f679287e510f10e45dc
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
qmake doesn't do anything with sysroots at this level, so this code
plain does not belong here.
sysrootification is used when resolving INCLUDEPATH, which is emulating
compiler behavior. this is done by higher-level code.
Task-number: QTCREATORBUG-11944
Change-Id: Ia25f0b6ef713e9809d974e3f3e49ba308b8c933f
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
... and use it for PRECOMPILED_HEADER, INCLUDEPATH, and install target
collection, instead of abusing ProFileReader::absoluteFileValues().
specifically, this falls back to a location in the build directory when
the path is relative and the file cannot be found. in qmake, this
somewhat weird behavior ensures that chaining extra compilers actually
works (and also ensures a lot of frustration with non-clean source dirs
...).
this also fixes INSTALLS with .CONFIG no_check_exists.
Task-number: QTCREATORBUG-14848
Change-Id: Iaf9483c0c4586c464bd10a2aea7cbac7e0df1ec5
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This patch adds a slight fill color, which makes these two icons more
conform to the other icons in the menu.
Change-Id: If7ae5a5c4c642c28a33f03f1b45b4bdaa61688da
Reviewed-by: hjk <hjk@qt.io>
The size of the small string optimization was hard coded. For some use
cases you want a bigger or smaller size. It is now configurable by a
template parameter. For that we changed the name to BasicSmallString and
added an alias of BasicSmallString<31> to SmallString.
Change-Id: I844b4420d260290307a6018bb6cc4cf3ba7bd449
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Left brace wasn't handled in the expression_maybe_continuation state
of qml/js code formatter. It led to expression_or_objectdefinition
could not be continued on a new line.
Task-number: QTCREATORBUG-12326
Change-Id: Id8fcaa586000008fce72c7c0c03ed1739b1c7aa1
Reviewed-by: Marco Benelli <marco.benelli@qt.io>
Normal contructors are called before templated constructors. So it would
call SmallString(std::string("foo)) for SmallString("foo"). To prevent that
we change it to a template constructor.
Change-Id: Ibd249cedd638cbc2e6755c988be41fa5bb6e1ff6
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
If we have a pure QML plugin with a qmldir file,
then the code model ends up without a version number.
This is bad, since the version is required for graphical tooling.
What we can do is to take the highest version number from all
components that are defined in the plugin.
Change-Id: Idb4206201efac91250100740e287676031d3016a
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>