* First support for QQuickPaintedItem
Implements some basic drawing functionalities
* Less string passing during drawing
Colors get registered and are referenced via id
Font parameters can be set separately
* Color string to id conversion is now an implementation detail of QmlNetPaintedItem
* Adds Font metrics functionality
* Adds DrawText overload with bounding rectangle
* Dont copy the actions on each draw but lock the vector
* Optional Text support for QmlNetPaintedItem (including preedit)
* Adds Flags to the DrawText (Rect) method
* Adds an interface to interact with a QPainter
This interface can be implemented by a QPainter abstraction in the future
For now QmlNetPaintedItem implements INetQPainter
* Native submodule: Adds QMutex include
* Native submodule: Adds missing include
* Adds a lot of the QPainter interface
* Fixes Polygon point handling
Adds new QPainter API to QmlNetPaintedItem
* Renames QmlNetPaintedItem to QmlNetRecordingPaintedItem
* Deactivates painthandler reset in destructor of RecordingPaintedItem
* Registering a QuickPaintedItem
* Hide QmlNetQuickPaintedItem from QML
* First theoretically working PaintedItem implementation
* getStringSize is now static
* new native submodule version
* new native submodule (build error fix)
* Cleanup
Removes RecordingPaintedItem
Removes INetQPainter (functionality moved to NetQPainter)
* references native that fixes type registration
* Draw Image file
* Adds testing infrastructure for QmlNetQuickPaintedItem
* DrawArc test
* DrawConvexPolygon test
* Fixes GCHandle handling in QmlNetQuickPaintedItem
* Adds setWindowIcon support to QGuiApplication
* Adds DrawEllipse and DrawLine test
* Adds DrawPoint test
* Adds DrawPolygon test
* Adds DrawRoundedRect test
* Draw Pie Unit Test
* Test source formatting
* DrawPolyline Unit test
* Erase Rect Unit Test
* Unit Tests for ClipRect and Opacity
* Disables transformations
Real world use cases would want to use the QTransform functionality instead of passing the raw transformation matrix
* Unit Test for Sheer
* Adds Unit test for Translate
* Cleanup
* Link to native/origin/master
* Re-Trigger CI
Co-authored-by: Paul Knopf <pauldotknopf@gmail.com>
This allows us to specify the priority (order) and make sure that the AutoGenerateBehavior only generates signals for properties that don't get any signals by other behaviors
Added support for all QML built-in types in NetVariant:
- rect/QRectF maps to System.Drawing.RectangleF
- point/QPointF maps to System.Drawing.Point
- size/QSizeF maps to System.Drawing.SizeF
- color/QColor maps to System.Drawing.Color
The following require .NET Standard 2.1:
- vector2d/QVector2D maps to System.Numerics.Vector2
- vector3d/QVector3D maps to System.Numerics.Vector3
- vector4d/QVector4D maps to System.Numerics.Vector4
- quaternion/QQuaternion maps to System.Numerics.Quaternion
- matrix4x4/QMatrix4x4D maps to System.Numerics.Matrix4x4
Additionally, the following are supported as well for convenience:
- QRect maps to System.Drawing.Rectangle
- QPoint maps to System.Drawing.Point
- QSize maps to System.Drawing.Size
Qt defines QChar as a class containing a ushort, which
should be consistently 16-bit across supported platforms.
this change uses QChar* instead of custom typedefs
to intepret LPWStr arguments passed to/from .NET.
Runtime errors when running the QML parts of unit tests are currently ignored and not captured in test output. Warnings are now captured and if not explicitly disabled, any QML warning will fail the test and include the warning messages in the failure.
Qt5 removed the instance method QString::asprintf, and later replaced
it with a static method of the same name, causing CoreHost to compile,
but pass empty strings to the managed entry point.
The static QString::number method is available in both Qt4 and Qt5,
and as a bonus the overload should resolve to the appropriate pointer
length for the target.
When setting up the QObject meta method arguments in
NetQObject::invokeMethod the 1st parameter is getting overwritten by
parameters 2 to 10 and parameters 2 to 10 are getting ignored. This
change fixes the issue and get calling NetQObject::invokeMethod with
multiple parameters working as expected.