Yay, qt rclick is finally here :-). Except that it's not a plugin, nor
should it ever be a plugin. It's a simple entry point in qtGui that
allows plugins to create context menu items. It does
not bring the functionality of tk rclick plugin to qt (nor should it -
a separate plugin can do that). But, I think this approach is simpler
than the tk rclick (easier to write plugins, and *zero* wrapping is
done - you can create submenus, icons, tooltips, do whatever is
supported by QMenu/ QAction as you wish).
Here's an example "plugin" script (just enter it in node and press ctrl+b):
QQQ
#Example popup handler
from PyQt4 import QtCore
def test_acts(c,p,menu):
# 'menu' is QMenu instance that was jsut created
a1 = menu.addAction("Display " + p.h)
a2 = menu.addAction("Es " + p.h)
def a1_func():
g.es("a1 from " + p.h)
def a2_func():
g.es("a2 from " + p.h)
a1.connect(a1, QtCore.SIGNAL("triggered()"), a1_func)
a2.connect(a2, QtCore.SIGNAL("triggered()"), a2_func)
def test_acts_handler2(c, p, menu):
a = menu.addAction("Hello from handler 2")
def f():
g.es("Hello: " + p.h)
a.connect(a, QtCore.SIGNAL("triggered()"), f)
def register():
# the idea is just to append to the normal list g.tree_popup_handlers
g.tree_popup_handlers.append(test_acts)
g.tree_popup_handlers.append(test_acts_handler2)
register()
QQQ
The idea is indeed a list of functions / callables
g.tree_popup_handlers. When you are creating a plugin, just add your
menu manipulation routines to that list. It should be done in plugins
"init" (not after-create-leo-frame handler), because the handlers are
global.
If there is demand, we can add "priority" to handlers, but at the
moment this will suffice.
Relevant Qt docs:
http://doc.trolltech.com/4.5/qmenu.html
http://doc.trolltech.com/4.5/qaction.html
So far, this is only for tree. We can add different rclick handlers
for body (body_popup_handler / whatever).
BTW jkn, I realize you were working on this too - do you have
something that could be "synced" with this approach (e.g. wrapping
rclick.py stuff so existing Tk plugins would work)?
--
Ville M. Vainio
http://tinyurl.com/vainio
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"leo-editor" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/leo-editor?hl=en
-~----------~----~----~----~------~----~------~--~---