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
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
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
f107c9bba1
nodeview: associated pasted nodes
...
Prevents nodes being erroneously filtered out.
2020-06-16 17:17:47 +10:00
itsmattkc
e979ce4d7a
nodeview: made an "infinite scroller"
...
Set scene rect to huge and hid the scrollbars. The node view should be
scrolled with middle click or the hand tool.
2020-06-16 16:31:16 +10:00
itsmattkc
62c23e8ed1
timeline: allow re-labelling clips
2020-06-16 16:30:31 +10:00
itsmattkc
41b04d976c
nodes/clips: use node label as clip name and allow changing multiple labels at once
...
Merges the "clip name" and "node label" into the same entity.
2020-06-16 16:23:05 +10:00
itsmattkc
71fa821e52
nodeview: enforce minimum scale
2020-06-16 15:37:11 +10:00
itsmattkc
5980737742
timeline: ignore subtitle tracks for now
2020-06-16 15:17:21 +10:00
itsmattkc
dc86e18eb6
slider: remove old debug info
2020-06-16 15:17:01 +10:00
itsmattkc
89b3fa33f8
slider: update behavior for usability and qt 5.15
2020-06-16 14:52:53 +10:00
itsmattkc
cf17bbc80b
viewer: removed unnecessary background cache triggers
...
This was extremely aggressive and led to cache tasks that would return
even if you cancelled them. This should work a lot better.
2020-06-16 04:07:55 +10:00
itsmattkc
41fc50f412
slider: initialize dragged diff to 0
...
Fixes undefined behavior on first drag of a slider.
2020-06-16 02:51:35 +10:00
itsmattkc
cc463c7c60
viewer: allow temporarily suspending the auto-cache
...
While the auto-cache will always default to on, there are cases where the
user may not want the viewer to barrel ahead caching something (footage
viewer for instance or if the user is making a lot of changes in a short
amount of time).
2020-06-15 18:28:11 +10:00
itsmattkc
95dbeac8a5
viewer: don't show playback queue warning if past the video's end point
2020-06-15 15:42:49 +10:00
itsmattkc
4c548bc6a5
slider: implemented value ladder
...
Allows finer control over value changes.
2020-06-14 03:56:18 +10:00
itsmattkc
9a49235e40
addtool: better snapping
2020-06-14 01:20:02 +10:00
itsmattkc
37b7330274
text: added crude basic rich text dialog
...
To be expanded upon...
2020-06-13 20:04:17 +10:00
itsmattkc
4c14ab6498
add tool: allow adding on a track that doesn't exist yet
2020-06-13 20:03:06 +10:00
itsmattkc
cb5b201054
nodeviewitem: base highlight color off palette
...
Improves appearance in light theme.
2020-06-13 13:05:19 +10:00
itsmattkc
469b1e92d0
nodes: implemented basic text node
2020-06-13 03:01:35 +10:00
itsmattkc
5c5f09a20c
renderer: added generate job
...
For nodes that produce an image on the CPU before sending it to the GPU.
2020-06-13 03:01:23 +10:00
itsmattkc
209fb536f5
nodeview: when changing selected blocks, temporarily ignore selection change signal until the end
...
UI optimization.
2020-06-12 23:27:11 +10:00
itsmattkc
0abfdd1b65
timeline: improved context menu for selected clips
2020-06-12 21:55:43 +10:00
itsmattkc
c80f72481d
viewer: shortened re-cache wait interval
2020-06-12 03:31:49 +10:00
itsmattkc
dd7af0e6bd
nodes: minor overhaul to functionality
...
The nodes now have more control over how their accelerated shaders/sample
functions are run, as well as how items are popped off the value tables.
This allows for various optimizations that we didn't have access to before.
2020-06-12 00:54:15 +10:00
itsmattkc
23d92df3c8
nodeviewitem: don't expand if control is held during the double click
2020-06-11 21:27:18 +10:00
itsmattkc
aa11fd2d04
viewer: cancel all render tickets when displaying a null texture
...
Fixes a race condition if a frame is requested shortly before moving to
the end of the timeline.
2020-06-11 21:26:49 +10:00
itsmattkc
a9a13c4b0c
framehashcache: remove code for saving integer-based frames to cache
...
Since we don't allow non-float cached frames now, there's no need to have
this code complicating the codebase.
2020-06-10 14:12:26 +10:00
itsmattkc
71ec148e76
renderer: moved all shader code into one solidified function
...
Makes texture-based optimizations easier when they're all in one place.
2020-06-10 01:54:02 +10:00
itsmattkc
494609410b
timeline: when trimming, removing adjacent if its length is reduced to zero
2020-06-09 15:38:47 +10:00
itsmattkc
43513a2b3c
Merge branch 'master' of https://github.com/olive-editor/olive
2020-06-09 13:56:34 +10:00
itsmattkc
4b311ea3bf
projectexplorer: added unused attribute to parameter that should be used later
...
Fixes another GCC build issue.
2020-06-09 13:53:51 +10:00
itsmattkc
0f301cfdcc
manageddisplaywidget: show colorspaces as well as DVL
2020-06-09 13:53:20 +10:00
itsmattkc
a18d523b51
projectexplorer: appropriately renamed "proxy" to "pre-cache"
2020-06-09 02:37:11 +10:00
itsmattkc
52ca18d5e1
viewer: moved cached frame loading code so that more classes have access to it
2020-06-09 02:35:13 +10:00
itsmattkc
9095dfa463
project: replaced proxy with pre-cache
...
Removed proxy task and replaced with a true honest-to-god pre-cache for
footage. This footage is pre-cached to a sequence and therefore 100% ready
for use in it once the task is done.
2020-06-08 23:17:51 +10:00
itsmattkc
50b4c1e456
sequence: rather than a static divider in config, default to a heuristically generated one
2020-06-08 15:18:01 +10:00
itsmattkc
430561e2ac
sequence: made divider a sequence parameter rather than a viewer parameter
...
Doing this makes the preview resolution an explicit project setting rather
than a temporary UI setting. This will allow more consistency when caching.
2020-06-08 14:41:35 +10:00
itsmattkc
be784591fc
timeline: optimized pointer tool ctrl+drop
2020-06-06 17:50:23 +10:00
itsmattkc
aaee2ab9ed
timeline: vastly improved snapping
2020-06-06 13:59:49 +10:00