It makes no sense to return a QColor as the only things we are using
are the red, green, and blue components. Furthermore, colorFromHue()
can only generate 360 different colors which we can easily cache
instead of recalculating them on each request.
This significantly reduces the time it takes to update the timeline
render nodes.
Change-Id: I7961014364a1bec5b089285148b2e6c141a6dc7d
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This significantly reduces the number of signals necessary when
loading traces. The overhead of queueing those signals across threads
was responsible for up to 80% of the time required to load a trace.
Change-Id: I461a2ef9944b0be102a29f8ed6b2b3f2f59f3c0f
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
The compiler does not necessarily get it automatically.
Change-Id: Id37c20960a66775e34b80cbbe666e22505c5b347
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Correctly signal when parsing of a qmake project starts and stops via
the build- and runconfigurations.
The buildconfigurations are in the picture since they disable the run buttons
when the user has selected to build before deploy and deploy before run.
Task-number: QTCREATORBUG-16172
Task-number: QTCREATORBUG-15583
Change-Id: I44b5f5ce8e145cb93dc0022f66e1edcc202875e4
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
Symbolic link conflict is printed in 2 phases: First " {remote}", and
then "a symbolic link -> 'foo.cpp'".
This happens because this message involves an additional cat process:
elif is_symlink "$mode"
then
echo "a symbolic link -> '$(cat "$file")'"
For local/remote line, wait for a full line before parsing.
Change-Id: I641cde12aa44dee2f7dff8fdae70da0c443e55d3
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
If you have a file with the same name as the current branch (in the
repo's root), Push to Gerrit opens with an empty list.
Change-Id: I607c67b1d00da83d4551d3f3f75e5a91478294d5
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
QML can directly mirror this into a JavaScript object, so there is no
need to manually copy the values into a different container. Also,
QQmlPropertyMap is very expensive as it will listen to changes to any
value in the map. We never use this. It would be entirely enough to
update the whole map at once if we ever want to update the theme at
runtime.
Change-Id: Ie2b549e9af51d620801808c87d6f659cc7a06c04
Reviewed-by: Thomas Hartmann <Thomas.Hartmann@theqtcompany.com>
Do not run cmake on file changes if that was disabled in the CMakeTool.
Task-number: QTCREATORBUG-17232
Change-Id: I478161aebe353ddc47e24dd8a7f2cec54822e7d0
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
First thread using the helper function initialized the list
object another thread accesses it afterwards. This could be
problematic under some circumstances.
Issue was detected using Helgrind.
Change-Id: I1520b1f7364742cb02630af1fd9d98960dec1f41
Reviewed-by: David Schulz <david.schulz@qt.io>
QQT_INSTALL_LIBS does not work as intended. That was not obvious since
Qt Creatod adapts the PATH, which had a similar effect, but breaks when
trying to build the project outside Qt Creator.
Change-Id: I36c7caf69a157ae0d4e3dc500265042fd5964681
Reviewed-by: Florian Apolloner <florian@apolloner.eu>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Beautifier makes heavy use of mime types which shouldn't be accessed
in initialize() as that doubles the overhead for parsing them.
Change-Id: Ie731f1194f281e9574ef914d67537651658ea9e7
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Requesting mime types in initialized() is expensive because it causes
the mime database to be parsed. As additional mime types are added on
various plugin initializations, the database will be reparsed later
anyway. It's better to request the mime types afterwards.
Change-Id: I6c5f67a4483a693b2f69beb300b8014522fa2678
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
"m_tries" and "m_wasStarted" must be initialized before "m_psProc-
>start" call, because m_psProc will emit "QIODevice::readyRead" signal
before the function ends.
Change-Id: I10c63ca2d15c362d6df04018757b1916b9989893
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
This prevents stale tasks from piling up in the issues pane.
Change-Id: I90f79e969b8929e5bb43e3964c01fcd10af2ea33
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Never delete the base folder node when using buildTree to set up
a tree of files in the project tree. This makes sure the node stays
around, even when it turns empty. This matches how buildTree is used
in our code.
Change-Id: Id2a589985d9ac704316db5f210232532dcdb5d58
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Initial parsing for tests when opening bigger projects was too
slow. Try to let the parsing process on more than one file at
a time to speed up the whole process.
Project before now
qtbase ~11min ~4min
qtcreator ~2min ~40s
Values above may vary depending on the underlying hardware.
Change-Id: I77eeb189c82c58fce84ffbac67143ec7fa0adcae
Reviewed-by: David Schulz <david.schulz@qt.io>
Handle absolute paths to mkspec and do not accept any directory
as a mkspec: Only accept directories containing a qmake.conf.
Task-number: QTCREATORBUG-17237
Change-Id: I18c2b28a0abc525721df7c4f1ac2d272ca4cadb1
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
The assumption that the scale entries only have to be updated when
their stable index changes was wrong. The repeater can shuffle around,
stash and restore items at will. It might restore some item at the
same position, but the timestamp it refers to might have changed. Thus,
the value being displayed was wrong until the timeline got scrolled.
By using a proper binding we avoid this. In turn the blockStartTime
might get re-evaluated twice for a single update to row.firstBlock.
That would be bad as we would constantly re-render all the texts.
Experiments show that the current implementation of the QML engine
happens to order the bindings in a way where this doesn't happen and
we cannot get better than this without huge overhead.
Also, we simplify some of the expressions involved.
Change-Id: I93848f89bdbefd28c3dbf30f13551c9476dabd37
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: Ulf Hermann <ulf.hermann@qt.io>
Append a '@' to files with a '@' in their name. The last '@' (and
everything following it) is cut off by SVN and treated as a revision.
Task-number: QTCREATORBUG-17229
Change-Id: Icab62345c18277c0327b1e548a45feda0906b3c3
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Workaround for this not being available via dedicated qbs properties
right now.
Task-number: QTCREATORBUG-17207
Change-Id: Id06a41edf0308e5b20dd6bc7aa390c18d75acb19
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
We call delayedUpdateModel() instead of updateModel() setItemLibraryInfo(),
to avoid a second update. The updateModel in updateImports() is not required,
since we call setItemLibraryInfo().
Change-Id: I2fbb4f9d0cd467776141ae4d0c8aaecb00f55557
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
QC now supports C compilers as well, adjust the test to reflect this.
Change-Id: I20f2264b31c1f21384b463beccbc27ab1073083c
Reviewed-by: Robert Loehning <robert.loehning@qt.io>
The native void type returns errors when accessing for example size
or name.
Change-Id: Ia5826ff4894eb7205d37a15661b82d9410171413
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
The previously defined size of zero resulted in a number
of division by zero exceptions.
Change-Id: I3faed573bb15b9b9fd825281b8f9b0c15a02a7de
Reviewed-by: David Schulz <david.schulz@qt.io>
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Always return a None type in the cdb python interface.
Returning Null will result in an exception whereas a None type
prints a stack as soon as a function or member from the return
value is used.
Change-Id: Idc4ea8547074e73ea17fb14f8e3793c0821cc526
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
A preliminary step to debugger options reorganization.
Change-Id: Iac77d87acfe246eff3f5734bcf35e35c2d6909c1
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
CMake is pretty poor with the data on which files are contained in a project.
Run a filesystem scan of the project directory to find more files.
Change-Id: I9cc3293a9faf9a967efa5f586c144c3e7773588b
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
We have to forward the call to the original modifier.
Without this patch auto completion does not work inside components.
Change-Id: Ic5798b3e853787da03d6ea1562e0d80ce0cc3bcc
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>