Patrick Julien freak at
Mon Mar 8 12:29:43 CET 2004

On March 8, 2004 06:18 am, Boudewijn Rempt wrote:
> On Monday 08 March 2004 12:14, Patrick Julien wrote:
> > This is interesting.  If I may, a few suggestions.
> >
> > I believe the intent here is to set this information so that it is
> > constant. Consider removing every setter and data from KisImageType.
> Yes, I was considering that. The main intention was to get rid of all the
> enums in kis_global, especially the enums have corresponding methods, like
> imgTypeBlaFunction()...

I don't think your goal should be to remove the enumeration, but peaceful 
coexistence.  For widgets, you probably want a mediator to fill in a 
list/icon/whatever item the send it off.  The key for the result can be this 
simple enumeration that you match back to the originating object.

Also, now that I see more clearly what you are doing, you should make your 
image types flyweights.  Now that I think about it even more, you should 
probably add these members to the color space strategies.

Your KisImageType class now becomes a small class adapter for a colorspace 
strategy.  From what I understand from KisAbstractCapability, you want to use 
these from the GUI.  If that is the case, you may want to stay away from 
actually putting data and restrictions on constructor parameters and have 
this be a pure interface.

You don't need to explicitly define the assignment operator either.

> > Then create a new type that inherits from KisImageType that is basically
> > exactly what KisImageType is today.
> The start of that is KisImageTypeRGBA -- I was hesitating beween having
> very specialized types (RGBA _and_ RGB), or slightly less specialized
> types.

There is slight difference here, the common implementation also happens to be 
the class you are returning from the mediator.  Here, this is no longer true.  
The common implementation is now a hidden middle class.

> > The difference is that you are still returning KisImageType from the
> > mediator, however, you no longer have any setters nor do you have any
> > data, you are returning a narrow interface.

More information about the kimageshop mailing list