The scale of PDF items was sometimes badly calculated when opening a
document made with a previous version of OpenBoard or made on another
computer.
Specifically, this solves the following issues:
- PDF scale calculation in documents that did not specify the pageDPI
used to render the PDF (happened with documents created with some old
versions of OpenBoard)
- PDF scale calculation in multi-page documents (it was set correctly
for the first page, but not the following ones)
In some cases, the PDF background of a document could be scaled badly
when tools such as the ruler, compass etc. were present on the page.
This happened with PDFs of version <= 1.4, and when the tools were
outside of / larger than the page.
This fixes an issue where if one document was imported with a different
DPI than the current one, any document created thereafter would have
this same value (which could then cause problems if a PDF was added to
that new document).
Saving this value to UBDocumentProxy not only makes more sense, it also
fixes this issue.
This adds screencast support on Linux. This is based on
ffmpeg for the encoding & muxing (default format is MP4 with AAC audio
and H264 video).
The microphone sound is grabbed using QAudioInput. The encoder should
be able to handle virtually any input format (it has been tested with
a stereo input at different sampling rates with one format (16-bit
signed) but it should work fine with any number of channels, sample
format etc.).
The only problems I have run into so far are that desktop recording is
very slow (compared to OS X) and that the last few video frames are
usually not included in the video. This may be due to GOPs not being
complete, but that's just a wild guess.
- Added a curveToPolygon function that creates a curved polygon,
eliminating the need to generate lots of small ones to make a curve look
smooth.
- Cleaned up the rest of the code a bit
- UBGraphicsScene calls UBGraphicsStroke::addPoint, which returns a list
of points that can be drawn. It may be none (e.g we discard very small
segments), one (if we do no interpolation) or several.
- Added a UBInterpolator base, abstract class. Various interpolation
methods can be added easily.
- Current methods: Basic spline (custom), Catmull-Rom spline (based on
alglib), and Bézier
- Added a setting to toggle interpolation. Added this to the UI as well
Caused problems e.g with podcast mode, where if the control and display
views were swapped in the preferences, the wrong screen would be recorded
when switching to desktop mode during recording of the podcast.
This happened even if only one screen was plugged in, so a black screen
was recorded in that case (at least on OS X 10.10)
- Qt plugins and libraries (and associated files) bundled only if necessary
- Dependencies corrected (for Ubuntu 14.04 and 16.04, at least),
mostly manually for now
- run.sh sets Qt plugin path environment variable (=> qt.conf
no longer needed; removed)