Commit graph

26 commits

Author SHA1 Message Date
Yann Lanthony
4ea793be74 [ui] return command result after pushing it to the undo stack
this allows to directly retrieve, for instance, the node created by UIGraph.addNode method
2018-01-12 13:59:07 +01:00
Yann Lanthony
614ef3a5d1 [graph] improve Node constructor arguments naming 2018-01-05 19:18:40 +01:00
Yann Lanthony
8c7a4bcc0f [commands] use addNewNode on RemoveNode.undo
use addNewNode to ensure node's internals are updated after creation
2017-12-19 15:02:45 +01:00
Yann Lanthony
06303c5773 [commands] add GraphModification on RemoveNode.undo
Avoid multiple graph updates on node/edges creation
2017-11-28 22:37:48 +01:00
Yann Lanthony
c3a1f05fdf [commands] introduce GroupedGraphModification
* allow to group graph modifications at undo/redo level
* add new EnableGraphUpdateCommand to change graph update behavior as a undoable command
2017-11-14 16:17:22 +01:00
Yann Lanthony
5f49e26216 [commands] ListAttributeAppendCommand: handle 'None' as value 2017-11-14 15:14:12 +01:00
Yann Lanthony
8b2224609c [commands] add higher-level error catching on undo/redo 2017-11-14 15:13:17 +01:00
Yann Lanthony
5d549e9155 [commands] SetAttribute: store previous primitive value 2017-11-14 14:56:19 +01:00
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