-
Dmitry Kazakov authored
Now the model doesn't depend on the hierarchy of the image. It uses the hierarchy of the dummies stored in KiShapeController instead. Some bullet points: 1) KisShapeController connects to the image and forwards the node addition/removal signals for other recievers 2) KisNodeModel is connected to the KisShapeController and listens to the forwarded signals. It follows that it doesn't depend on the image directly, so there are no problems with multithreading. 2.5) KisNodeModel does not depend on sigLayersChanged() anymore. 3) KisShapeController manages when a node should be activated. It emits the signal sigActivateNode(KisNodeSP) which is processed by the KisNodeManager. It solved many problems at once. First, we needn't workaround moving of nodes (KisNodeManager::Private::activeBeforeMove). Second we are able to deprecate KisNodeManager::activateNode() now. (It'll be done in one of next commmits). 4) Fixed KisNodeFacade::lowerNode(). Now newly activated node depends on the node which is added in the end of the operation, so we should move exactly the node which was requested. 5) A small refactoring for KisLayerBox is done. It was discussed with Boud on irc. Not yet fixed issues: 1) I had to disable Bumpmap filter temporarily, because it didn't compile with changed KisNodeModel. It'll be fixed in the following commits. 2) When loading an image with many layers KisLayerBox does not scroll to the active layer.
040a948d