itsmattkc
81450044e0
added preference for duplicating dependencies
...
Fixes #1320
2020-11-16 16:32:15 +11:00
itsmattkc
1b9bf6d92c
switched many QLists for QVectors
...
Minor optimization
2020-11-16 16:17:43 +11:00
itsmattkc
0cafbb2594
nodeview: minor optimizations and behavior improvements
2020-10-10 19:47:25 +11:00
itsmattkc
2ccbfa7715
nodeview: null checks on select code
...
Prevents segfaults if the node view clears before the timeline.
2020-10-06 00:10:53 +11:00
itsmattkc
4204910796
nodes: link edges to IDs rather than objects
...
Allows code to know whether the connected parameters has been removed or
not.
2020-10-02 16:04:50 +10:00
itsmattkc
c6dd0e0204
nodeview: select on right click
2020-08-07 20:17:01 +10:00
itsmattkc
02c0fb7316
nodeview: automatically deselect blocks that have been removed
...
Fixes segfault attempting to access and select an item that's already been
removed.
2020-08-05 23:56:42 +10:00
itsmattkc
2afa5a42c7
ui: optimized widget signals for selecting clips/nodes
...
Decent performance optimization when working with the UI.
2020-08-01 02:12:20 +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
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
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
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
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
c1ed84b90e
viewer: receive audio invalidation signal
...
Invalidates and runs cache task correctly even if there are no video
nodes connected.
2020-05-30 02:50:30 +10:00
itsmattkc
14ac1ada6e
various: adding files missing in last commit
...
Oddly some files didn't commit previously. This commit adds those.
2020-05-27 03:24:37 +10:00
itsmattkc
1ed0814e83
nodeview: associate disconnected nodes with selected blocks until re-connected
2020-05-13 16:06:13 +10:00
itsmattkc
ce58671fd6
nodeview: started core node filtering work
2020-05-11 22:48:27 +10:00
itsmattkc
9c30f13a2e
nodeview: added setting for curved/straight edges
2020-05-10 04:33:37 +10:00
itsmattkc
16d4cccdb5
nodeview: optimized selecting
...
Rather than responding to every single selection change, the selection operation
can function as-is and then respond to all of them at the end.
2020-05-09 03:33:36 +10:00
itsmattkc
3d0f11c6ef
nodeview: first attempt at filter dialog
2020-05-08 23:12:00 +10:00
itsmattkc
1efd4e9f99
nodeview: further improved auto-positioning system
2020-05-08 19:20:24 +10:00
itsmattkc
4ac5513e3f
nodeview: implemented ability to select and delete node edges
2020-04-29 17:25:41 +10:00
itsmattkc
bf68a4d631
nodes: added ability to label nodes
2020-04-29 15:35:05 +10:00
itsmattkc
13dc79d0cd
nodeview: implemented duplicate feature
2020-04-29 15:04:53 +10:00
itsmattkc
d83073cf85
nodeview: attach pasted nodes to the cursor
2020-04-29 14:49:43 +10:00
itsmattkc
ff1a470aa0
Merge branch 'master' into nodeviewredux
2020-04-29 05:01:11 +10:00
itsmattkc
8ab91a70cc
nodeview: implemented moving with either the hand tool or middle mouse button
...
Includes splitting off this functionality from TimelineViewBase so it can be
re-used in any QGraphicsView.
2020-04-29 04:56:58 +10:00
itsmattkc
b57d12868f
nodeview: allow dropping a node on any edge
...
Before we checked data types to ensure compatibility, but some nodes (e.g. the
math node) may be compatible despite a not apparently compatible data type.
We allow users to make any connection quickly this way.
2020-04-28 03:20:08 +10:00
itsmattkc
e154b5d5d4
nodeview: make auto-position a manual and specific function, allow different flow directions
...
The first in many NodeView improvements. Up until now, nodes have been forcibly
auto-arranged, which has worked as a reasonable stop-gap just so that all the
nodes are visible during testing/development. However this does not make a good
user experience.
We move the auto-arrange code to a manual function that can be used when the
user or program deems it necessary, and also abstract the node positions so that
the view can ultimately determine the exact amount of spacing (useful for
changing DPIs) or orientation, so users can direct the flow whichever way they
want.
2020-04-28 00:28:38 +10:00
itsmattkc
b947b2224a
nodeview: support multiple flow directions
2020-04-27 16:08:48 +10:00
itsmattkc
c41b43ea06
nodeview: don't try to delete nodes marked as undeletable
2020-04-23 03:09:38 +10:00
itsmattkc
26b928597c
nodeview: only select if a graph is currently active
...
Fixes segfault where timeline attempted to signal NodeView to select nodes
after it had already cleared itself.
2020-04-22 18:18:22 +10:00
itsmattkc
410f3d25dc
fixed menu bugs introduced in f2bff5f150
...
Turns out setting a QMenu parent *not* in the constructor leads to very strange
behavior. All parents are now set in the constructor.
2020-04-19 16:19:08 +10:00
itsmattkc
f2bff5f150
menu: ensure all addMenu() calls are followed with setParent() calls
...
Ensures memory taken by creating a new menu is freed.
2020-04-19 01:26:54 +10:00
itsmattkc
1aa87cbda6
various: encapsulate all code in the olive namespace to avoid name collisions
...
Large-scale code cleanup. Also adds a license to the top of all files that were
missing it.
2020-04-06 15:29:53 +10:00
itsmattkc
378c354277
nodeview: improved nodeview usage
...
Rather than the cumbersome and small "node connectors" (introduced a while ago
when nodes had more than one output), this is a more streamlined system of
connecting nodes (hold Ctrl and drag to connect)
2020-04-03 08:34:47 +11:00
itsmattkc
2bda306866
timeline/various: implemented block copy/paste
...
Implemented the ability to copy/paste blocks/clips in the timeline. This did
require some large scale changes and reworking of the copy/paste system
introduced a few commits ago, but should be largely functional now.
2020-03-31 02:19:05 +11:00
itsmattkc
2bfe9f44df
nodeview: added ctrl+scroll zooming
2020-03-30 01:27:10 +11:00
itsmattkc
bb326e2b50
nodeview/core: moved node copy/paste functions to core so they can be used elsewhere
2020-03-23 15:27:58 +11:00
itsmattkc
a1f5c85f49
various: use simpler/smarter XML reading functions
...
Should address any XML parsing issues and allows for simpler, more maintainable
code. Should also address a crash that could occur when pasting nodes that had
inputs that weren't copied.
2020-03-17 02:38:17 +11:00
itsmattkc
72eb3a5d82
nodeview: worked around qt issue where the selection signal would still be sent after an item was deleted
2020-03-17 00:34:32 +11:00
itsmattkc
34f60e639a
nodeview: implemented copying/pasting nodes
...
Re-uses XML-based project saving/loading functions to store nodes, their
parameters, and their connections in a text-based format in the clipboard.
2020-03-15 20:01:58 +11:00
itsmattkc
8ec3258234
nodeview: added asserts for improved debugging
2020-03-07 20:40:52 +11:00
itsmattkc
d8f83f1452
nodeview: further optimization of node view
2020-03-03 01:50:31 +11:00
itsmattkc
3e34975dd9
nodeview: improved and optimized some selection code
2020-03-02 17:03:03 +11:00
itsmattkc
f6d602d8e0
nodeview: improved code structures
2020-03-02 16:07:24 +11:00
itsmattkc
bf7fc9a0c4
panels: selecting a clip in the timeline automatically selects the corresponding
...
nodes in the nodeview
2020-02-26 00:39:30 +11:00
itsmattkc
0a74714f5d
nodeview/nodepanel: implemented select all/deselect all functionality
2020-02-23 11:38:30 +11:00