本文整理汇总了Python中translate.storage.placeables.StringElem.delete_elem方法的典型用法代码示例。如果您正苦于以下问题:Python StringElem.delete_elem方法的具体用法?Python StringElem.delete_elem怎么用?Python StringElem.delete_elem使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类translate.storage.placeables.StringElem
的用法示例。
在下文中一共展示了StringElem.delete_elem方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: TextBox
# 需要导入模块: from translate.storage.placeables import StringElem [as 别名]
# 或者: from translate.storage.placeables.StringElem import delete_elem [as 别名]
#.........这里部分代码省略.........
# through to a place where it is handled below.
# * Or "Placeable" depending on the value of the XXX flag in the
# placeable's GUI info object
# First we check if we fall in any of the situations represented by
# the table above.
has_start_widget = has_end_widget = False
if hasattr(start_elem, 'gui_info'):
has_start_widget = start_elem.gui_info.has_start_widget()
has_end_widget = start_elem.gui_info.has_end_widget()
if cursor_pos == start_elem_offset:
position = 'a'
elif has_start_widget and cursor_pos == start_elem_offset+1:
position = 'b'
elif has_end_widget and cursor_pos == start_elem_offset + start_elem_len - 1:
position = 'c'
elif cursor_pos == start_elem_offset + start_elem_len:
position = 'd'
# If the current state is in the table, handle it
if position:
#logging.debug('(a)<<(b)content(c)>>(d) pos=%s' % (position))
if (position == 'a' and not key_is_delete) or (position == 'd' and key_is_delete):
# "N/A" fields in table
pass
elif (position == 'a' and key_is_delete) or (position == 'd' and not key_is_delete):
# "Placeable" fields
if (position == 'a' and (has_start_widget or not start_elem.iseditable)) or \
(position == 'd' and (has_end_widget or not start_elem.iseditable)):
deleted = start_elem.copy()
parent = self.elem.get_parent_elem(start_elem)
index = parent.elem_offset(start_elem)
self.elem.delete_elem(start_elem)
self.refresh_cursor_pos = start_elem_offset
start_offset = start_elem_offset
end_offset = start_elem_offset + start_elem_len
done = True
elif not start_elem.iseditable and position in ('b', 'c'):
# "*Nothing" fields
if start_elem.isfragile:
deleted = start_elem.copy()
parent = self.elem.get_parent_elem(start_elem)
index = parent.elem_offset(start_elem)
self.elem.delete_elem(start_elem)
self.refresh_cursor_pos = start_elem_offset
start_offset = start_elem_offset
end_offset = start_elem_offset + start_elem_len
done = True
# At this point we have checked for all cases except where
# position in ('b', 'c') for editable elements.
elif (position == 'c' and not key_is_delete) or (position == 'b' and key_is_delete):
# '@Delete "t"' and '@Delete "c"' fields; handled normally below
pass
elif (position == 'b' and not key_is_delete) or (position == 'c' and key_is_delete):
done = True
else:
raise Exception('Unreachable code reached. Please close the black hole nearby.')
#logging.debug('%s[%d] >===> %s[%d]' % (repr(start_elem), start_offset, repr(end_elem), end_offset))
if not done:
start_tree_offset = self.elem.gui_info.gui_to_tree_index(start_offset)
end_tree_offset = self.elem.gui_info.gui_to_tree_index(end_offset)