Distance between the last drawn point and the current point is
calculated to be able to discard very short stroke segments (i.e we only
add to the current stroke if the input device has moved more than a
certain distance since the last drawn point).
This commit moves this code from the stroke to the scene, which allows
to calculate distance more accurately: it is now calculated as the
total, absolute distance traveled since the last point, rather than simply the
length of a line between the last point and current one.
This solves an issue where erasing a stroke to the point that only one
(truncated) polygon was left resulted in this polygon reappearing after
reloading the document.
This should not affect any strokes containing more than one polygon.
This ensures that when part of a line is erased,
`UBGraphicsStroke::isNominalLine` will no longer return true. This was
problematic as `UBSvgSubsetAdaptor` uses this to know whether or not to
save a stroke as polyline.
If it saves the stroke as a polyline, then the erased portions of the stroke
reappear after saving.
Therefore, we now force saving of the stroke as a group of polygons when it
has been partially erased.
Issue observed was that OpenBoard would crash on some Windows systems
when a video was on the page and that page was saved (due to switching
to document mode, auto saving, or duplicating the page), or when cutting
the video with Ctrl-X.
This was due to QTBUG-32522, where setting the video output for a
QMediaPlayer that is hidden results in a crash.
This commit is a work-around for this Qt issue, and so should be reverted
if and when the upstream issue is fixed.
This fixes two related issues:
1) When taking a partial screenshot of the desktop, then copying it
(Ctrl-C) and pasting it in a new document, it was not saved
2) When a page of one document was copied into another (in document
mode, by dragging the page onto another document), media files
disappeared from the new page.
This code was lifted from Open-Sankoré 2.10.
This fixes an issue where erasing part of a stroke that had been moved
or rotated, then clicking "undo" then "redo" would place part of the
stroke in the wrong place.
Images (UBGraphicsPixmapitem and UBGraphicsSvgItem) can be set as
background via the menu on their frame. Currently, the image is first
centered and un-transformed before being set as background.
The option in the frame appears for any UBGraphicsItem for which
`data(UBGraphicsItemData::ItemCanBeSetAsBackground)` is true.
This is (currently) only enabled for image items.