本文整理汇总了Python中tryton.gui.window.view_form.screen.Screen.destroy方法的典型用法代码示例。如果您正苦于以下问题:Python Screen.destroy方法的具体用法?Python Screen.destroy怎么用?Python Screen.destroy使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类tryton.gui.window.view_form.screen.Screen
的用法示例。
在下文中一共展示了Screen.destroy方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: Many2Many
# 需要导入模块: from tryton.gui.window.view_form.screen import Screen [as 别名]
# 或者: from tryton.gui.window.view_form.screen.Screen import destroy [as 别名]
#.........这里部分代码省略.........
def _color_widget(self):
if hasattr(self.screen.current_view, 'treeview'):
return self.screen.current_view.treeview
return super(Many2Many, self)._color_widget()
def on_keypress(self, widget, event):
editable = self.wid_text.get_editable()
activate_keys = [gtk.keysyms.Tab, gtk.keysyms.ISO_Left_Tab]
remove_keys = [gtk.keysyms.Delete, gtk.keysyms.KP_Delete]
if not self.wid_completion:
activate_keys.append(gtk.keysyms.Return)
if widget == self.screen.widget:
if event.keyval == gtk.keysyms.F3 and editable:
self._sig_add()
return True
elif event.keyval == gtk.keysyms.F2:
self._sig_edit()
return True
elif event.keyval in remove_keys and editable:
self._sig_remove()
return True
elif widget == self.wid_text:
if event.keyval == gtk.keysyms.F3:
self._sig_new()
return True
elif event.keyval == gtk.keysyms.F2:
self._sig_add()
return True
elif event.keyval in activate_keys and self.wid_text.get_text():
self._sig_add()
self.wid_text.grab_focus()
return False
def destroy(self):
self.screen.destroy()
def color_set(self, name):
super(Many2Many, self).color_set(name)
widget = self._color_widget()
# if the style to apply is different from readonly then insensitive
# cellrenderers should use the default insensitive color
if name != 'readonly':
widget.modify_text(gtk.STATE_INSENSITIVE,
self.colors['text_color_insensitive'])
def _sig_add(self, *args):
if not self.focus_out:
return
domain = self.field.domain_get(self.record)
add_remove = self.record.expr_eval(self.attrs.get('add_remove'))
if add_remove:
domain = [domain, add_remove]
context = self.field.context_get(self.record)
value = self.wid_text.get_text().decode('utf-8')
self.focus_out = False
def callback(result):
self.focus_out = True
if result:
ids = [x[0] for x in result]
self.screen.load(ids, modified=True)
self.screen.display(res_id=ids[0])
self.screen.set_cursor()
self.wid_text.set_text('')
win = WinSearch(self.attrs['relation'], callback, sel_multi=True,
示例2: WinSearch
# 需要导入模块: from tryton.gui.window.view_form.screen import Screen [as 别名]
# 或者: from tryton.gui.window.view_form.screen.Screen import destroy [as 别名]
class WinSearch(NoModal):
def __init__(self, model, callback, sel_multi=True, context=None,
domain=None, view_ids=None, views_preload=None, new=True):
NoModal.__init__(self)
if views_preload is None:
views_preload = {}
self.domain = domain or []
self.context = context or {}
self.sel_multi = sel_multi
self.callback = callback
self.win = gtk.Dialog(_('Search'), self.parent,
gtk.DIALOG_DESTROY_WITH_PARENT)
self.win.set_icon(TRYTON_ICON)
self.win.set_has_separator(True)
self.win.set_default_response(gtk.RESPONSE_APPLY)
self.win.connect('response', self.response)
self.accel_group = gtk.AccelGroup()
self.win.add_accel_group(self.accel_group)
self.but_cancel = self.win.add_button(gtk.STOCK_CANCEL,
gtk.RESPONSE_CANCEL)
self.but_find = self.win.add_button(gtk.STOCK_FIND, gtk.RESPONSE_APPLY)
if new and common.MODELACCESS[model]['create']:
self.but_new = self.win.add_button(gtk.STOCK_NEW,
gtk.RESPONSE_ACCEPT)
self.but_new.set_accel_path('<tryton>/Form/New', self.accel_group)
self.but_ok = self.win.add_button(gtk.STOCK_OK, gtk.RESPONSE_OK)
self.but_ok.add_accelerator('clicked', self.accel_group,
gtk.keysyms.Return, gtk.gdk.CONTROL_MASK, gtk.ACCEL_VISIBLE)
hbox = gtk.HBox()
hbox.show()
self.win.vbox.pack_start(hbox, expand=False, fill=True)
self.win.vbox.pack_start(gtk.HSeparator(), expand=False, fill=True)
scrollwindow = gtk.ScrolledWindow()
scrollwindow.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
self.win.vbox.pack_start(scrollwindow, expand=True, fill=True)
self.screen = Screen(model, domain=domain, mode=['tree'],
context=context, view_ids=view_ids, views_preload=views_preload,
row_activate=self.sig_activate)
self.view = self.screen.current_view
self.view.unset_editable()
# Prevent to set tree_state
self.screen.tree_states_done.add(id(self.view))
sel = self.view.treeview.get_selection()
if not sel_multi:
sel.set_mode(gtk.SELECTION_SINGLE)
else:
sel.set_mode(gtk.SELECTION_MULTIPLE)
viewport = gtk.Viewport()
viewport.set_shadow_type(gtk.SHADOW_NONE)
viewport.add(self.screen.widget)
self.screen.widget.show()
viewport.show()
scrollwindow.add(viewport)
scrollwindow.show()
self.model_name = model
self.win.set_default_size(700, 500)
self.register()
sensible_allocation = self.sensible_widget.get_allocation()
self.win.set_default_size(int(sensible_allocation.width * 0.95),
int(sensible_allocation.height * 0.95))
def sig_activate(self, *args):
self.view.treeview.emit_stop_by_name('row_activated')
self.win.response(gtk.RESPONSE_OK)
return True
def destroy(self):
self.screen.destroy()
self.win.destroy()
NoModal.destroy(self)
def show(self):
self.win.show()
common.center_window(self.win, self.parent, self.sensible_widget)
def hide(self):
self.win.hide()
def response(self, win, response_id):
res = None
if response_id == gtk.RESPONSE_OK:
res = [r.id for r in self.screen.selected_records]
elif response_id == gtk.RESPONSE_APPLY:
self.screen.search_filter(self.screen.screen_container.get_text())
return
elif response_id == gtk.RESPONSE_ACCEPT:
screen = Screen(self.model_name, domain=self.domain,
context=self.context, mode=['form'])
#.........这里部分代码省略.........
示例3: One2Many
# 需要导入模块: from tryton.gui.window.view_form.screen import Screen [as 别名]
# 或者: from tryton.gui.window.view_form.screen.Screen import destroy [as 别名]
#.........这里部分代码省略.........
def _color_widget(self):
if hasattr(self.screen.current_view, "treeview"):
return self.screen.current_view.treeview
return super(One2Many, self)._color_widget()
def on_keypress(self, widget, event):
if (event.keyval == gtk.keysyms.F3) and self.but_new.get_property("sensitive"):
self._sig_new(widget)
return True
if event.keyval == gtk.keysyms.F2 and widget == self.screen.widget:
self._sig_edit(widget)
return True
if (
event.keyval in (gtk.keysyms.Delete, gtk.keysyms.KP_Delete)
and widget == self.screen.widget
and self.but_del.get_property("sensitive")
):
self._sig_remove(widget)
return True
if event.keyval == gtk.keysyms.Insert and widget == self.screen.widget:
self._sig_undelete(widget)
return True
if self.attrs.get("add_remove"):
editable = self.wid_text.get_editable()
activate_keys = [gtk.keysyms.Tab, gtk.keysyms.ISO_Left_Tab]
if not self.wid_completion:
activate_keys.append(gtk.keysyms.Return)
if widget == self.wid_text and event.keyval in activate_keys and editable and self.wid_text.get_text():
self._sig_add()
self.wid_text.grab_focus()
return False
def destroy(self):
self.screen.destroy()
def _on_activate(self):
self._sig_edit()
def switch_view(self, widget):
self.screen.switch_view()
self.color_set(self.color_name)
@property
def modified(self):
return self.screen.current_view.modified
def color_set(self, name):
super(One2Many, self).color_set(name)
widget = self._color_widget()
# if the style to apply is different from readonly then insensitive
# cellrenderers should use the default insensitive color
if name != "readonly":
widget.modify_text(gtk.STATE_INSENSITIVE, self.colors["text_color_insensitive"])
def _readonly_set(self, value):
self._readonly = value
self._set_button_sensitive()
def _set_button_sensitive(self):
access = common.MODELACCESS[self.screen.model_name]
if self.record and self.field:
field_size = self.record.expr_eval(self.attrs.get("size"))
o2m_size = len(self.field.get_eval(self.record))
size_limit = field_size is not None and o2m_size >= field_size >= 0
else:
示例4: Form
# 需要导入模块: from tryton.gui.window.view_form.screen import Screen [as 别名]
# 或者: from tryton.gui.window.view_form.screen.Screen import destroy [as 别名]
#.........这里部分代码省略.........
if self.screen.current_view.view_type == 'form':
self.sig_new(None, autosave=False)
if self.screen.current_view.view_type \
in ('tree', 'graph', 'calendar'):
self.screen.search_filter()
self.update_revision()
def get_toolbars(self):
try:
return RPCExecute('model', self.model, 'view_toolbar_get',
context=self.screen.context)
except RPCException:
return {}
def widget_get(self):
return self.screen.widget
def __eq__(self, value):
if not value:
return False
if not isinstance(value, Form):
return False
return (self.model == value.model
and self.res_id == value.res_id
and self.domain == value.domain
and self.mode == value.mode
and self.view_ids == value.view_ids
and self.screen.context == value.screen.context
and self.name == value.name
and self.screen.limit == value.screen.limit
and self.screen.search_value == value.screen.search_value)
def destroy(self):
self.screen.destroy()
def sig_attach(self, widget=None):
record = self.screen.current_record
if not record or record.id < 0:
return
Attachment(record,
lambda: self.update_attachment_count(reload=True))
def update_attachment_count(self, reload=False):
record = self.screen.current_record
if record:
attachment_count = record.get_attachment_count(reload=reload)
else:
attachment_count = 0
self._attachment_count(None, attachment_count)
def _attachment_count(self, widget, signal_data):
label = _('Attachment(%d)') % signal_data
self.buttons['attach'].set_label(label)
if signal_data:
self.buttons['attach'].set_stock_id('tryton-attachment-hi')
else:
self.buttons['attach'].set_stock_id('tryton-attachment')
record = self.screen.current_record
self.buttons['attach'].props.sensitive = bool(
record.id >= 0 if record else False)
def sig_note(self, widget=None):
record = self.screen.current_record
if not record or record.id < 0:
return
示例5: Many2Many
# 需要导入模块: from tryton.gui.window.view_form.screen import Screen [as 别名]
# 或者: from tryton.gui.window.view_form.screen.Screen import destroy [as 别名]
#.........这里部分代码省略.........
def _color_widget(self):
if hasattr(self.screen.current_view, 'widget_tree'):
return self.screen.current_view.widget_tree
return super(Many2Many, self)._color_widget()
def grab_focus(self):
return self.wid_text.grab_focus()
def on_keypress(self, widget, event):
editable = self.wid_text.get_editable()
activate_keys = [gtk.keysyms.Tab, gtk.keysyms.ISO_Left_Tab]
if not self.wid_completion:
activate_keys.append(gtk.keysyms.Return)
if event.keyval == gtk.keysyms.F3:
self._sig_add()
return True
if event.keyval == gtk.keysyms.F2 \
and widget == self.screen.widget:
self._sig_edit()
return True
if event.keyval in (gtk.keysyms.Delete, gtk.keysyms.KP_Delete) \
and widget == self.screen.widget:
self._sig_remove()
return True
if (widget == self.wid_text
and event.keyval in activate_keys
and editable
and self.wid_text.get_text()):
self._sig_add()
self.wid_text.grab_focus()
return False
def destroy(self):
self.screen.destroy()
self.widget.destroy()
del self.widget
def color_set(self, name):
super(Many2Many, self).color_set(name)
widget = self._color_widget()
# if the style to apply is different from readonly then insensitive
# cellrenderers should use the default insensitive color
if name != 'readonly':
widget.modify_text(gtk.STATE_INSENSITIVE,
self.colors['text_color_insensitive'])
def _sig_add(self, *args, **kwargs):
if not self.focus_out:
return
domain = self.field.domain_get(self.record)
context = self.field.context_get(self.record)
value = self.wid_text.get_text()
self.focus_out = False
try:
if value:
dom = [('rec_name', 'ilike', '%' + value + '%'), domain]
else:
dom = domain
ids = RPCExecute('model', self.attrs['relation'], 'search',
dom, 0, CONFIG['client.limit'], None, context=context)
except RPCException:
self.focus_out = True
return False
示例6: Preference
# 需要导入模块: from tryton.gui.window.view_form.screen import Screen [as 别名]
# 或者: from tryton.gui.window.view_form.screen.Screen import destroy [as 别名]
class Preference(NoModal):
"Preference window"
def __init__(self, user, callback):
NoModal.__init__(self)
self.callback = callback
self.win = gtk.Dialog(_('Preferences'), self.parent,
gtk.DIALOG_DESTROY_WITH_PARENT)
self.win.set_position(gtk.WIN_POS_CENTER_ON_PARENT)
self.win.set_has_separator(False)
self.win.set_icon(TRYTON_ICON)
self.accel_group = gtk.AccelGroup()
self.win.add_accel_group(self.accel_group)
self.but_cancel = self.win.add_button(gtk.STOCK_CANCEL,
gtk.RESPONSE_CANCEL)
self.but_ok = self.win.add_button(gtk.STOCK_OK, gtk.RESPONSE_OK)
self.but_ok.add_accelerator('clicked', self.accel_group,
gtk.keysyms.Return, gtk.gdk.CONTROL_MASK, gtk.ACCEL_VISIBLE)
self.win.set_default_response(gtk.RESPONSE_OK)
self.win.connect('response', self.response)
try:
view = RPCExecute('model', 'res.user',
'get_preferences_fields_view')
except RPCException:
self.win.destroy()
self.win = None
return
title = gtk.Label(_('Edit User Preferences'))
title.show()
self.win.vbox.pack_start(title, expand=False, fill=True)
self.screen = Screen('res.user', mode=[])
# Reset readonly set automaticly by MODELACCESS
self.screen.readonly = False
self.screen.group.readonly = False
self.screen.group.skip_model_access = True
self.screen.add_view(view)
self.screen.switch_view()
self.screen.new(default=False)
try:
preferences = RPCExecute('model', 'res.user', 'get_preferences',
False)
except RPCException:
self.win.destroy()
self.win = None
return
self.screen.current_record.set(preferences)
self.screen.current_record.id = rpc._USER
self.screen.current_record.validate(softvalidation=True)
self.screen.display(set_cursor=True)
self.screen.widget.show()
self.win.vbox.pack_start(self.screen.widget)
self.win.set_title(_('Preference'))
width, height = self.parent.get_size()
self.win.set_default_size(int(width * 0.9), int(height * 0.9))
self.register()
self.win.show()
def response(self, win, response_id):
if response_id == gtk.RESPONSE_OK:
if self.screen.current_record.validate():
vals = copy.copy(self.screen.get())
if 'password' in vals:
password = common.ask(_('Current Password:'),
visibility=False)
if not password:
return
else:
password = False
try:
RPCExecute('model', 'res.user', 'set_preferences',
vals, password)
except RPCException:
return
self.parent.present()
self.destroy()
self.callback()
def destroy(self):
self.screen.destroy()
self.win.destroy()
NoModal.destroy(self)
示例7: One2Many
# 需要导入模块: from tryton.gui.window.view_form.screen import Screen [as 别名]
# 或者: from tryton.gui.window.view_form.screen.Screen import destroy [as 别名]
#.........这里部分代码省略.........
self.screen.signal_connect(self, 'record-message', self._sig_label)
self.widget.pack_start(self.screen.widget, expand=True, fill=True)
self.screen.widget.connect('key_press_event', self.on_keypress)
if self.attrs.get('add_remove'):
self.wid_text.connect('key_press_event', self.on_keypress)
def _color_widget(self):
if hasattr(self.screen.current_view, 'widget_tree'):
return self.screen.current_view.widget_tree
return super(One2Many, self)._color_widget()
def grab_focus(self):
return self.screen.widget.grab_focus()
def on_keypress(self, widget, event):
if (event.keyval == gtk.keysyms.F3) \
and self.but_new.get_property('sensitive'):
self._sig_new(widget)
return False
if event.keyval == gtk.keysyms.F2 \
and widget == self.screen.widget:
self._sig_edit(widget)
return False
if event.keyval in (gtk.keysyms.Delete, gtk.keysyms.KP_Delete) \
and widget == self.screen.widget:
self._sig_remove(widget)
return False
if event.keyval == gtk.keysyms.Insert and widget == self.screen.widget:
self._sig_undelete(widget)
return False
def destroy(self):
self.screen.destroy()
def _on_activate(self):
self._sig_edit()
def switch_view(self, widget):
self.screen.switch_view()
self.color_set(self.color_name)
@property
def modified(self):
return self.screen.current_view.modified
def color_set(self, name):
super(One2Many, self).color_set(name)
widget = self._color_widget()
# if the style to apply is different from readonly then insensitive
# cellrenderers should use the default insensitive color
if name != 'readonly':
widget.modify_text(gtk.STATE_INSENSITIVE,
self.colors['text_color_insensitive'])
def _readonly_set(self, value):
self._readonly = value
self.but_new.set_sensitive(not value)
self.but_del.set_sensitive(not value)
self.but_undel.set_sensitive(not value)
if self.attrs.get('add_remove'):
self.wid_text.set_sensitive(not value)
self.but_add.set_sensitive(not value)
self.but_remove.set_sensitive(not value)
示例8: One2Many
# 需要导入模块: from tryton.gui.window.view_form.screen import Screen [as 别名]
# 或者: from tryton.gui.window.view_form.screen.Screen import destroy [as 别名]
#.........这里部分代码省略.........
but_switch.props.sensitive = self.screen.number_of_views > 1
def on_keypress(self, widget, event):
if (event.keyval == gtk.keysyms.F3) \
and self.but_new.get_property('sensitive'):
self._sig_new(widget)
return True
if event.keyval == gtk.keysyms.F2 \
and widget == self.screen.widget:
self._sig_edit(widget)
return True
if (event.keyval in (gtk.keysyms.Delete, gtk.keysyms.KP_Delete)
and widget == self.screen.widget
and self.but_del.get_property('sensitive')):
self._sig_remove(widget)
return True
if event.keyval == gtk.keysyms.Insert and widget == self.screen.widget:
self._sig_undelete(widget)
return True
if self.attrs.get('add_remove'):
editable = self.wid_text.get_editable()
activate_keys = [gtk.keysyms.Tab, gtk.keysyms.ISO_Left_Tab]
if not self.wid_completion:
activate_keys.append(gtk.keysyms.Return)
if (widget == self.wid_text
and event.keyval in activate_keys
and editable
and self.wid_text.get_text()):
self._sig_add()
self.wid_text.grab_focus()
return False
def destroy(self):
self.screen.destroy()
def _on_activate(self):
self._sig_edit()
def switch_view(self, widget):
self.screen.switch_view()
@property
def modified(self):
return self.screen.current_view.modified
def _readonly_set(self, value):
self._readonly = value
self._set_button_sensitive()
def _set_button_sensitive(self):
access = common.MODELACCESS[self.screen.model_name]
if self.record and self.field:
field_size = self.record.expr_eval(self.attrs.get('size'))
o2m_size = len(self.field.get_eval(self.record))
size_limit = (field_size is not None
and o2m_size >= field_size >= 0)
else:
o2m_size = None
size_limit = False
self.but_new.set_sensitive(bool(
not self._readonly
and self.attrs.get('create', True)
and not size_limit
and access['create']))
示例9: Form
# 需要导入模块: from tryton.gui.window.view_form.screen import Screen [as 别名]
# 或者: from tryton.gui.window.view_form.screen.Screen import destroy [as 别名]
#.........这里部分代码省略.........
if self.screen.current_view.view_type \
in ('tree', 'graph', 'calendar'):
self.screen.search_filter()
if auto_refresh and int(auto_refresh):
gobject.timeout_add(int(auto_refresh) * 1000, self.sig_reload)
def get_toolbars(self):
try:
return RPCExecute('model', self.model, 'view_toolbar_get',
context=self.context)
except RPCException:
return {}
def widget_get(self):
return self.screen.widget
def __eq__(self, value):
if not value:
return False
if not isinstance(value, Form):
return False
return (self.model == value.model
and self.res_id == value.res_id
and self.domain == value.domain
and self.mode == value.mode
and self.view_ids == value.view_ids
and self.context == value.context
and self.name == value.name
and self.screen.limit == value.screen.limit
and self.auto_refresh == value.auto_refresh
and self.screen.search_value == value.screen.search_value)
def destroy(self):
self.screen.destroy()
self.screen = None
self.widget = None
#self.scrolledwindow.destroy()
#self.scrolledwindow = None
def sel_ids_get(self):
return self.screen.sel_ids_get()
def ids_get(self):
return self.screen.ids_get()
def id_get(self):
return self.screen.id_get()
def sig_attach(self, widget=None):
record_id = self.id_get()
if record_id is False or record_id < 0:
return
Attachment(self.model, record_id,
lambda: self.update_attachment_count(reload=True))
def update_attachment_count(self, reload=False):
record = self.screen.current_record
if record:
attachment_count = record.get_attachment_count(reload=reload)
else:
attachment_count = 0
self._attachment_count(None, attachment_count)
def _attachment_count(self, widget, signal_data):
label = _('Attachment(%d)') % signal_data
示例10: Many2Many
# 需要导入模块: from tryton.gui.window.view_form.screen import Screen [as 别名]
# 或者: from tryton.gui.window.view_form.screen.Screen import destroy [as 别名]
class Many2Many(WidgetInterface):
def __init__(self, field_name, model_name, attrs=None):
super(Many2Many, self).__init__(field_name, model_name, attrs=attrs)
self.widget = gtk.VBox(homogeneous=False, spacing=5)
self._readonly = True
hbox = gtk.HBox(homogeneous=False, spacing=0)
hbox.set_border_width(2)
label = gtk.Label(attrs.get('string', ''))
label.set_alignment(0.0, 0.5)
hbox.pack_start(label, expand=True, fill=True)
hbox.pack_start(gtk.VSeparator(), expand=False, fill=True)
tooltips = common.Tooltips()
self.wid_text = gtk.Entry()
self.wid_text.set_property('width_chars', 13)
self.wid_text.connect('activate', self._sig_activate)
self.wid_text.connect('focus-out-event', self._focus_out)
self.focus_out = True
hbox.pack_start(self.wid_text, expand=True, fill=True)
self.but_add = gtk.Button()
tooltips.set_tip(self.but_add, _('Add'))
self.but_add.connect('clicked', self._sig_add)
img_add = gtk.Image()
img_add.set_from_stock('tryton-list-add',
gtk.ICON_SIZE_SMALL_TOOLBAR)
img_add.set_alignment(0.5, 0.5)
self.but_add.add(img_add)
self.but_add.set_relief(gtk.RELIEF_NONE)
hbox.pack_start(self.but_add, expand=False, fill=False)
self.but_remove = gtk.Button()
tooltips.set_tip(self.but_remove, _('Remove <Del>'))
self.but_remove.connect('clicked', self._sig_remove)
img_remove = gtk.Image()
img_remove.set_from_stock('tryton-list-remove',
gtk.ICON_SIZE_SMALL_TOOLBAR)
img_remove.set_alignment(0.5, 0.5)
self.but_remove.add(img_remove)
self.but_remove.set_relief(gtk.RELIEF_NONE)
hbox.pack_start(self.but_remove, expand=False, fill=False)
hbox.set_focus_chain([self.wid_text])
tooltips.enable()
frame = gtk.Frame()
frame.add(hbox)
frame.set_shadow_type(gtk.SHADOW_OUT)
self.widget.pack_start(frame, expand=False, fill=True)
self.screen = Screen(attrs['relation'],
view_ids=attrs.get('view_ids', '').split(','),
mode=['tree'], views_preload=attrs.get('views', {}),
row_activate=self._on_activate)
self.screen.signal_connect(self, 'record-message', self._sig_label)
self.widget.pack_start(self.screen.widget, expand=True, fill=True)
self.screen.widget.connect('key_press_event', self.on_keypress)
self.wid_text.connect('key_press_event', self.on_keypress)
def _color_widget(self):
if hasattr(self.screen.current_view, 'widget_tree'):
return self.screen.current_view.widget_tree
return super(Many2Many, self)._color_widget()
def grab_focus(self):
return self.wid_text.grab_focus()
def on_keypress(self, widget, event):
if event.keyval == gtk.keysyms.F3:
self._sig_add()
return False
if event.keyval == gtk.keysyms.F2 \
and widget == self.screen.widget:
self._sig_edit()
if event.keyval in (gtk.keysyms.Delete, gtk.keysyms.KP_Delete) \
and widget == self.screen.widget:
self._sig_remove()
return False
def destroy(self):
self.screen.destroy()
self.widget.destroy()
del self.widget
def color_set(self, name):
super(Many2Many, self).color_set(name)
widget = self._color_widget()
# if the style to apply is different from readonly then insensitive
# cellrenderers should use the default insensitive color
if name != 'readonly':
widget.modify_text(gtk.STATE_INSENSITIVE,
#.........这里部分代码省略.........