Commit Graph

44349 Commits

Author SHA1 Message Date
Oswald Buddenhagen
d549e85712 optimize ProString::toInt()/toShort()
QStringRef has respective overloads now.

Change-Id: I9b94c53092ef3fdd62a68f5d3c5bacb98a14d8ec
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
(cherry picked from qtbase/e8bdca74b513b58d3db892d838b3a499365ca7e2)
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2016-08-02 07:56:21 +00:00
Marc Mutz
bf5cc934ea qmake: restore nothrow move special members
The user-defined copy assignment, copy constructor
and dtor inhibit the move special member functions.

Implement them manually.

Change-Id: I0d38d7cf6c9611e13b5b081d734d01d6fe4d5276
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
(cherry picked from qtbase/9c63ad562bf0a44807f41ce49e4fe1b5ff181a63)
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2016-08-02 07:56:15 +00:00
Anton Kudryavtsev
973cabd5c5 qmake: de-duplicate QString::number() calls with same arg
Change-Id: I6e05b9ad3350bd0da5b8a6dc1389ae05315a33df
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
(cherry picked from qtbase/27de4ea4d672d9f1b3a733f803f8605f81311d0a)
Reviewed-by: Anton Kudryavtsev <a.kudryavtsev@netris.ru>
2016-08-02 07:56:03 +00:00
Anton Kudryavtsev
f71bc5ad9e qmake: optimize container usage in the json handling
Iterate only once over QJsonObject, create key list by
existing loop instead of create by QJsonObject::keys(),
which contains internal loop.
In common case if loop's statement is lightweight,
then effect of optimization is significant, and vice versa.
Also make addJsonArray() and addJsonObject() functions
more homogeneous.

Use reserve to optimize memory allocation.

Change-Id: Id122cd1becfd34bb06640876b1c79e1d396d2a6b
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
(cherry picked from qtbase/69ab28031549ff1c9ceecdcb29197900e9bc4328)
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
Reviewed-by: Anton Kudryavtsev <a.kudryavtsev@netris.ru>
2016-08-02 07:55:56 +00:00
Anton Kudryavtsev
3f4e40e3c1 qmake: use reserve to optimize memory allocation
Change-Id: I6ace338512c24fd9dc11c767a28f0a63454076fa
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
(cherry picked from qtbase/1d3503b8f3b49b0f684e1caa504deb0d05f2c60a)
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
Reviewed-by: Anton Kudryavtsev <a.kudryavtsev@netris.ru>
2016-08-02 07:55:45 +00:00
Marc Mutz
d882ae9cb7 qmake: eradicate Q_FOREACH loops [already const]
(or trivially marked const) ... by replacing them
with C++11 range-for loops.

Change-Id: I1522e220a57ecb1c5ee0d4281233b3c3931a2ff8
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
(cherry picked from qtbase/d9229d849f44cf94e4ee19fac390811b474127d2)
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2016-08-02 07:55:37 +00:00
Marc Mutz
1a4f0f1dad qmake: eradicate Q_FOREACH loops [rvalues]
... by replacing them with C++11 range-for loops.

This is the simplest of the patch series: Q_FOREACH took a
copy, so we do, too. Except we don't, since we're just
catching the return value that comes out of the function
(RVO). We can't feed the rvalues into range-for, because
they are non-const and would thus detach.

Change-Id: I5834620bf82f3442da7b2838363d351a0fb960a0
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
(cherry picked from qtbase/8d7e913248aa1cad23447668d98911bba01faf4b)
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2016-08-02 07:55:30 +00:00
Marc Mutz
ccdcbc55ca qmake: don't iterate over .keys()
... iterate over the container itself instead. Avoids
temporary QList creation as well as the lookup cost
when actually calling value(key).

Change-Id: Icac867c30e63863cfa44a382eedd4d6df2070a59
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
(cherry picked from qtbase/c9cb20c01a0f3fa93ff9f79fd7ea3f53939497c4)
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2016-08-02 07:55:26 +00:00
Marc Mutz
5c812f77e2 qmake: replace a Q_FOREACH loop with QList::op+=
Change-Id: Ibaa49f0d6ea5cbcb5d4d305ec9c55286eac5046e
Reviewed-by: Lars Knoll <lars.knoll@theqtcompany.com>
(cherry picked from qtbase/dce2612a7c511e85c5a1b46d1e76b88b56be4c99)
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2016-08-02 07:55:20 +00:00
David Schulz
69088860eb QMake: Add option to set qt.conf file
Change-Id: Ie5db11892ccf2d357773a4db6a0464bf27be9a26
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
(cherry picked from qtbase/dbf1c2eb9f4e1feb24a58699b7b550016802e386)
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2016-08-02 07:55:13 +00:00
Oswald Buddenhagen
fb9e43ba44 terminate when command called by system() got SIGINT or SIGQUIT
sync up with qmake - this doesn't actually do anything in qtc.

Change-Id: I5e5df9f6d136601f0f36a8d645f90a1cab9995ad
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
(cherry picked from qtbase/f8ef7e1d2619e6d394c57561bb275767f0517b24)
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2016-08-02 07:55:06 +00:00
Oswald Buddenhagen
e1cee308a9 fix raw data leak in $$absolute_path()
when the file name is empty, the path will be returned verbatim. this
must be considered when constructing the return value.

Task-number: QTBUG-54550
Change-Id: Ie108ed52275e66a154ef63bd6f7193f55b3e0454
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
(cherry picked from qtbase/3c8134958c66f40bb86588aa91b83bf58b5de0c9)
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2016-08-02 07:54:55 +00:00
Oswald Buddenhagen
bb1ce1cd56 fix calculations of worst-case size requirements for token buffer
Task-nubmer: QTCREATORBUG-16508
Change-Id: I3aa4c736acec44f95a0a33c7baae9276568f684f
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
(cherry picked from qtbase/d459a6b0e0d4f128caceaafe981ecf374bb3e420)
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2016-08-02 07:54:51 +00:00
Oswald Buddenhagen
1a58cd361a fix custom functions inheriting other functions' arguments
Task-number: QTBUG-41830
Change-Id: Iba3eee4975a1ee671b7190e52c0efc9a18147c62
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
(cherry picked from qtbase/dacf3994ba29106132c3a377dba303acdb74daca)
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2016-08-02 07:54:46 +00:00
Oswald Buddenhagen
32f3eccade make error() propagate from requires() and REQUIRES=
that can make sense if a function which determines the availability of
a dependency fails to do so for unexpected reasons.

Change-Id: If6cd113df25aee66830c120a2fab067c822a4543
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
(cherry picked from qtbase/1b4ea11332f74984a62a4cc4597ad49f5b5269dc)
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2016-08-02 07:54:41 +00:00
Oswald Buddenhagen
3fe303ebfe make error() propagate from custom replace functions
it didn't, which is rather unexpected.

Change-Id: I8cdb7b1490a8c2207809812b93cc65fbe23a1b98
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
(cherry picked from qtbase/339b9706ccbed4063a92337c9994731793558b0a)
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2016-08-02 07:54:36 +00:00
Oswald Buddenhagen
b4ac7f6d2c fix error() not propagating through if()
if() would simply "downgrade" a fatal error to a false condition, which
is certainly not expected.

Change-Id: Ie9c54f2bddf588856498bf795007b341b7c9363a
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
(cherry picked from qtbase/b27d4835c2ae0d8767ca914acb72a4bdcea6fc85)
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2016-08-02 07:54:30 +00:00
Oswald Buddenhagen
fcbaf24181 nuke dead expandVariableReferences() overload prototype
Change-Id: I0c6fceac0b984e4613932b8507a632dd83d0e79b
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
(cherry picked from qtbase/d0055e9fd7825f9033b26f9aa421e218e44dadde)
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2016-08-02 07:54:23 +00:00
Mat Sutcliffe
27853f8234 qmake: Fix missing newlines in generated vcxproj files
Sync up with qmake - this doesn't actually do anything in qtc.

Change-Id: I792599a4cd7822f109fa921f02207fb1b144b1d1
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
(cherry picked from qtbase/23bce6b169ca14ff72b672965ed5f89424c2d8fe)
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2016-08-02 07:54:18 +00:00
Marc Mutz
bbb353b113 qmake: fix UB in QMakeParser::putHashStr()
Found by UBSan:

  qmake/library/qmakeparser.cpp:278:33: runtime error: null pointer passed as argument 2, which is declared to never be null

Guard the call.

Change-Id: I99341ab439a511f366dae9344ddcc8727c33b9b6
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
(cherry picked from qtbase/1fd0d57ce3da83631423d17faadf97133f5c7835)
Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2016-08-02 07:54:13 +00:00
Anton Kudryavtsev
73fead33dc QMake: replace QStringLiteral with QLatin1String
... in string comparisons. It's more efficient.

Change-Id: I5d54ab7777a0838455eaaac671e735eb37bfe243
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
(cherry picked from qtbase/f384c3097911c523e67620b77b1086e4788cd209)
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
Reviewed-by: Anton Kudryavtsev <a.kudryavtsev@netris.ru>
2016-08-02 07:54:05 +00:00
Oswald Buddenhagen
c9a7a79970 make write_file() capable of making files (not) executable
Change-Id: I9ca96bc3408160261781697a3471c1f446c86c3a
Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
(cherry picked from qtbase/57ca8d2698f1eaf30f1110ba47445c04d2bcd0f7)
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2016-08-02 07:54:01 +00:00
David Schulz
db0c289f02 Editor: Add action to select word under cursor
Task-number: QTCREATORBUG-641
Change-Id: I83e2705c7250646b13cd3ec52779a1496e6a472c
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-08-02 07:29:15 +00:00
Nazar Gerasymchuk
9611294dd2 Core: Fix tab order in several UI forms
For unknown reasons tab order in listed UI files was set incorrectly and
behave unexpectedly. Now tab order behave naturally.

Changes made for next objects:
Core::Internal::ExternalToolConfig (externaltoolconfig.ui),
In QtCreator: Tools -> Options -> Environment -> External Tools tab.

Core::Internal::GeneralSettings (generalsettings.ui),
In QtCreator: Tools -> Options -> Environment -> Interface tab

Core::Internal::MimeTypeMagicDialog (mimetypemagicdialog.ui),
In QtCreator: Tools -> Options -> Environment -> MIME Types tab, choose
any MIME type in "MIME Type" column,

Core::Internal::MimeTypeSettingsPage (mimetypesettingspage.ui), In
QtCreator: Tools -> Options -> Environment -> MIME Types tab

Core::Internal::SystemSettings (systemsettings.ui),
In QtCreator: Tools -> Options -> Environment -> System tab

Change-Id: I04aefcb5ad75ef8b23fa1de324d986b45d5347bd
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-08-01 17:05:24 +00:00
David Schulz
f6f3e02e4a CppEditor: Adjust completer tests to latest changes
Change-Id: I79cefaab88340e37161a31b1f356901dde947a0c
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-08-01 13:29:57 +00:00
Tim Jenssen
bb55a510cf QmlDesigner: make gotoCodeClicked more safer
Change-Id: I2861cf0e1f1c173b548e586a4fa43e8bc9f9c4da
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-08-01 13:10:50 +00:00
hjk
ceb883e56f Debugger: Add new build path do automatic source mappings
Change-Id: Ibdd67b91b9b99eb8188b562692afe7855931d6f6
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-08-01 11:42:39 +00:00
hjk
33b73c5cc4 Debugger: Remove unused DebuggerKitConfigWidget::indexOf()
Change-Id: I8614aa692affa17c5fac754b1c4b247105dc5540
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-08-01 10:45:40 +00:00
hjk
cc873518c0 TreeModel: Make TreeItem::m_children private
Change-Id: Ica8ee995fb265d1108fced1e1c1a4c9234783c2b
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-08-01 08:48:12 +00:00
Christian Stenger
89ede98904 Tests: Only disable crashhandler on UNIX
On Windows disabling the crashhandler results in re-enabling the
Windows internal error reporting which causes trouble as well, so
limit disabling of crashhandler to Linux/OSX.

This patch more or less amends 80352d703c.

Change-Id: I0588cd22c2ff894e07378524baf03794963c92a1
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
2016-08-01 08:36:31 +00:00
Ulf Hermann
6c2036d900 Android: Run stop() asynchronously
Running SynchronousProcess (for adb) on the GUI thread is dangerous as
it might process unrelated events without returning, breaking
assumptions in other parts of Qt Creator. Rather run those things on a
worker thread, with a separate event loop, like we already do it when
starting processes.

Furthermore, returning, from start() or stop() while a thread is
running that accesses internals of AndroidRunner is also dangerous,
because most methods of AndroidRunner are not protected by relevant
mutexes and especially the destructor might get invoked while the
worker thread is still runnig. Thus, wait for the worker threads to
finish, in start() and stop().

This is a crutch, of course, as with proper locking we could keep the
GUI thread responsive while the adb commands are running, but just
serializing the execution reduces the risk of further breakage for now.

Change-Id: Ife92dc19aa8111374413590c3156027ba759746f
Task-number: QTCREATORBUG-16667
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2016-08-01 08:09:26 +00:00
Ulf Hermann
cbd738ab90 Android: Don't use blocking queued connections for running ps
If ps is run from a different thread than the GUI thread, then we are
obviously not dealing with the "checkPID" function that's running every
second. We don't need to be overly prudent about starting another
process then. On the other hand, the blocking queued connection relies
on the ps shell not getting closed from a different thread in between
and it is generally a risk for creating dead locks.

Change-Id: Ief49fb18cc3199dc345c4d9ca0ee24b66d33343c
Reviewed-by: BogDan Vatra <bogdan@kdab.com>
2016-08-01 08:09:21 +00:00
hjk
08366cdf6e TreeModel: Remove uses of Q_DECL_EQ_DELETE
Use ' = delete' instead like everywhere else.

Change-Id: I63d0fd1adbc336f4b390b7c68d3f945e4045052c
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-08-01 07:31:42 +00:00
hjk
c3d3589c0f TreeModel: Remove now-unused TreeItem::setFlags() and m_flags
Change-Id: I1bae545b96c274a74cd6491b33ba138be489086f
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-08-01 07:23:37 +00:00
Christian Kandeler
f634141010 Update qbs submodule
To HEAD of 1.6 branch.

Change-Id: Ia7c21675bbdde16e4d1131b98d02b05d8f5b2340
Reviewed-by: Jake Petroules <jake.petroules@qt.io>
2016-08-01 07:22:54 +00:00
Christian Stenger
18ac6b8be1 AutoTest: Minor fix for initial test scan
If parsing the project is not finished we get an empty list of
files to be scanned.
Just trigger another full scan for such a case.

Change-Id: I84b275f76bc98c8f0ef544fc27d30ebd6f8b43d1
Reviewed-by: Oliver Wolff <oliver.wolff@qt.io>
2016-08-01 07:21:48 +00:00
Orgad Shaneh
b57faed16d Merge "Merge remote-tracking branch 'origin/4.1'" 2016-07-29 14:16:19 +00:00
hjk
1b4301e9fa Locator: Remove one use of TreeItem::setFlags
Change-Id: Ie42409a065e30ca4af43694256cecbe75d0753e6
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-07-29 13:15:11 +00:00
hjk
1acfaa81ab VariableChooser: Remove one use of TreeItem::setFlags
One step towards the removal of the TreeItem::m_flags member
that's unused in most instances.

Instead of introducing another conversion, use a QByteArray
to store the variable name.

Change-Id: Icbe591988178faaf77db558d968843d8eb2b0160
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-07-29 13:14:59 +00:00
hjk
5211e32b82 Debugger: Remove one use of TreeItem::setFlags
One step towards the removal of the TreeItem::m_flags member
that's unused in most instances.

Change-Id: I0cdc3d1e8a47c3925fb54c129b724ded8721577b
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-07-29 13:14:53 +00:00
Orgad Shaneh
35d7352b3e Merge remote-tracking branch 'origin/4.1'
Change-Id: Ie96fa53a88bcd06fa688a579c1d84aaf6f5e905f
2016-07-29 16:13:18 +03:00
hjk
80b402403a CppEditor: Rework CppIncludeHierarchy model
Use a Utils::TreeModel as base for the model. Avoid excessive
expansion of items during incremental search.

Change-Id: Ic2f51c7e467ea127ccf69ef7d122cec4a63be2f5
Task-number: QTCREATORBUG-15834
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
2016-07-29 13:13:02 +00:00
Thomas Hartmann
5c5197d19d QmlDesigner: Adding debugging operator to BindingProperty
This is required to output the expression in the DebugView.

Change-Id: I3ce0bf4a916e30e8c86c224e305fa1c4af337489
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-07-29 12:11:47 +00:00
Thomas Hartmann
7c3f61f819 QmlDesigner: Fix regular expression
We have to use a non capturing group for the optional 'Id'.

Change-Id: I59431d78908a16f571febdf14c57bfe079ca6817
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-07-29 12:11:38 +00:00
Nikolai Kosjar
ad49e64ff0 CppTools: Cancel parsing if editor is closed
The m_parserFuture.cancel() in ~BuiltinEditorDocumentProcessor() did not
cancel anything. Thus, closing a document while the parser was running
led to a blocking UI thread.

Now it cancels at the next include directive it encounters.

Change-Id: I092fddbbd747e0bc95265b6e9b4fcc26b3f76cb3
Reviewed-by: Friedemann Kleint <Friedemann.Kleint@qt.io>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-07-29 12:03:07 +00:00
Nazar Gerasymchuk
c8020af997 ProjectExplorer: Fix tab order in projectwizardpage.ui
For unknown reasons tab order in projectwizardpage.ui was set
incorrectly and behave unexpectedly. Now tab order behave naturally.

Change-Id: I56dd70234b6ebd734b5893f50d4f7255c23639d8
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-07-29 12:01:34 +00:00
Nazar Gerasymchuk
09cbe5621d ProjectExplorer: Fix tab order in CustomParserConfigDialog
For unknown reasons tab order in customparserconfigdialog.ui
was set incorrectly and behave unexpectedly. Now tab order
behave naturally.

Change-Id: Ife117dd0dfd8c583e4bfe6b1191bdcae65bad05b
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-07-29 12:01:25 +00:00
Tim Jenssen
a13875daf5 QmlDesigner: disable validator for source property column
The source column can have contain real code so disable the
validator and trimm the expression because it is compared
with the  already trimmed source in the rewriter.

Change-Id: I0cc684f8446799e3bd4ee77a8a9bb8077164f3b9
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@theqtcompany.com>
2016-07-29 09:52:14 +00:00
Tim Jenssen
1d61239bb9 QmlDesigner: readd the flag to fix a crash
Also this is necessary to be at the right middle
position of QtCreator.

Change-Id: I691002b7ed5a29a1ea2094f62aba121b2a2e458e
Task-number: QTCREATORBUG-16673
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@theqtcompany.com>
2016-07-29 08:25:11 +00:00
Thomas Hartmann
bc6faeade2 QmlDesigner: Use proper icons for Controls 1.0
* Using proper icons
* Removing unused images

Change-Id: I0b4ba6d33f14950fef28f9546aa39b7f5d5a38dd
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
2016-07-28 15:30:52 +00:00