You can now use QList and QVarLenghtArray for values. The later is quite
interesting because it is not allocating for a provided capacity.
So you can now write:
statement.valuesWithTransaction<QVarLenghtArray<int, 1024>>();
And in almost all case no expensive memory is allocated. With the help
of NRVO there should be no copy too.
That is very useful for temporary values which are transformed into a
different type.
The capacity changed to an template parameter too:
statement.valuesWithTransaction<int, 1024>();
That is more clear than before:
statement.valuesWithTransaction<int>(1024);
Change-Id: I6d8d10ed9db0cc37f0579353a416e36e23c30415
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
To share the code TaskQueue is introduced. The Thread and the
synchronization code is moved into TaskQueue. Only a dispatch and cean
must be implemented in the callback.
Change-Id: I19c85c891ef700aae85b54630714555e862200a4
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
The thread will be stopped after 10min. And then started if needed.
Change-Id: I66f64081353fa4f24c7927139d1676ee8de85679
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
Reviewed-by: Tim Jenssen <tim.jenssen@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>
It is not very useful here and adds a warning for every test.
Change-Id: Iaf75385f90ebbe3d0ac9a306328ba56c489ea6cf
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
The cast function is now returning an invalid variant if the meta info
is invalid. It is too not anymore converting the value magically.
Task-number: QDS-10290
Change-Id: I125aab9ac46c9ac0605364ede32fb1a10d20cd89
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
It used the size of the destination string but it had to use the size of
the appended string to inquire the maximum required size.
Change-Id: I1c910abab0ac60ed5fec1b3dc3a358e438532281
Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
The IsEmpty and IsNull matcher have been extended to be more generic.
QVaraint matcher have been added.
Task-number: QDS-10290
Change-Id: I34fcb0571190dd37e7706587ee617e1301f9f841
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
You can get all exported names. That can the C++ names too for C++
types. If you only want the types name which are imported in a document
you can provide the source id for the document and get only that. If
there are different version exports you get them too.
Task-number: QDS-10274
Change-Id: Iefc0b68ebfd65998cf0481961f8c7643cdf9e5b9
Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
It is matching the document imports with the exported type names.
Task-number: DS-10265
Change-Id: I0623cd0b3d04fa1a8c05354a194f10f3d8948b21
Reviewed-by: Vikas Pachdha <vikas.pachdha@qt.io>
Actually the syntax was wrong.
You can use
SKIP_AUTOMOC foo.cpp
or
PROPERTIES SKIP_AUTOMOC ON
SKIP_AUTOGEN is skipping AUTOUIC and AUTORCC too.
Change-Id: Id4afdc2572fc287ae66368ba0fd70b3ce7fc04ba
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
Reviewed-by: Burak Hancerli <burak.hancerli@qt.io>
metaInfo.isProjectComponent() is signaling if a file component is
directly part of the project. metaInfo.isInProjectModule() otherwise
shows if a type is inside of the project as a qmldir module. Both cannot
be true. If a type is not part of either it is a system type.
Task-number: QDS-10251
Change-Id: Iae2270827a500ad6393e3751b3af276f9b030679
Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io>
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
There were multiple reasons why the tests were flacky. First
Utils::reverseCompare had a bug. Now
std::lexicographical_compare(first.rbegin(), first.rend(),
second.rbegin(), second.rend())
is used.
Second the check StorageCache::checkEntries was not const. So it would
change the vector which it was iterating. So the iterator could be an
dangling.
Fixes: QDS-10197
Change-Id: I84fca6a2b24e1cae9fb85a01b6208de7e58240df
Reviewed-by: Qt CI Patch Build Bot <ci_patchbuild_bot@qt.io>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
If you link to the internal Sqlite library you link actually twice. That
leads to strange bugs because you have an uninitialized object file. The
static linking workaround is now moved to cmake.
Change-Id: I51d966a623a18486ce5870d898999f3ce139f092
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
The function is not used but triggers strange accesses to null pointer.
Task-number: QDS-10178
Change-Id: Iea51609f7b8956a98fe9391aef8edac899e14c03
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
There were problems with older google test versions which were found
instead. Now the google test version is always the same and there cannot
be "strange" compile bugs.
Change-Id: Ib3dc74d1abbe369fb37a4ee5616011d8e3696c01
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>