Commit Graph
76 Commits
Author SHA1 Message Date
itsmattkc 854ca0a7a9 reimplemented edge connect/disconnect 2021-11-12 11:51:13 -08:00
itsmattkc 3c6bc80c8f further improved new node view 2021-11-12 11:06:06 -08:00
itsmattkc 6033039046 improved connector UI in node view 2021-11-10 21:59:54 -08:00
itsmattkc 9c650883c2 implement context item in node view 2021-11-10 16:33:59 -08:00
itsmattkc b07bccb7dc nodes: revert to single output 2021-09-07 22:01:36 -07:00
itsmattkc a8abe5167c nodeview: calculate triangle size from title bar rect 2021-07-19 01:44:04 -07:00
itsmattkc 4d69e55799 nodeview: implemented dragger to create edge without holding key 2021-07-10 10:19:36 -07:00
itsmattkc f14a301ffa nodeview: updates to complete new context paradigm 2021-07-09 18:00:01 -07:00
itsmattkc 0532090259 nodeview: make items wider 2021-05-28 17:55:16 +10:00
itsmattkc 2162e9d8f8 nodeview: improved user manual positioning 2021-05-28 13:29:51 +10:00
itsmattkc f9309da4b3 nodeview: update positions correctly 2021-05-24 10:12:53 +10:00
itsmattkc f2d64728f9 work towards timeline/nodeview interactivity 2021-05-17 11:14:56 +10:00
itsmattkc 8e9859b2b3 initial commit 2021-05-16 09:58:57 +10:00
itsmattkc fa58dc1039 nodeview: pass icon size specifically 2021-04-22 11:50:24 +10:00
itsmattkc 77d4b18a60 updated copyright year for 2021 [skip ci] 2021-04-17 18:56:50 +10:00
Simran ce2e51fc2a QPainter::matrix is obsolete, use transform() instead 2021-04-01 18:00:12 +02:00
itsmattkc 2ea152479e nodeview: override icon pixmap retrieval 2021-04-01 23:45:28 +11:00
itsmattkc 843db76e75 nodeview: show label and type if label is set
Might not keep this, but we should have something to make the
node types clear when labelled.
2021-03-18 19:36:03 +11:00
itsmattkc 81c1922911 use strings to connect nodes
This makes the node system somewhat more high-level with the intent of making
working with them far more flexible and stable. By making the architecture more
abstracted, it becomes far less rigid which should allow us to do even more
with it and make it much less crash prone.
2021-02-09 15:48:37 +11:00
itsmattkc 8e7035bd40 restored nodeview 2021-01-19 00:06:57 +11:00
itsmattkc 181235f6ce began new infrastructure
Yep, this is another one of my "famous" sweeping rewrites. Expect things to break.

Goals for this are:
- Greatly simplify node connections (particularly with arrays) so the code requires less maintenance/is more stable
- Redesign node structure to address issues where UI would stall for lengthy periods of time
- Less reliance on shared ptrs/greater reliance on QObject system for inheritance/memory management
- General code cleanup and improvements
2021-01-05 11:20:38 +11:00
itsmattkc 75d4cd899b use hardcoded namespace
The macro defined namespaces confused the hell out of lupdate and more or less broke translations permanently. Looks like the only way we can do it is to have a hardcoded namespace, which goes against my instinct, but honestly how likely is it that we'll change the namespace anyway (I guess forks might want to do it, but that's their problem ;) )
2020-11-17 20:24:42 +11:00
itsmattkc d241090a9f finally updated the copyright year 2020-11-17 20:13:22 +11:00
itsmattkc e2010dde83 made formal QtUtils class 2020-11-17 09:42:36 +11:00
itsmattkc 0d102defab tracks: use node label instead of separate name string 2020-10-10 20:17:25 +11:00
itsmattkc df54b98fd6 nodeview: added light gradient to node item 2020-10-10 17:22:12 +11:00
itsmattkc 9aabde303e nodeview: added arrows to indicate a node can be expanded
Minor UI detail. Also slightly increases the size of node items and adds
"short names" to the video input and audio input nodes.
2020-08-21 15:15:39 +10:00
itsmattkc cb5b201054 nodeviewitem: base highlight color off palette
Improves appearance in light theme.
2020-06-13 13:05:19 +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 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 218c63f933 nodecombobox: implemented node combobox widget 2020-05-09 03:22:09 +10:00
itsmattkc 0628ddb901 nodes: use different colors from config based on category 2020-05-05 23:24:00 +10:00
itsmattkc bf68a4d631 nodes: added ability to label nodes 2020-04-29 15:35:05 +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 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 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 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 f6d602d8e0 nodeview: improved code structures 2020-03-02 16:07:24 +11:00
itsmattkc 7e7ff49777 nodeviewedge: use bezier curves instead of straight lines 2020-02-26 01:07:53 +11:00
itsmattkc 785160b86b nodeview: fixed crash when expanding a NodeViewItem with a NodeInputArray 2020-02-26 00:47:01 +11:00
itsmattkc b44d7165c5 nodeviewitem: toggle expanded state on double click 2020-02-16 01:05:41 +11:00
itsmattkc 2ba928fa1f code cleanup: renamed qtversionabstraction.h to qtutils.h 2020-02-08 00:13:38 +11:00
itsmattkc 1b34c5566d anchor node graphics item by their center
Makes auto-positioning them somewhat easier.
2020-01-09 01:40:06 +11:00
itsmattkc 61c60e00d6 various small code cleanups and improvements
Largely refactoring work to make the code somewhat nicer to work with.
2019-12-26 19:00:08 +11:00
itsmattkc 7d907d7ee1 removed olive:: qualifier from icon:: namespace 2019-12-26 17:38:18 +11:00