Commit Graph
1961 Commits
Author SHA1 Message Date
itsmattkc 11afdf32fe decoder/timeline: improve decoding of still images 2020-07-12 18:25:51 +10:00
itsmattkc 4d6003bb55 slider: update label color
Dark blue on dark gray was a little unreadable.
2020-07-12 13:54:31 +10:00
itsmattkc 39d71eb7cd nodeview: drop nodes on release rather than press
Minor UI improvement that also addresses issue where the cache would
ignore the invalidation.
2020-07-10 19:28:42 +10:00
itsmattkc c710fd162e richtextdialog: show html tags rather than wysiwyg
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.
2020-07-10 18:42:13 +10:00
itsmattkc efd90d5c8f renderer: use shared backend when caching
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.
2020-07-10 18:39:47 +10:00
itsmattkc 343c39d66d nodeparamview: preserve cursor position when text is edited 2020-07-10 02:41:35 +10:00
itsmattkc 0b4a9f4650 timeline: fixed bug that caused I-beam to render incorrectly 2020-07-10 02:40:23 +10:00
itsmattkc 8e1be4a3ff nodeparamviewwidgetbridge: implemented editing font parameters 2020-07-10 02:40:09 +10:00
itsmattkc 8e75432304 project/timeline: save timeline tracklist state in project file 2020-07-08 19:19:32 +10:00
itsmattkc af69f157a3 timeline: improved beam tool and its derivatives 2020-07-07 18:43:18 +10:00
itsmattkc a239fa0e2f timeline: fixed some ripple tool behavior bugs 2020-07-07 18:06:49 +10:00
Thomas Wilshaw 098b40c98e Use cfloat instead of limits 2020-07-02 15:36:13 +01:00
Thomas Wilshaw b04fa02ab4 Explicitly include limits header to fix build issue on Linux. 2020-07-01 14:18:12 +01:00
itsmattkc d31c373bd0 curveview: transform times to target for zoom fit 2020-06-24 01:29:57 +10:00
itsmattkc 8bf653925f curve/timeline: improved user interface behavior
* 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.
2020-06-23 05:25:34 +10:00
itsmattkc e681b87988 curve/param/panels: leave curve panel open and have option for timebasedwidget to auto-set timebase 2020-06-23 05:22:58 +10:00
Thomas Wilshaw 63c306c770 Fix typos 2020-06-22 13:45:51 +01:00
Thomas Wilshaw 53b8e7fa03 Fix comments and grammer 2020-06-22 13:27:54 +01:00
Thomas Wilshaw fdce84f34c Cleanup flipped Y axis code
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.
2020-06-22 13:01:10 +01:00
Thomas Wilshaw 8f326c5193 Fix pixel sampler with translate/zoomed image
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.
2020-06-21 19:59:44 +01:00
Thomas Wilshaw ccb6efd6b6 Make gizmos work with translated/zoomed image
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.
2020-06-21 19:31:40 +01:00
Thomas Wilshaw 1c6aebdcbe Move the world transform code to its own function
It seems like something that could come in handy elsewhere when drawing
stuff to the viewer.
2020-06-21 18:33:41 +01:00
itsmattkc 1725f01459 paramview: changed to static viewer-bound and fixed various scrolling issues 2020-06-22 00:38:00 +10:00
itsmattkc e97b5a9a14 nodeparamview: set time on node set
Fixes bug where keyframes would land on 0 unless the time is set a
second time.
2020-06-21 13:12:07 +10:00
itsmattkc 5f6e5916bc curvewidget: allow zooming only one axis and allow hiding keyframe tracks 2020-06-20 01:56:41 +10:00
Thomas Wilshaw 61618a9a14 Use a world transform for QPainter
World transform is based of the view matrix and can be used on any
QPainter that needs to draw on the canvas and move with the mouse/
zoom.
2020-06-19 16:41:29 +01:00
Thomas Wilshaw c735662232 First play with safe areas 2020-06-19 14:16:21 +01:00
itsmattkc 65ccac1dfe renderer: fixed bug that would render frames even after hash matching
Also enables the -Wshadow GCC warning to warn against the code bug that
caused this issue (and has caused other issues like it in the past).
2020-06-19 20:25:05 +10:00
itsmattkc fd8116a9de slider: use ctrl to switch axes 2020-06-19 02:36:09 +10:00
itsmattkc 115e62f140 slider: further behavior improvements
Ladders appears offset on sliders with multipliers. Ladder also appears
on initial press (but still shows line edit if mouse wasn't moved)
2020-06-18 18:58:49 +10:00
itsmattkc 1f3e0db64b Merge branch 'master' of https://github.com/olive-editor/olive 2020-06-18 18:15:51 +10:00
itsmattkc e8c8fedcdb slider: stop ladder drag timer on release 2020-06-18 17:50:28 +10:00
itsmattkc 57f858dd92 nodetable: correctly update with time 2020-06-18 16:30:57 +10:00
itsmattkc e47c985baa slider: if a ladder appears, signal the label that the drag has finished 2020-06-18 16:30:36 +10:00
itsmattkc a717742cbc nodetable: show values in separate columns
Works for vector coordinates (e.g. XY, XYZ, etc.) as well as displays
checkboxes for RGB/A. Still non-functional.
2020-06-18 15:07:47 +10:00
itsmattkc c5dd406ff1 slider: improved ladder usability 2020-06-18 14:11:50 +10:00
itsmattkc 5397457c8d timeline: treat non-primary clicks as non-moving
Fixes bug where drag would get stuck if the user right clicked on the
timeline.
2020-06-18 03:35:59 +10:00
itsmattkc e0d27490e7 Merge branch 'master' of https://github.com/olive-editor/olive.git 2020-06-17 19:56:27 +10:00
itsmattkc a871c5081b nodeparamtable: bare bones table view for node inputs 2020-06-17 17:48:07 +10:00
itsmattkc 1b6e9c1c79 viewer: moved nouveau to application launch rather than viewer init
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.
2020-06-17 03:00:00 +10:00
Thomas Wilshaw 7665e9e240 Update comments. 2020-06-16 17:15:21 +01:00
Thomas Wilshaw 389f230050 Properly fix translation errors in viewer
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.
2020-06-16 16:57:38 +01:00
Thomas Wilshaw 100da912ad Add hand tool dragging
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.
2020-06-16 14:41:35 +01:00
Thomas Wilshaw 7617ddabe3 Fix translation bugs
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.
2020-06-16 11:53:37 +01:00
Thomas Wilshaw f6c70f583f Panning now only works if the viewier is zoomed 2020-06-16 11:53:36 +01:00
Thomas Wilshaw 92eadc6854 Cleanup 2020-06-16 11:53:35 +01:00
Thomas Wilshaw f4d56f79cb Add ability to reset translation to center 2020-06-16 11:53:34 +01:00
Thomas Wilshaw 2174100342 Add basic tranlation functionality to the viewer
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.
2020-06-16 11:53:34 +01:00
itsmattkc 29d56a1583 timeline: implemented UI indicator for tools like razor and edit 2020-06-16 18:30:00 +10:00
itsmattkc 67ee78ac9a nodeparamview: allow disconnecting nodes by right clicking the "connected to" label 2020-06-16 17:48:10 +10:00