Ensure layer activated for new views: fix for 518465

This is a possible fix for 518465: Deleting top layer causes new view of image to have no active layer:

The changes will ensure the last active node in the original view is the one activated in the new view.

I had also tried a fix that sets a node whenever KisDummiesFacadeBase::slotRemoveNode triggered, but this did not keep track of other actions like when user changes to a different layer.

Test Plan

To reproduce the bug:

  1. Open an image with multiple layers
  2. Select the top most layer
  3. Delete it
  4. Select "Window" > "New View" > "path/to/image"
  5. When the new view opens none of the layers are activated, you first need to click inside the dockers panel.

With the fix applied step 5 should have the previous views activated layer as well.

Formalities Checklist

  • I confirmed this builds.
  • I confirmed Krita ran and the relevant functions work.
  • I tested the relevant unit tests and can confirm they are not broken. (If not possible, don't hesitate to ask for help!)
  • I made sure my commits build individually and have good descriptions as per KDE guidelines.
  • I made sure my code conforms to the standards set in the HACKING file.
  • I can confirm the code is licensed and attributed appropriately, and that unattributed code is mine, as per KDE Licensing Policy.
  • Does the patch add a user-visible feature? If yes, is there a documentation MR ready for it at Krita Documentation Repository?

Reminder: the reviewer is responsible for merging the patch, this is to ensure at the least two people can build the patch. In case a patch breaks the build, both the author and the reviewer should be contacted to fix the build. If this is not possible, the commits shall be reverted, and a notification with the reasoning and any relevant logs shall be sent to the mailing list, kimageshop@kde.org.

Merge request reports

Loading