Commit graph

68 commits

Author SHA1 Message Date
Yann Lanthony
f6ae3ae057 [ui] support for appending multiple elements to a ListAttribute at once 2017-11-07 20:34:33 +01:00
Yann Lanthony
9bc8eaeb1b [commands] improve AddNodeCommand
use node name instead of a direct reference to the Node
2017-11-07 20:27:52 +01:00
Yann Lanthony
e38f112c55 [core] fix memory management
* parent Nodes, Edges and Attributes to their respective models
* use weakrefs for those objects to avoid cyclic references
* add 'root' property on Attribute for parenting to List/GroupAttribute (parent still exists for Qt-style parenting)
* UI: update commands to match those changes
2017-11-07 20:18:17 +01:00
Yann Lanthony
c5ce41f49e [commands] fix missing import 2017-10-30 16:41:47 +01:00
Yann Lanthony
1ec966fe2c [commands] remove unnecessary updates
* Core Graph is now updated  internally when needed
* addNewNode already calls applyExpr on newly created node
2017-10-30 16:39:49 +01:00
Yann Lanthony
c30b92b695 [commands] add ListAttributeAppend/Remove commands 2017-10-24 19:04:04 +02:00
Yann Lanthony
61ade5bfa7 [graph] simplify methods related to Attribute values and links 2017-10-24 19:02:38 +02:00
Yann Lanthony
c004e2af91 [commands] use new Graph.attribute method 2017-10-19 17:48:27 +02:00
Yann Lanthony
fd0c209837 [commands] only re-create out edges when undoing RemoveNode
"in" edges are automatically recreated since serialized as a connection expression in Node's dict representation and resolved by addNode
2017-10-17 16:32:57 +02:00
Yann Lanthony
b27db8fc7a [commands] unify naming on edges source / destination 2017-10-13 16:35:03 +02:00
Yann Lanthony
d4509ec20e [commands] new AddEdge/RemoveEdge commands 2017-10-13 12:10:35 +02:00
Yann Lanthony
e4ccef2187 [commands] AddNode: resolve link expressions on redo 2017-10-13 10:49:30 +02:00
Yann Lanthony
e893a3dfc6 rename package 'processGraph' to 'core' 2017-10-09 12:16:20 +02:00
Yann Lanthony
b8eff927cc [python27] fix compatibility issues 2017-10-06 15:45:39 +02:00
Yann Lanthony
a81aa53a6b [processGraph] Attribute.value as an "hybrid" property
Use "hybrid" property to simplify naming of properties. No matter the backend used (qt or core), the property is always accessible via its name, without differently named getter or setter methods.
2017-10-02 17:47:39 +02:00
Yann Lanthony
c98b2b7b41 [commands] fix RemoveNode command
re-create deleted edges on undo
2017-10-02 16:14:46 +02:00
Yann Lanthony
e17d0ea240 [commands] expose and use more UndoStack properties 2017-10-02 15:10:04 +02:00
Yann Lanthony
48941a5782 [ui] first basic debugging UI + elementary commands
* nodes as a ListView (right click to delete a node)
* editable attributes 
* undo/redo for adding/removing nodes and attribute edition
2017-09-25 20:18:27 +02:00