rendered paste body def __update_mirrors(self):
"""
Update other mirrors when one mirror is edited.
@param self: Reference to the TemplateProcessor instance.
@type self: A TemplateProcessor object.
"""
begin_mark, end_mark = self.placeholder_dictionary[self.index]
mirror_list = []
for key, value in self.mirror_dictionary.items():
if value == self.mirror_dictionary[(begin_mark, end_mark)]:
if key != (begin_mark, end_mark):
mirror_list.append(key)
if mirror_list:
self.editor.textbuffer.handler_block(self.text_id2)
self.editor.textbuffer.begin_user_action()
for placeholder in mirror_list:
begin_position = self.editor.textbuffer.get_iter_at_mark(begin_mark)
end_position = self.editor.textbuffer.get_iter_at_mark(end_mark)
begin = self.editor.textbuffer.get_iter_at_mark(placeholder[0])
end = self.editor.textbuffer.get_iter_at_mark(placeholder[1])
self.editor.textbuffer.begin_user_action()
self.editor.textbuffer.delete(begin, end)
self.editor.textbuffer.end_user_action()
begin_position = self.editor.textbuffer.get_iter_at_mark(begin_mark)
end_position = self.editor.textbuffer.get_iter_at_mark(end_mark)
begin = self.editor.textbuffer.get_iter_at_mark(placeholder[0])
end = self.editor.textbuffer.get_iter_at_mark(placeholder[1])
self.editor.textbuffer.begin_user_action()
self.editor.textbuffer.insert_range(begin, begin_position, end_position)
self.editor.textbuffer.end_user_action()
debug("begin")
begin_position = self.editor.textbuffer.get_iter_at_mark(begin_mark)
end_position = self.editor.textbuffer.get_iter_at_mark(end_mark)
begin = self.editor.textbuffer.get_iter_at_mark(placeholder[0])
end = self.editor.textbuffer.get_iter_at_mark(placeholder[1])
self.editor.textbuffer.remove_tag(self.pre_tag, begin, end)
self.editor.textbuffer.remove_tag(self.editing_tag, begin, end)
self.editor.textbuffer.apply_tag(self.post_tag, begin, end)
self.editor.textbuffer.end_user_action()
self.editor.textbuffer.handler_unblock(self.text_id2)
return