We should not only exclude children of system directories, but also the
directories themselves.
Fixes: QTCREATORBUG-29478
Change-Id: I1aa18b2faa03d241b8cc43eb157b5fa49285a12b
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
We had an import of QtLockedFile from 2008. On Windows we could see a
lot of QtLockedFile cycles for qtcreator.exe. The 2008 version was using
a semaphore.
I've tried the latest QtSolutions version from 2016, which was using
only mutexes. qtcreator.exe would still show up lots of cycles for
QtLockedFile.
Then switched to QLockFile (added in Qt 5.1), and I couldn't see any
more CPU usage!
Task-number: QTCREATORBUG-29416
Change-Id: Ibfd102f3e90de39c807ff1140e597b79a7b6ca8e
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
(cherry picked from commit 1fca05959f)
This reverts commit 1fca05959f.
Reason for revert: Portale +2'ed under the assumption that this
goes into the master branch. This year old issue should definitely
be fixed, but typically not that urgently in a .3 patch release
Let's revert this and move it on master, please. I take the blame for the messy git history.
Change-Id: I8ae5a5e8e89ce38e7fe663b09cb6c2c3ab520ab0
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
We had an import of QtLockedFile from 2008. On Windows we could see a
lot of QtLockedFile cycles for qtcreator.exe. The 2008 version was using
a semaphore.
I've tried the latest QtSolutions version from 2016, which was using
only mutexes. qtcreator.exe would still show up lots of cycles for
QtLockedFile.
Then switched to QLockFile (added in Qt 5.1), and I couldn't see any
more CPU usage!
Task-number: QTCREATORBUG-29416
Change-Id: Ibfd102f3e90de39c807ff1140e597b79a7b6ca8e
Reviewed-by: Orgad Shaneh <orgads@gmail.com>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
Since no StudioControls ColorEditor exists, using the HelperWidgets
one and adding dummy context and backend to get it to work.
Task-number: QDS-10404
Change-Id: Ifc1506b4b1f761b6abf4144791f5b0397a90cdf0
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
Reviewed-by: Miikka Heikkinen <miikka.heikkinen@qt.io>
This avoids the case when CMake would trigger the file watcher when
generating totally different json files.
For example switching branches and doing a build on a big project, like
Qt Creator for example.
The filewatcher would be triggered and the UI would freeze for quite a
while.
Task-number: QTCREATORBUG-29416
Change-Id: I6ff47d8c2553f7718e82d92daae99036f37aca7d
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Mainly to simplify the implementation and naming.
Kind of follow-up to 862c9694.
There is some consolidation needed as followup as well as some potential
renamings. I'd leave that for separate patches to keep this here
somewhat self-contained.
Change-Id: I152e138a1d5baadec3f7542fed0894b8d4ffc8a3
Reviewed-by: David Schulz <david.schulz@qt.io>
There is already a way to programmatically set the configuration for a
client, take this into account when generating the response for a
workspace configuration response.
Change-Id: Id59b643eefc59732c856c356317764e6c54af69a
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Make all actions unique pointers and members of the 3D view,
so they will get deleted once view gets deleted.
Change-Id: I20d576480a2e553d9164a51e72f9f35d9715180e
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: Ali Kianian <ali.kianian@qt.io>
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
In case a document does not yet have a filename,
simply fall back to save as
Change-Id: I3cb30ab39e30ecba5c720d4b7d4c955f9dd4609f
Reviewed-by: David Schulz <david.schulz@qt.io>
When ctrl is pressed during move gizmo drag, the move is snapped to
configurable increment. If the drag axes are aligned to the global
axes, the snapping can be done either to absolute grid or increment
to start position, depending on snap options selected.
If drag axes are not aligned, then drag is simply snapped to
configured increment length along the drag vector regardless of
configuration.
All snapping settings are persistent and shared by all 3D scenes.
Fixes: QDS-10463
Change-Id: I9407e558aae0ad8b72d975fb6dfa15a4e78f6ee8
Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io>
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
QMLDESIGNERCORE_EXPORT should be only used for core exports. It is still
a little bit messy and that is why it worked but in the long run we want
to clean it up.
Change-Id: I20e898344731fa7b36226b4c3418b336fb98dabb
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Auto is here much more secure because it prevent an accidental creation
of a shared pointer from a raw pointer.
Change-Id: I16abb623fbfaf2d4e205a302e5bbd667efa1bb2c
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
The whole small string has to be intialized for const expressions. But
because we don't want to pay for that all the time we use a C++ feature
to only do that at compile time. So now at runtime only the control
block and the string content code is generated but at compile time
everything is filled up with zeros.
So you can now write:
void foo(std::vector<Utils::SmallString> &v) {
static constexpr Utils::SmallStringLiteral foo{"Some short string"};
v.push_back(foo);
}
The advantage compared to a string_view is that it is only memory
copying the literal because it know it has to be a constant.
Change-Id: Ia0e4bac293c363ae08341d18d47ddaf78e896e6a
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
Sometimes we want to have the dot properties instead of the
value(readonly) properties.
CompoundPropertyMetaInfos inflateValueProperties(PropertyMetaInfos
properties);
CompoundPropertyMetaInfos
inflateValueAndReadOnlyProperties(PropertyMetaInfos properties);
are removing the value proeprties and adding the dot properties if the
property type has properties.
Task-number: QDS-10472
Change-Id: Ia2291f77f1b38bbe62d71319bfa28cf545cbef18
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
Dot and dotdot properties can be gotten but three dots or more are not
supported.
Task-number: QDS-10472
Change-Id: I5e05405cd8ce80bc321dd78b2f74158832fed0bb
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Dot and dotdot properties are supported but not three or more dot
properties.
Task-number: QDS-10472
Change-Id: Ib5e40bfca470fe7520c9caacf0f469892bb73f7c
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
If the project storage works we can access if a type is a value,
reference, sequence or non of the above.
We can even test of values has properties like QFont etc.. That is
removing quite some heuristic code.
Change-Id: Ie3447d99931c6784db178e4b48f7d2f9a4f646fc
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
A simple store for editor path in the project storage. So we can inquire
the path for every type. The storage is synchronized per directory. So
only entries with the updated directory id are affected.
Task-number: QDS-10391
Change-Id: Ic4d0ce17eedd374ade56abd7cab08f2b7a9830c6
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
The update is walking a path which is provided by the
QmlDesignerProjectManager paths which ends to Pane.qml or Specifics.qml.
From that paths the module and type name is extracted. That data is
synchronized with the ProjectStorage. If no directory was changed it
will skip that directory. It will to collect the directory id to update
the storage per directory.
Task-number: QDS-10390
Change-Id: I3aaf5528133cf5e5c15f38a9720fbbf540d24eca
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
... mapping Keys (currently QString) to Data (currently QVariant),
i.e. effectively an oddly named QVariantMap.
Plan is to
1. make QVariantMap using loading/saving related functions to use
Storage instead of QVariant map,
2. replace QString by a UTF-8 container (QByteArray for starters)
3. add/remove parts of the map interface so that neither decoration
of string literals in user code are needed, nor that
unnecessary allocations happen.
Long term Storage could cover some of the current JSON uses, with
Storage's implementation possibly switching over to something
based on JSON (or CBOR?) directly, to be closer what we typically
send over the wire.
Change-Id: Ic33b8e95fed5268d6298b5391ff42cbb582b56c4
Reviewed-by: Marcus Tillmanns <marcus.tillmanns@qt.io>
System includes are silencing warnings.
Change-Id: I7d7954e01a28f94aa5983cfc44eba976d97b0311
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Amends 4e23f2a6eb.
This should actually not be needed in the end, and rather steered
by the auto registration and settings page apply.
Change-Id: I7f94e776fec4394f539e32e5c527c367251654a8
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
It cannot not throw, so no exceptions code is generated. And it is quite
often shorter too.
Change-Id: Icd555cedb880a1547b0ddcbcdd74fc21feb83ccb
Reviewed-by: Ali Kianian <ali.kianian@qt.io>
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>