Alex: yes, I understood most of that by browsing the repository, but it is good 
to restate it for other readers.

Some plugins, like foggify.py have been ported, but only partially, without the 
GUI.  If you look at the history (in the repository), you can see that it 
formerly was a “gimpfu” plugin i.e. it “from gimpfu import *”.

If gimpfu had been ported first, the former foggify.py might work without 
porting (or just minor changes.)  I am not trying to criticize the order in 
which things were done, I realize that the port of foggify was pioneering, to 
test the machinery at lower levels.  I have looked at the ported code myself to 
see how to do things (although I think despeckle.c or some other might be a 
more definitive, complete example of all the things a well-behaved plugin 
should do.)

GimpFu simplifies writing plugins in Python.  It generates GUI dialog 
automatically, provides aliases “gimp” and “pdb”, and has only two other 
methods “register” and “main”.  So loosely speaking you can write a gimpfu 
plugin knowing little more than the PDB.

Other parts of PyGimp provide pythonic classes for Gimp classes, such as 
“gimp.Image” (note the lower case “g”, it is not the gobject introspected 
Gimp.Image.)  These classes have many “convenience” methods (not found 
elsewhere?)  Many plugins that use gimpfu also use the convenience classes.

I can see that the PyGimp classes are now less useful, since now GI gives you 
much the same thing.  All an author needs to do is translate from the language 
of the PyGimp classes to the very similar language of GI of Gimp.

To elaborate my original question: has anyone decided that the convenience of 
gimpfu (and/or the other parts of PyGimp) is not useful anymore?  I gather that 
the answer is: some of it might be useful, we just haven’t done it yet, its 
much, hard work, and noone understands the code anymore.

If there are plans to automatically generate plugin GUI, but implemented 
cross-language, as Elad suggested…..  then any port of gimpfu could omit 
writing that in Python and introspected gtk3.

I think the gimpshelf module of pygimp (that provides session persistent 
storage, mainly for plugin settings) is deprecated because the capability is in 
Gimp class gimp_procedure_config now.

I think the gimpui module of pygimp (that lets authors use libgimpui i.e. Gimp 
provided widgets e.g. color picker) could be deprecated because authors can use 
GI, and as far as I can determine, there are extremely few plugins in the wild 
that ever used it.



_______________________________________________
gimp-developer-list mailing list
List address:    gimp-developer-list@gnome.org
List membership: https://mail.gnome.org/mailman/listinfo/gimp-developer-list
List archives:   https://mail.gnome.org/archives/gimp-developer-list

Reply via email to