58 lines
2.5 KiB
Diff
58 lines
2.5 KiB
Diff
diff -r a2294b0ec2e8 tryton/tryton/common/popup_menu.py
|
|
--- a/tryton/tryton/common/popup_menu.py Wed May 11 10:42:28 2016 +0200
|
|
+++ b/tryton/tryton/common/popup_menu.py Mon May 30 15:16:30 2016 +0200
|
|
@@ -12,7 +12,7 @@
|
|
_ = gettext.gettext
|
|
|
|
|
|
-def populate(menu, model, record, title='', field=None):
|
|
+def populate(menu, model, record, title='', field=None, parent_screen=None):
|
|
'''
|
|
Fill menu with the actions of model for the record.
|
|
If title is filled, the actions will be put in a submenu.
|
|
@@ -38,6 +38,8 @@
|
|
return record
|
|
|
|
def activate(menuitem, action, atype):
|
|
+ if parent_screen:
|
|
+ parent_screen.save_tree_state()
|
|
rec = load(record)
|
|
action = Action.evaluate(action, atype, rec)
|
|
data = {
|
|
diff -r a2294b0ec2e8 tryton/tryton/gui/window/view_form/view/list.py
|
|
--- a/tryton/tryton/gui/window/view_form/view/list.py Wed May 11 10:42:28 2016 +0200
|
|
+++ b/tryton/tryton/gui/window/view_form/view/list.py Mon May 30 15:16:30 2016 +0200
|
|
@@ -872,7 +872,7 @@
|
|
menu = gtk.Menu()
|
|
menu.popup(None, None, None, event.button, event.time)
|
|
|
|
- def pop(menu, group, record):
|
|
+ def pop(menu, group, record, screen):
|
|
copy_item = gtk.ImageMenuItem('gtk-copy')
|
|
copy_item.connect('activate', lambda x: self.on_copy())
|
|
menu.append(copy_item)
|
|
@@ -886,7 +886,8 @@
|
|
break
|
|
parent = parent.parent
|
|
else:
|
|
- populate(menu, group.model_name, record)
|
|
+ populate(menu, group.model_name, record,
|
|
+ parent_screen=screen)
|
|
for col in self.treeview.get_columns():
|
|
if not col.get_visible() or not col.name:
|
|
continue
|
|
@@ -903,10 +904,11 @@
|
|
if not model:
|
|
continue
|
|
label = field.attrs['string']
|
|
- populate(menu, model, record_id, title=label, field=field)
|
|
+ populate(menu, model, record_id, title=label, field=field,
|
|
+ parent_screen=screen)
|
|
menu.show_all()
|
|
# Delay filling of popup as it can take time
|
|
- gobject.idle_add(pop, menu, group, record)
|
|
+ gobject.idle_add(pop, menu, group, record, self.screen)
|
|
elif event.button == 2:
|
|
event.button = 1
|
|
event.state |= gtk.gdk.MOD1_MASK
|