It has been around for a long time now, many e.g. windows specific
issues have been fixed, and we concentrate our development effort on it.
Many bugs in the built-in model stay unfixed, and we'll definitely not
support modern C++ there, which leads to many bug reports that are
closed with "works in clang code model".
Let's switch that around.
Task-number: QTCREATORBUG-19297
Change-Id: I59ec9621ad76590db8ec33f9658af6d103c9da93
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Ivan Donchevskii <ivan.donchevskii@qt.io>
This feature in question is the availability of the "Run" button in the
context menu of certain project nodes in the project tree to run
something presumably related to/build from that (sub)project.
Previously, the decision was made for certain qmake based projects
(those targeting Desktop, iOS and VxWorks) by some indirection
through the corresponding RunConfigurationFactories.
The patch lets the RunConfigurations decide themselves directly
and removes the indirection, potentially opening the feature for
other qmake based RCs, as well as other combinations (e.g.
PythonRunConfiguration could be associated with its .py file,
without the need to have a dummy project)
Change-Id: Ic489bd1dfa25fcd9102ffa4fa30125565dd2e40e
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
The style can set the scroll bar to scroll by item, which breaks
the automatic scrolling that adapts for size changes of the bread crumbs.
Force the tree view to allow pixel-exact scrolling.
Task-number: QTCREATORBUG-19800
Change-Id: If61640a1b6e3b4a777269fb129bdc2689bad19c2
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Creator only selects the filename now, the
extension will be left unchanged by default.
Task-number: QTCREATORBUG-20057
Change-Id: I66bbbb5b95e1d487c2087efa596a87a240721e44
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Fix take unit tests to actually test the correct template instance,
add more unit tests for takeDefault.
Change-Id: I51f5b17b6478a8c1388a91840edfb9c702697b28
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
It was made smaller for the tutorials to fit the new aspect ratio for
their images, but we may not do that for the examples.
Fixup for 7d83472906
Task-number: QTCREATORBUG-20078
Change-Id: I556536a7e299e8f675332cd7450ece5fca6fab0a
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Following the RunConfigurationFactory lead this replaces
f = Foo::find(); f->do() by static Foo::do() stanzas.
Also protect DeployConfigurationFactory::canCreate()
Change-Id: I80fa491f836c3b9186f6ce6dccac4d52d4b80fc8
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
Also fix the logic that empty means that it should use the
default fallback puppet.
Task-number: QTCREATORBUG-19511
Change-Id: Ia36907523281386a1ed56362a76e37aaa9ee16b2
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Relying on the index of a detail entry in the children array is
dangerous as the repeater may create the children in any order. Rather,
use the isLabel property to find out if an item is a label.
Also, recognize that the drag handle sits in the outer margin.
Therefore, as the minimumWidth includes margins, we have to subtract one
margin in order to get the x value of the handle.
Task-number: QTCREATORBUG-20012
Change-Id: I828b116c2c52d5aa7f8e3e726f59e3fa9f9095ec
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
The action is for active project. The button should be under active
project.
Change-Id: Ie0029bff02f58dbd5cb4c2a17bc086c168a522dc
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
Amends 7d83472906
Used the HighDpi loader in the wrong place.
Change-Id: I5bb7328167c0a9da811db92102feea67ee97c6c4
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
For Q_OS_WIN, a path is only truly absolute if it includes a drive
letter; merely starting with a slash is not enough. (We can't support
UNC paths, so don't even try: qmake runs various commands in the
source directory using CMD.exe, which doesn't support UNC as PWD.)
This requires, when resolving a path relative to a root, transcribing
the root's drive to such not-quite-absolute paths.
Changed QMakeGlobals, $$absolute_path() and $$relative_path() to now
use IoUtils::resolvePath() rather than delegating to QDir's absolute
path method, since that doesn't correctly recognize the need for a
drive letter (and qmake did run into problems with some paths, from
splitPathList and a failing test, as a result).
Change-Id: I2bfc13c1bfbe1ae09997274622ea55cb3de31b43
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
(cherry picked from qtbase/e86f3c018833141776db2d15772ba53995656eac)
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
the replacement value may well constitute the whole output string - this
is in fact common, given this rather typical usage pattern:
BAR = $$replace(FOO, -flag, -otherflag)
this must be considered when constructing the return value.
compare e1cee308a.
as of now, this is irrelevant, as QString::replace(QRegExp, QString) will
always memcpy the replacement into a detached copy of the target, but one
never knows.
Change-Id: Ia1f271f45023746040fc28ce6d88a6609e05e5c2
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
(cherry picked from qtbase/e8b9a17a3bd770f6bf1bc8f4e0586565acf425e2)
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
technically, we should not rely on the i/o classes not storing the
strings beyond the instantiated object's life time.
Change-Id: I0990769b3cf86860184869036c096c531160e9be
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
(cherry picked from qtbase/702be65532263bd52ad0b67235c112083120699e)
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
property values are de-facto guaranteed to be backed by full QStrings,
so there is nothing to be gained from using the raw data optimization,
while doing so risks raw data leaks.
Change-Id: I3d43da9aaadd4d5811c4b1a9d7ac734049da423c
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
(cherry picked from qtbase/18533ae2a72aba9ad8c0f1862e1e6ace50655864)
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
we have all necessary overloads now.
Change-Id: Ic4472eba15d4234e968fcb9443d0f79011aa43fd
(cherry picked from qtbase/f137957e0887a9321b69b9ba83ed6ccaedee57bb)
(cherry picked from qtbase/14505bbfea220a39c2158480db8ba788707ff332)
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
the m_tmp array is a member, so the index toggle for accessing it also
needs to be one - otherwise, odd iteration counts will defeat the
mechanism.
Change-Id: If7a800ed5a4b4168625daf1ebbd5d2d164569d8e
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
(cherry picked from qtbase/ccb8afcda752093bfb6bc32f560131a91bd826a1)
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
... in $$basename(), $$dirname(), and contains(). the latter case is
marginal, as it only applies to mutuals which are regexes, which i don't
remember ever seeing used.
QRegExp saves a copy of the matched string, so it's necessary to
alternate between two temporaries to avoid detaching. we already
did that in most places.
Change-Id: I97b8294585c17c76d1756f83971f42cb88353af0
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
(cherry picked from qtbase/5131bb9bed3af7a2ecfce27af3940ff11ed219c2)
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
in most cases, the main advantage is not using toQString(m_tmp), which
reduces the possibility of raw data leaks. in cases where we used
toQString() without temporary, this is a slight optimization.
Change-Id: Ib343acffd383aa2c4fefab75fb52762fb534dfc6
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
(cherry picked from qtbase/eb0ba90b0af9fa7d5b70c74140f64295f2d05c18)
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
The strings remember in which file they were created/assigned.
However, this used a non-counting reference to a ProFile, which could
become dangling. If a subsequent ProFile re-used the exact same address,
a string's source would be mis-identified, which would be fatal in
conjunction with discard_from().
Since we actually need only a unique id for comparison, let's use an
integer for that.
comment on cherry-pick: this is actually a lot more than a cherry-pick,
because the file ids need to be aware of the dual VFS which was
concurrently introduced on the qtc side.
Started-by: Simon Hausmann <simon.hausmann@qt.io>
Change-Id: I395153afaf7c835d0119690ee7f4b915e6f90d4a
(cherry picked from qtbase/190aa94be7f5e146bef44862b974d733755cec85)
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
saves some more cheap but pointless conversions to QString.
this makes the introduction of the ProStringList::contains(QStringRef)
overload necessary.
Change-Id: Ic61993bd9a4b28fbba1b8e346345fd5f5636c6f0
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
(cherry picked from qtbase/11d957d04381c7162dd5621c61f9963580ec7041)
(cherry picked from qtbase/9f98935d33cc15c938be2b9295ba2fbe4edb0ee0)
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
in particular, -before (just for symmetry, as it's the default), -early
(the actual objective), and -late (for symmetry again).
Change-Id: I274303582a348b052c3e5106ff360ab4fd7d4ee2
(cherry picked from qtbase/4adc1012e19f5e12ab2fb96effc9ea88d2a05eda)
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
the arguments after '--' are by definition meant only for the top-level
project, as that's where configure is invoked from. passing them to
sub-projects just adds noise to the make output and misleads users.
note that this specifically does not support qmake -r, which will break
if the subprojects rely on the arguments being absent. this isn't a
problem, because the qt build doesn't support qmake -r anyway.
note on cherry-picking: qt creator parses projects like qmake -r would,
so this is hypothetically more of a problem here. we presume that nobody
would actually include configure arguments in their build configuration,
which may or may not be true ...
Change-Id: I7ecff6212ce3137526005fc324a4a7ae45e3345e
(cherry picked from qtbase/34cc41d8a17e6e30f01f22c5d382c28d49ae37e1)
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>