itsmattkc
23d92df3c8
nodeviewitem: don't expand if control is held during the double click
2020-06-11 21:27:18 +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
eb1b76896e
nodeview: reimplemented crude autopositioning system
2020-05-10 03:23:03 +10:00
itsmattkc
fc694296f1
nodeviewscene: added basic standard filtering modes
2020-05-09 03:33:41 +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
218c63f933
nodecombobox: implemented node combobox widget
2020-05-09 03:22:09 +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
e5e0d0323e
nodeview: implemented weighted auto-positioning
...
Similar to the previous approach, but cleaner and hopefully easier to extend.
2020-05-06 22:53:01 +10:00
itsmattkc
0628ddb901
nodes: use different colors from config based on category
2020-05-05 23:24:00 +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
1db5cf4de4
nodeview: reduce width of items
2020-04-29 14:36:06 +10:00
itsmattkc
999e841bc7
nodes: implemented short name
...
Nodes can provide "short" names for use in the node graph, distinct from their
full names shown everywhere else.
2020-04-29 14:33:57 +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
f04fa12c06
nodeview: allow expanded views of nodes again
...
Re-implementing expanding nodes to see the connections (but nicer this time).
2020-04-29 03:56:50 +10:00
itsmattkc
d74d6a1542
nodes: implementing saving/loading node positions from project file
2020-04-28 03:43:35 +10:00
itsmattkc
3c01b14a14
palette: fixed disabled text color
2020-04-28 03:32:50 +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
f73c41d3fa
various: implemented multiple project support
...
This required various changes to various parts of the infrastructure (mostly
using paths to finding the "root project" of any given object throughout).
Now theoretically infinite projects can be opened and accounted for at any
given time.
2020-04-18 01:50:47 +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
e5ac72fa9d
Merge branch 'master' into typos
2020-03-19 12:16:09 +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
luz.paz
321e7d1606
Fix doxygen and misc. typos
...
Found via `codespell -q 3 -L ba,keypair,numer,uint`
2020-03-10 15:00:56 -04:00
itsmattkc
8ec3258234
nodeview: added asserts for improved debugging
2020-03-07 20:40:52 +11:00
itsmattkc
baf3fbde05
global: made every user action set a project "modified" state that will prevent
...
the main window from closing instantly
2020-03-03 14:33:45 +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
e578ee6264
nodeviewedge: fixed float conversion warning
2020-02-26 01:59:46 +11:00