09-16-2018, 08:03 PM
(09-16-2018, 06:54 PM)ajs52698 Wrote: If your referring to the register function, when you ask what prevents me from gathering procedure names when building the dialog, I lack the knowledge about gimp and python to do such a thing. If your interested, could you fill some pot holes in my knowledge for me? If not, ignore the rest of this. As far as I can tell from testing, when gimp first loads it goes through all plugins and only calls functions which are written in the script such as Im_A_Function(). Because of this, from what I understand If I define a function and don't call it in the script, gimp wont run it. That being the case, I don't see why my code has any issues with unnecessary calls of functions. But what I am unsure of is that if I break a script up and place smaller portions of the code in different py files, would this be faster and considered proper technique for optimization?
No it wouldn't. Breaking up things will not make them run faster.
(09-16-2018, 06:54 PM)ajs52698 Wrote: As for not having a second procedure, from attempting to access pdb outside of a registered function in my case my plugin always crashes, and so having a second file with pdb procedures in it seems impossible, am I misunderstanding something?
The problem isn't accessing the PDB outside of a registered function. It is accessing the PDB outside of a plugin call context. The plugin entry point can call other functions that can themselves all the Gimp API without restriction. But if you put your code in the _main__ it is executed outside of the plugin context during registration.
(09-16-2018, 06:54 PM)ajs52698 Wrote: Finally, it does seem what i'm attempting to do is complicated and difficult unfortunately, would you have recommendations for simpler ways of generating all procedure names? Sorry for long paragraph.
You can call `dir(pdb)| in your plugin code:
Code:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from gimpfu import *
def dumpPDB():
entryPoints=[ep for ep in dir(pdb) if not ep.startswith('__')]
gimp.message('Gimp PDB contains %s entry points:\n%s' % (len(entryPoints),',\n'.join(entryPoints)))
def testPDB():
dumpPDB()
name='Dump PDB'
register('test-pdb',name,name,'','','',name,'',[],[],testPDB,menu='<Image>/Test')
main()