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.
Previously, items such as audio, video, and widget items could not be
cut and pasted because when the page was saved, any item that had been
deleted was permanently removed (including its source file, in the case
of these mulitmedia items).
This commit prevents the deletion any item in the undoStack
(i.e, items that have been deleted) when the document is persisted,
meaning the source file is still available when pasting the item on
another page (or document).
Note that this can lead to cases where the source file is kept in the
document even when no item is present. This should be a relatively rare
occurence, however.
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.
This mainly changes document mode behaviour in two ways:
1) When deleting 2+ items, a new document was selected in the list. Now, the current document is selected,
or if it has been deleted, a the first document in the list is set as
current document.
2) When deleting the last item in the trash, no document was selected.
Now, the current document is selected instead.
This adds an option to the menu of an image's frame, to set the image as
background. Undo and redo functions were also implemented.
This also removes the display of the "properties" page in the library
pane when clicking on an application, interactivity or flash animation.
For now, it was kept for other items such as images and videos.
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.
In some cases, export of a document containing a PDF background to PDF
caused the contents to be truncated.
The "simple" PDF exporter will now set the output page size to be equal
either to the document nominal size or, if the document has a background
PDF item, to the size of this item.
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.
We can (again) check for updates and, if an update is available, send
the user to the site to download them.
The old format (a .json specifying a version number and download URL)
was kept. The address for this file is now specified in the settings.
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.
We can (again) check for updates and, if an update is available, send
the user to the site to download them.
The old format (a .json specifying a version number and download URL)
was kept. The address for this file is now specified in the settings.
Fixes an issue where locked items could be moved if they were selected
along with other items, and these items all moved by dragging the
selection frame.
This implementation prevents any movement of the selected items if at
least one of them is locked. It also changes the colour of the selection
frame, like a locked UBGraphicsDelegateFrame.
When drag-n-dropping a document to the trash, it would reappear in the
"untitled documents" folder on the next restart. (This was introduced by
bd3d8e95)
Added checks for the size of the interior, cut-out triangle to make sure
everything is drawn correctly at small sizes; buttons are now also
hidden if they overflow from the tool.
This removes a few instances of deleting a scene twice, or accessing
elements of a scene after they've been deleted.
Previously, the application would crash upon exiting if the scene was
empty but had been modified (e.g if an object was placed on the board
then deleted, then the application closed)
Previously, only transforms were saved -- not positions (which are set
if a group is moved by dragging it directly; if dragged by its frame,
its transform is updated instead).
Issue observed was that a group that had been moved would lose its new
position when the document was saved then loaded. (All other transforms
were kept, however).
Now, when duplicating a group before saving a document, position is
included in the group's transform.
This was observed in some cases on low-resolution screens, at least on
Linux and Windows.
The previously hardcoded value for the width of the text items' titlebar
(consisting of the buttons for formatting text) was replaced by a
method calculating its width (which varies based on screen resolution).
... to the nearest 2 decimal places. This fixes a bug where upon loading
a text item, it could be scaled by e.g 0.999999, which would eventually
round down the point size by 1pt. Making the text item shrink by 1pt
every time the document was opened.