While good in theory, a WYSIWYG rich text editor for large video frames
was unwieldy (and in many cases unhelpful). Instead the titler will
show plain text/HTML tags so the user can still write rich text but
without the unwieldy UI.
For a true WYSIWYG experience, we would probably need to write a true
graphical editor (a la Premiere's titler), but that's a later goal.
This titler will be sufficient in a good majority of cases and there
are plenty of dedicated graphics packages if more complex titling is
required for the timebeing.
I think there was an earlier commit with a similar name but turns out
I'd only done foundational work in that commit and never actually
properly set it up. Of course once I did, there were several issues that
needed fixing to make it work correctly, but now it works as expected.
Heavily optimizes larger projects by allowing cache jobs to only copy
what has changed.
* Implements "auto-fit" setting for curve view and sets it on open.
* Improves scroll zooming on all TimelineViewBase derivatives.
* Improves code sharing for better maintenance.
There are now two functions to get the full matrix for the transformed
image. One that returns as is and one that returns with the Y
translation flipped for OpenGL.
Also some minor bug fixing.
Pixel sampler now works with a zoomed/translated image. As usual we
have to flip the y translation as OpenGl stores images upside down.
Need to look at a better way of handling this.
Added a new function that inverts the world transform and applies it to
a point. This allows the gizmo code to work in it's own space and not
need to know is the image has been zoomed or translated.
Viewer init was kind of too late since in many cases the sequence
would start caching and crash the app before the user could even read
the message. Moving to the startup makes it clearer from the beginning.
Original fix was wrong, this sorts it out I think. Delta values had to
be doubled as we're in Clip space (I think) and the matrix
multiplication order had to be swapped around.
Updated one of the signla/slot pairs to be simpler as we no longer need
to pass the zoom percentage back and forth.
If Hand Tool is selected we can now drag with a left click AS WELL AS
middle click. This keeps the view behaviour in line with other widgets
in Olive.
For simplicity it does not use handmovableview.
The translation needs to be scaled relative to the zoom percentage so
we get sensible movement when dragging. Dragging is also disabled when
the image is smaller than the container widget.
Re-orders the initialisation of some variables to stop a compile
warning on Travis.
Had to separate zoom and translate matrices to stop the zoom being
applied to itelf. This also required adding separate get/set functions
for each matrix and a GetcombinedMatrix() funtion.
Added those functions ot other files where needed ut may be wrong. Need
to look at export.cpp
Also changed the mouse move and press events to make translation work.