On Mon, 21 Jun 2021 01:48:17 +0000 dep via tde-users users@trinitydesktop.org wrote:
said E. Liddell:
| If it's a true plugin, it probably doesn't *have* a separate executable. | Plugins are sort of like the inverse of libraries: they implement some | sort of interface or contract provided by the host program. The kipi | plugins appear to implement a common interface used by multiple TDE | graphics programs.
I considered that possibility, but there has to be some way to invoke it.
Through whatever interface is in the program, usually.
| Unless you can figure out how to use DCOP to send a message to gwenview | that will force-invoke the plugin, or you're willing to write some kind | of kipi stub-invoker, I suspect you're out of luck here.
Do you think that the code in the actual menu entry contains all that code? Because all I hope to do it copy it from one menu on Gwenview to another menu in Gwenview, the latter being a freely editable one. It's not as if I want it to run free-standing, or to open it in a different program. Juast literally move it from one menu to another.
I expect the menu code calls a function somewhere. If you're willing to muck around with the gwenview source, it should theoretically be possible to replicate the original menu item (unless TDE did something really weird here).
I don't use gwenview, but have you checked for a way to create a toolbar button for this plugin, or bind its invocation to a keystroke? Seems to me that that would be easier all around.
Something that also puzzled me a little is that there is a kipiplugin.metadataedit.desktop file (in /opt/trinity/share/services). Beyond listing every language spoken in the solar system and nearby parts of the galaxy, it has this:
X-TDE-ServiceTypes=KIPI/Plugin Type=Service X-TDE-Library=kipiplugin_metadataedit
Which I'm sure means something, though I know not what, beyond the extremely obvious.
Examining the other files in the share/services directory suggests it's TDE's dumping ground for invocation information on plugins, embeds, and protocols. Poking around inside a couple of them suggests that if any of these has a separate executable, the file will contain a line "Exec=[name]". Look in kxkb.desktop for an example.
E. Liddell