RSS/Atom feed Twitter
Site is read-only, email is disabled

Python plugin registration: choosing between a "closed" set of strings

This discussion is connected to the gimp-developer-list.gnome.org mailing list which is provided by the GIMP developers and not related to gimpusers.com.

This is a read-only list on gimpusers.com so this discussion thread is read-only, too.

Ofnuts
2010-09-07 16:53:51 UTC (over 14 years ago)

Python plugin registration: choosing between a "closed" set of strings

I'd like the user to select a "variant" of a plugin (among 3 to 5 ones). I would normally do so with a R/O drop-down box displaying the names. Is there a way to do so using the right type of parameter type in the registration (couldn't find it)?

Otherwise what would be the recommended way to do it? Define separate plugins for each variant?

Btw, can I define several plugins (ie, register() calls) in one single Python file? Or what is the best way (ie, easier to install for the end-user) to share code between Python plugins?

-- Ofnuts

Sven Neumann
2010-09-07 20:52:20 UTC (over 14 years ago)

Python plugin registration: choosing between a "closed" set of strings

On Tue, 2010-09-07 at 16:53 +0200, Ofnuts wrote:

I'd like the user to select a "variant" of a plugin (among 3 to 5 ones). I would normally do so with a R/O drop-down box displaying the names. Is there a way to do so using the right type of parameter type in the registration (couldn't find it)?

You should consider to avoid gimpfu for this and write a real GIMP plug-in in Python using a user interface built in PyGTK. The auto-generated UI of gimpfu is really just suited for very simple scripts. And there is a lot of awkwardness in gimpfu. It tries to make things easy for you, but then it gets into your way and you end up spending time to find workarounds for that.

Sven

Jerry Baker
2010-09-07 20:52:51 UTC (over 14 years ago)

Python plugin registration: choosing between a "closed" set of strings

If your 'variants' are similar you could just use PF_OPTION and change your variables/options with an if/else...

Or you can define different functions and register them separately in the same file. The 'palette-to-gradient.py' file in the source does this...
http://git.gnome.org/browse/gimp/tree/plug-ins/pygimp/plug-ins/palette-to-gradient.py

On 09/07/2010 10:53 AM, Ofnuts wrote:

I'd like the user to select a "variant" of a plugin (among 3 to 5 ones). I would normally do so with a R/O drop-down box displaying the names. Is there a way to do so using the right type of parameter type in the registration (couldn't find it)?

Otherwise what would be the recommended way to do it? Define separate plugins for each variant?

Btw, can I define several plugins (ie, register() calls) in one single Python file? Or what is the best way (ie, easier to install for the end-user) to share code between Python plugins?

-- Ofnuts

Ofnuts
2010-09-07 21:10:01 UTC (over 14 years ago)

Python plugin registration: choosing between a "closed" set of strings

On 07/09/2010 20:52, Sven Neumann wrote:

On Tue, 2010-09-07 at 16:53 +0200, Ofnuts wrote:

I'd like the user to select a "variant" of a plugin (among 3 to 5 ones). I would normally do so with a R/O drop-down box displaying the names. Is there a way to do so using the right type of parameter type in the registration (couldn't find it)?

You should consider to avoid gimpfu for this and write a real GIMP plug-in in Python using a user interface built in PyGTK. The auto-generated UI of gimpfu is really just suited for very simple scripts. And there is a lot of awkwardness in gimpfu. It tries to make things easy for you, but then it gets into your way and you end up spending time to find workarounds for that.

Still a rather simple script so far, parameter-wise, so python-fu is sufficient, especially given Jerry's answers... but I'll keep your suggestion in mind for when I get more proficient with all this.

Ofnuts
2010-09-07 21:14:07 UTC (over 14 years ago)

Python plugin registration: choosing between a "closed" set of strings

On 07/09/2010 20:55, Jerry Baker wrote:

PF_OPTION is what I had in mind, without finding it described. I googled it after you netioned itn and found a nice python-fu sample with all parameters types... I wish I had found it earlier...

Thanks for confirming my guess that multiple registration could work. It is therefore a serious option, especially since some variants require less parameters.

If your 'variants' are similar you could just use PF_OPTION and change your variables/options with an if/else...

Or you can define different functions and register them separately in the same file. The 'palette-to-gradient.py' file in the source does this...
http://git.gnome.org/browse/gimp/tree/plug-ins/pygimp/plug-ins/palette-to-gradient.py

On 09/07/2010 10:53 AM, Ofnuts wrote:

I'd like the user to select a "variant" of a plugin (among 3 to 5 ones). I would normally do so with a R/O drop-down box displaying the names. Is there a way to do so using the right type of parameter type in the registration (couldn't find it)?

Otherwise what would be the recommended way to do it? Define separate plugins for each variant?

Btw, can I define several plugins (ie, register() calls) in one single Python file? Or what is the best way (ie, easier to install for the end-user) to share code between Python plugins?

-- Ofnuts