Sign up now! · Forgot password?
RSS/Atom feed Twitter

When writing a GIMP Plugin using Python, can the Plugin display a GIMP based Dialog box informing the user if they haven't provided an argument?

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.

Craig Sanders via gimp-developer-list
2019-05-08 07:19:27 UTC (18 days ago)

When writing a GIMP Plugin using Python, can the Plugin display a GIMP based Dialog box informing the user if they haven't provided an argument?

Hello.

I am writing a GIMP Plugin using Python, and this Plugin expects to receive a list of files as one of its arguments. My question is, if the user doesn't provide any files as arguments, can my Plugin display a GIMP based Dialog box informing them of this?

My Plugin is working as I expect, however I currently have it implemented so that it throws an Exception if it doesn't receive a list of files as one of its arguments. GIMP catches this Exception and displays its own Dialog box informing the user that an Exception has been thrown and caught. However, I would like to catch this Exception within my Plugin, and present a Dialog box which is slightly more user-friendly than the one I am currently seeing from GIMP. After all, not all users know (or even care to know) what an Exception is.

Any help on this matter would be immensely appreciated.

Thanks in advance.

Carol Spears via gimp-developer-list
2019-05-08 15:22:20 UTC (18 days ago)

When writing a GIMP Plugin using Python, can the Plugin display a GIMP based Dialog box informing the user if they haven't provided an argument?

On Wednesday, May 8, 2019, Craig Sanders via gimp-developer-list < gimp-developer-list@gnome.org> wrote:

Hello.

I am writing a GIMP Plugin using Python, and this Plugin expects to receive a list of files as one of its arguments. My question is, if the user doesn't provide any files as arguments, can my Plugin display a GIMP based Dialog box informing them of this?

gimp.message(You did not provide files)

The message part should be in quotes probably....

Craig Sanders via gimp-developer-list
2019-05-08 23:32:30 UTC (17 days ago)

When writing a GIMP Plugin using Python, can the Plugin display a GIMP based Dialog box informing the user if they haven't provided an argument?

Ahhh. I didn't even think that it might be able to be done that way - but your solution is exactly what I was looking for. Thankyou very much.

I was thinking that there might be a GIMP Procedure such as;

pdb.display_dialog(...)

or something similar.

After I submitted my question, I found a snippet of Python code on the Internet which did what I needed, but nowhere near as nicely as your answer. When I modified this snippet of Python code, it looked as follows;

import gtk

# A whole lot of code has been left out here!!!

errDialog = gtk.MessageDialog(

None,

0,

gtk.MESSAGE_ERROR,

gtk.BUTTONS_OK,

"You must specify at least one file."

)

errDialog.show_all()

errDialog.run()

# And a whole lot of code has been left out here!!!

Thanks once again for your assistance. It is most appreciated.

On Thu, May 9, 2019 at 1:22 AM Carol Spears wrote:

On Wednesday, May 8, 2019, Craig Sanders via gimp-developer-list < gimp-developer-list@gnome.org> wrote:

Hello.

I am writing a GIMP Plugin using Python, and this Plugin expects to receive
a list of files as one of its arguments. My question is, if the user doesn't provide any files as arguments, can my Plugin display a GIMP based Dialog box informing them of this?

gimp.message(You did not provide files)

The message part should be in quotes probably....

Ofnuts
2019-05-11 21:44:08 UTC (14 days ago)

When writing a GIMP Plugin using Python, can the Plugin display a GIMP based Dialog box informing the user if they haven't provided an argument?

If the plugin is for public use, gimp.message() is a better solution because it will display in a dialog box or in the Gimp message console depending on user preferences. You don't really need to drag in all the GTK support just to display an error message.

On the other hand, I don't see how you pass a list of files to a plugin.. If this is a batch script, things are a bit different, but then there may be no UI at all, and the message would be better printed to the console.

On 5/9/19 1:32 AM, Craig Sanders via gimp-developer-list wrote:

Ahhh. I didn't even think that it might be able to be done that way - but your solution is exactly what I was looking for. Thankyou very much.

I was thinking that there might be a GIMP Procedure such as;

pdb.display_dialog(...)

or something similar.

After I submitted my question, I found a snippet of Python code on the Internet which did what I needed, but nowhere near as nicely as your answer. When I modified this snippet of Python code, it looked as follows;

import gtk

# A whole lot of code has been left out here!!!

errDialog = gtk.MessageDialog(

None,

0,

gtk.MESSAGE_ERROR,

gtk.BUTTONS_OK,

"You must specify at least one file."

)

errDialog.show_all()

errDialog.run()

# And a whole lot of code has been left out here!!!

Thanks once again for your assistance. It is most appreciated.

On Thu, May 9, 2019 at 1:22 AM Carol Spears wrote:

On Wednesday, May 8, 2019, Craig Sanders via gimp-developer-list < gimp-developer-list@gnome.org> wrote:

Hello.

I am writing a GIMP Plugin using Python, and this Plugin expects to receive
a list of files as one of its arguments. My question is, if the user doesn't provide any files as arguments, can my Plugin display a GIMP based Dialog box informing them of this?

gimp.message(You did not provide files)

The message part should be in quotes probably....

_______________________________________________ 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

Michal Vašut via gimp-developer-list
2019-05-12 15:50:48 UTC (13 days ago)

When writing a GIMP Plugin using Python, can the Plugin display a GIMP based Dialog box informing the user if they haven't provided an argument?

You should IMHO prevent performing an operation when the input is invalid. Yes, it's definitely easier to throw an exception, but those are IMHO rather to deal with some unexpected errors.

On Sat, May 11, 2019, 23:44 Ofnuts wrote:

If the plugin is for public use, gimp.message() is a better solution because it will display in a dialog box or in the Gimp message console depending on user preferences. You don't really need to drag in all the GTK support just to display an error message.

On the other hand, I don't see how you pass a list of files to a plugin.. If this is a batch script, things are a bit different, but then there may be no UI at all, and the message would be better printed to the console.

On 5/9/19 1:32 AM, Craig Sanders via gimp-developer-list wrote:

Ahhh. I didn't even think that it might be able to be done that way - but your solution is exactly what I was looking for. Thankyou very much.

I was thinking that there might be a GIMP Procedure such as;

pdb.display_dialog(...)

or something similar.

After I submitted my question, I found a snippet of Python code on the Internet which did what I needed, but nowhere near as nicely as your answer. When I modified this snippet of Python code, it looked as

follows;

import gtk

# A whole lot of code has been left out here!!!

errDialog = gtk.MessageDialog(

None,

0,

gtk.MESSAGE_ERROR,

gtk.BUTTONS_OK,

"You must specify at least one file."

)

errDialog.show_all()

errDialog.run()

# And a whole lot of code has been left out here!!!

Thanks once again for your assistance. It is most appreciated.

On Thu, May 9, 2019 at 1:22 AM Carol Spears

wrote:

On Wednesday, May 8, 2019, Craig Sanders via gimp-developer-list < gimp-developer-list@gnome.org> wrote:

Hello.

I am writing a GIMP Plugin using Python, and this Plugin expects to receive
a list of files as one of its arguments. My question is, if the user doesn't provide any files as arguments, can my Plugin display a GIMP

based

Dialog box informing them of this?

gimp.message(You did not provide files)

The message part should be in quotes probably....

_______________________________________________ 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

_______________________________________________ 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

Ofnuts
2019-05-12 17:03:31 UTC (13 days ago)

When writing a GIMP Plugin using Python, can the Plugin display a GIMP based Dialog box informing the user if they haven't provided an argument?

When you write a Gimp plugin in Python, either you do your whole interactive UI with PyGTK, or you let Gimp auto-generate a dialog to collect parameters from the user before calling you. Of course the second solution is a bit less user-friendly(*) but in many scripts, doing the whole UI would represent the larger and most complex part of the code.

(*) though not as bad as it looks, you can normally expect passed image/layers/files/colors to exist since they have been specified using specific dialogs.

On 5/12/19 5:50 PM, Michal Vašut wrote:

You should IMHO prevent performing an operation when the input is invalid.
Yes, it's definitely easier to throw an exception, but those are IMHO rather to deal with some unexpected errors.

On Sat, May 11, 2019, 23:44 Ofnuts > wrote:

If the plugin is for public use, gimp.message() is a better solution because it will display in a dialog box or in the Gimp message console
depending on user preferences. You don't really need to drag in all the
GTK support just to display an error message.

On the other hand, I don't see how you pass a list of files to a plugin.. If this is a batch script, things are a bit different, but then
there may be no UI at all, and the message would be better printed to the console.