rework resources/nodes/add colorspace info object.
Open, WishlistPublic

Description

From the Nov2017 sprint.

For nodes, we can make a node with "type", but this returns a node object. This is a bit of a problem for a situation where you do doc.createNode("name", "filterlayer") or doc.createNode("name", "clonelayer"). For the former this lacks the api to actually set a filter, and for the latter, we do really need to give it a layer to clone, because otherwise it is gooblygook(and clone layers cannot be assigned clonereferences after the fact due to rendering compications).

For resources, we have a similar situation, but there it is resolved by making an object that takes a resource and from there derives the resource information. This has proven very cumbersome to use because you end up juggling two versions of the same resource to edit one or the other.

The solution to this is to make seperate classes for the different node-types and resources, have them extend node and resource, and give them seperate creation functions so that api-users can be certain which node they create.

Another issue is that we cannot get colorspace info, like the bytearray, which'd be useful for export functions.

  • Rework nodes
    • Paintlayer api
    • Clonelayer
    • filterlayer
    • grouplayer
    • filllayer
    • filelayer - libkis file exists, but sip hasn't been made yet.
    • vector layer
      • Basic shape api for generic and groupshapes.
    • transparency mask
    • filter mask
    • transform mask (Not gonna happen because I cannot set a transform to these.)
    • selection mask
    • colorizemask (Also not gonna happen)
  • rework resources
    • paintoppresets
    • palettes
    • gradients
    • brushes
    • textures
  • Colorspace info object
    • object
    • replace old stuff in scripts.
  • adjust docs.