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