| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
| |
Change-Id: Id950260d748edf2066e099f598da49c47dda3810
Reviewed-by: Miguel Costa <miguel.costa@qt.io>
|
| |
|
|
|
|
|
| |
Replaces the hard-coded package name and version number in the README.
Change-Id: I507fd4fb4fe42edd66c801fdf3c24ca750eff8ed
Reviewed-by: Miguel Costa <miguel.costa@qt.io>
|
| |
|
|
|
| |
Change-Id: I5f4bb86c5d11e19f639542e281ecc7ee82d55689
Reviewed-by: Miguel Costa <miguel.costa@qt.io>
|
| |
|
|
|
| |
Change-Id: Ib410544e63363c240cea73796aa215694a9e0617
Reviewed-by: Miguel Costa <miguel.costa@qt.io>
|
| |
|
|
|
| |
Change-Id: I37cc98b8fea066de651547f455ea61bc9529108b
Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
|
| |
|
|
|
| |
Change-Id: Ib8666b7f6a02a122c40730b990debc7e0bc89704
Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
|
| |
|
|
|
| |
Change-Id: I905f5eeaf6d0e3e4c8fd0a22f94f898800957ce9
Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
|
| |
|
|
|
| |
Change-Id: I8882068d8711f596817bce2d5a71cd6ccf4a49c3
Reviewed-by: Miguel Costa <miguel.costa@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This refactors the Qt/.NET native test harnesses to use shared setup
code on both the C++ and managed sides, and hooks additional sources
into the generated CMake project.
- Introduce QtTestSetupBase (C++) to encapsulate common host bootstrap:
locating the managed test assembly, running the app (sync/async),
waiting for readiness, initializing the Qt/.NET adapter and
finalizing/unloading the host.
- Add BridgeExitCode enum (C++) and mirror it as ExitCode (C#) with
ExitCodeHelper so managed tests can report bridge infrastructure
failures with descriptive messages. QTest keeps using exit code 1
for test failures; bridge errors use 101+.
- Add QtQuickTestSetup (C++), a reusable QtQuickTest setup class with
overridable hooks (before/after applicationAvailable, qmlEngineAvailable
and cleanupTestCase) and centralized Ready/Finalize handling.
- Introduce ManagedTestBase (C#) to DRY TempProject creation, native
build, and configuration for QtTest/QtQuickTest, including CMake
injection and shared header/source replacement.
- Update Test_QtTest and Test_QtQuickTest to inherit from
ManagedTestBase, removing duplicated TempProject and build/run
boilerplate.
- Add CMake.InjectQtSourcesTargets helper (C#) to inject native
headers/sources into the generated CMakeLists.txt via an MSBuild
CodeTaskFactory task that patches the qt_add_executable() source list.
- Extend the test .csproj to copy the shared C++ setup files to the
output so they can be picked up by ReplaceGeneratedFiles.
- Dump the build output to the test output pane if the C++ build fails.
Change-Id: Ic1c96c89c9378caf06b7ca23ebadf32c23d2bc6f
Reviewed-by: Miguel Costa <miguel.costa@qt.io>
|
| |
|
|
|
| |
Change-Id: Idb9d5da1d3d6a0320535d04fc6e2f7172ff47996
Reviewed-by: Miguel Costa <miguel.costa@qt.io>
|
| |
|
|
|
| |
Change-Id: I3a7cb848a1b5ab0436f4ca50b097ac5cdeca36b6
Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
|
| |
|
|
|
| |
Change-Id: I23b2ca722baeaeb634259037663e75ff9242e461
Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
|
| |
|
|
|
|
|
| |
Required to specify additional Qt modules (e.g. Qt Test).
Change-Id: Iba5a2b4597be02dcff80537db4852b9240fe2987
Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
|
| |
|
|
|
|
|
|
| |
Now using QQmlEngine instead of the derived type QQmlApplicationEngine.
No behavior change. This is only relevant when using Qt Quick Test.
Change-Id: I93759541b975400de6946c72a150f94cc226ebd8
Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
|
| |
|
|
|
| |
Change-Id: I532c6feb15eaba7aa41432dc25a8a625f89f4cc8
Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
|
| |
|
|
|
| |
Change-Id: I6b4b047768e12b6b0b3ccc30cb9fec2c356daba5
Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Allow choice of CMake generator, given the value of $(QtBuildSystem):
* "ninja" => Ninja generator
* "msbuild" => MSVS generator
If $(QtBuildSystem) is not set, the Ninja build system is used by default.
If VC targets are not available, e.g. when building user projects on the
command line with `dotnet build`, and regardless of the value of
$(QtBuildSystem), the Ninja build system is always used.
Change-Id: I41632302f8cca76582256a149152679b9d4e30ec
Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
| |
* Create new .sln in the `examples` dir
* Use package when building examples outside of the topmost .sln
* Disable build of examples by default in the topmost .sln
- Projects can still be manually built and debugged
* Renamed `GeneratorTestApp` as `Primes`
* Renamed `PackageTestApp` as `CityTemperatures`
Change-Id: I333ba1941f3ccb021cb2681da09bcad8024ae186
Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
|
| |
|
|
|
|
|
| |
Fix app frozen after .NET thread exits before `exec()` of the Qt app.
Change-Id: Iaca005ac7919241ed2435b7f12783405197cb8b2
Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Hide package files in solution explorer (except README.md)
* Incremental build: trigger build if package version changes
* Target `UpdatePackageFiles`: build-time re-evaluation of list of
package files.
- Fixes: Qt/.NET type headers (e.g. `QDotNetObject`) missing from
package due to not being generated at evaluation time.
* Package Qt files in `tools` folder
- Fixes: Entire Qt installation copied to user project output
* Remove previous versions of the .nupkg from output path
- Fixes: `nuget init` copying old package versions
Change-Id: I2c4d328cbdea1bed6079ecc5d3a843aecff2ff49
Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
|
| |
|
|
|
|
|
|
|
| |
Implements a centralized source of version information that can be used
to ensure all binaries and packages generated by a build are in-sync
with respect to their versions.
Change-Id: Idbfff120a656b7daa3c3a410ce8aa4b9b305c7be
Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
|
| |
|
|
|
| |
Change-Id: I044df9611ab3de149c7a430149afffed509907b3
Reviewed-by: Miguel Costa <miguel.costa@qt.io>
|
| |
|
|
|
| |
Change-Id: Ibf8938465bc05961d9ee728c9e8750aa3733adda
Reviewed-by: Miguel Costa <miguel.costa@qt.io>
|
| |
|
|
|
| |
Change-Id: Ibe3b17de18e9ffd5a39ac978bfbe18a508ee8fe3
Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
|
| |
|
|
|
|
| |
Change-Id: Ic058fea0614deaba50aa43507fc0b6161ba97450
Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
Reviewed-by: Miguel Costa <miguel.costa@qt.io>
|
| |
|
|
|
|
|
|
|
|
| |
* Add Qt.Bridge.DotNet.targets and Qt.Bridge.DotNet.props files to
satisfy nuget pack (files must match the package name).
Task-number: QTBUG-134984
Change-Id: I7cec8d2b7517f381204e0cd4e269c213effdfdf1
Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
Reviewed-by: Miguel Costa <miguel.costa@qt.io>
|
| |
|
|
|
|
|
|
|
| |
This patch adds a new MSBuild target to check for required
Visual Studio workloads. If a workload is missing, the build
fails with an error message.
Change-Id: I520a3da0ebd935c90315b587ed7e28d14a03e192
Reviewed-by: Miguel Costa <miguel.costa@qt.io>
|
| |
|
|
|
| |
Change-Id: Ief59de29dac764e31408b6712a4909a190aaf383
Reviewed-by: Miguel Costa <miguel.costa@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
| |
* Renamed `[Qt.Exclude]` as `[Qt.IgnoreType]`.
* `[Qt.Include]` will now apply only to type definitions.
- A new, derived attrib, `[Qt.Enable]` can be applied to members.
- This is internal and only available in the Adapter assembly.
* Added doc: "Filtering code generation sources using C# attributes".
Change-Id: I0d45cd6d34a63cd51aa065e0fe3fafb5231a199a
Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
|
| |
|
|
|
| |
Change-Id: I6790f92526c2042e8a921903034667f0420ba8c5
Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
|
| |
|
|
|
|
|
|
|
| |
* Adjust test code generator to accept additional rules
* Add tests showcasing the DependsOn conditon
Change-Id: I7e403f2bffbdcb6765ae4d8dfe8ea7f12b8f4d18
Reviewed-by: Miguel Costa <miguel.costa@qt.io>
Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
|
| |
|
|
|
| |
Change-Id: Ie5d39ada2e923bc1fe20ff01dde3cb1773f1d2a1
Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
|
| |
|
|
|
| |
Change-Id: I5758a0127be73964056b91da560a3f38de37eb8b
Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
|
| |
|
|
|
| |
Change-Id: I175385d20f7f37d3077faa021e29ea6db8d8bbf7
Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
|
| |
|
|
|
| |
Change-Id: Ib0d50fe1d81c12aabfac2b7b5b8f977d2fb4a0cb
Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
|
| |
|
|
|
|
|
| |
Now using `ColumnLayout` instead of `Column`.
Change-Id: Ib98d8564b222b032bd484b5d809fe393a63a6076
Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
|
| |
|
|
|
| |
Change-Id: I85006e535a28898166ad225105519422eb3582d9
Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
|
| |
|
|
|
|
|
| |
Copied from https://code.qt.io/cgit/qt/qtdoc.git/tree/examples/demos/colorpaletteclient
Change-Id: I62b7c807eae9afa794ac56c4ae1ed6c76f249cb9
Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
|
| |
|
|
|
|
|
|
| |
Using the TypeCast object allows casting objects as other reference
types. TypeCast defines one cast function per generated reference type.
Change-Id: Id99fe82e9f94ab63c237bbc68caef72867a15e2f
Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
|
| |
|
|
|
|
|
|
|
|
| |
A rule that defines a `DependsOn` list of sources will not start execution
until all sources on the list have been successfully processed. If the
processing of a source is unsuccessful (i.e. one of the rules applied to
that source fails), all rules that depend on that source will fail.
Change-Id: Iee559ce5fe382067f03a93d6131c974684b269bc
Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Mapping `object` to `QVariant`
* Add missing conversions to `ValueConverter.cs`
- `Uri`, `ModelIndex`, `char`
* New meta-function traits
- `Arg`: generate type name as function argument or return type
- `Star`: generate `*` when required by the source type
* Moved method `asDotNetObject()` to `GenerateClass`
- Previously, only types that were generate as QML elements would
define this method.
* `asDotNetObject()` now returns `QDotNetObject *`
* Renamed/moved `asQObject()` to `Convert::moveToHeap()`
* Renamed/moved `QtDotNet::as<T>()` to `Convert::as<T>()`
* `Convert::as<T>` and `Convert::moveToHeap` now have a `context` arg
- This is an optional `QObject *` that is used to check if object
ownership must be set to `JavaScriptOwnership`.
* `Convert::toVariant` also has an optional `context` arg
- Forwarded to `Convert::as<T>` in case input is an object.
* No longer caching field values
Change-Id: I645012425c73ffd96aa83b534456986c997abe51
Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
|
| |
|
|
|
|
|
|
| |
Mapping of object refs to an appropriate wrapper type will now use the
same mechanism that was already used for event type dispatch.
Change-Id: Ie82b6f32c2069f56048ced2788b1e1e9e5d87b96
Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
|
| |
|
|
|
|
|
|
|
| |
Also, `Wrap` will now consume all subsequent white-space chars.
Previously, a line feed was required to immediately follow a `Wrap`
meta-char.
Change-Id: I51589bc1c9f351fe08b47102c1bc924634f8a36f
Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
|
| |
|
|
|
|
|
|
|
|
| |
Delegates for events participating in code generation will now only be
required to have 2 args, with the 2nd arg derived from `EventArgs`. This
will extend support to event delegates that do not return `void` or have
a `sender` arg different from `object`.
Change-Id: I334c9802f941ae6288df2ce053b8a105a6b63fed
Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
|
| |
|
|
|
|
|
|
|
|
| |
* Shutdown QML engine on `aboutToQuit` signal from Qt app
* Sync with .NET thread termination
* On Windows, call `ExitProcess` to force process termination
- Fixes process hanging on exit when running mixed mode debugging
Change-Id: Ie05cd856cabbf32cacb289c04888d5bb38099b20
Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- GenerateClass:
Precompute QML macros. If Name is explicitly provided but invalid,
return a error (descriptive) instead of silently emitting QML_ELEMENT.
Otherwise:
* QML_ELEMENT when Name is omitted
* QML_NAMED_ELEMENT(<Name>) when valid
- TypeExtensionsForGenerationRules:
Validate using ^[A-Z][A-Za-z0-9_]*$(First char uppercase, followed by
letters/digits/underscores; rejects whitespace/special chars).
- TestCodeGenerator:
Include rule error messages in the thrown exception to aid debugging.
- Tests:
Verify named vs unnamed element macro emission, invalid-name failures,
and singleton macro presence.
Change-Id: I054728c625a7fff6b1dfcbf512811672ce18f38e
Reviewed-by: Miguel Costa <miguel.costa@qt.io>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Setting an attrib without the `Name` property would cause code
generation to fail (e.g., setting `[QmlElement(Singleton = true)]`
on a type).
Note: We cannot test the generic versions of {Try}Property<T> due
to AssemblyLoadContext/type-identity mismatches (TypeOf<T>).
- TypeExtensionsForGenerationRules.QmlElementName:
Use TryProperty<string> to read optional properties.
- Tests:
Add coverage for misspelled/missing/valid QmlElement properties.
Change-Id: I942c75a22de0a822a9544e44a393609fb6e903cd
Reviewed-by: Miguel Costa <miguel.costa@qt.io>
|
| |
|
|
|
| |
Change-Id: Ie9f8b76055cc15ed2f60346d0c04c32c5787dfe5
Reviewed-by: Miguel Costa <miguel.costa@qt.io>
|
| |
|
|
|
|
|
|
| |
* Moved to namespace `Qt.DotNet.Text`
* Slim down API to SplitCase(...), ToCase(...) and ConvertCase(...)
Change-Id: Ie10c3ae966cf5cdff30b8c10d7a1a40d64692660
Reviewed-by: Miguel Costa <miguel.costa@qt.io>
|
| |
|
|
|
| |
Change-Id: I5e1de38b844239f611997df88d3b8822678d412d
Reviewed-by: Karsten Heimrich <karsten.heimrich@qt.io>
|