This week I worked on writing tests for interactions between different parts of Krita and investigated how to update all affected items in the storyboard.
I added two test classes, one for interactions between keyframe channels and animation interface and one for the interaction between keyframe channel and the storyboard docker. This was essential because the interaction is broken up into two stages. First the keyframe channel emits signals to the animation interface of the current image when any changes, such as add, remove, move are made. These signals result in emission of similar signals from the animation interface. These final signals can be connected to any part of Krita if it has a pointer to the current image, which dockers have. The first class of tests passes after some changes. I have completed parts of the second test. Some tests are yet to be implemented.
Updating all affected items in the storyboard would cause the canvas to update slowly if we update all items in the same thread. So we would have to use multi-threading for this purpose. There are some classes that already do that, I will use those classes. As this is a non-trivial task I postponed this to the next week.
I faced some problems due to my laptop having some hardware problems, and I had to give it away for repair 😦 I was without a linux machine during the weekends and so couldn’t complete the tests. This week I will complete writing tests, work on implementing update of affected items when keyframe changes and the remaining interactions.