All pastes #146634 Raw Edit

Something

public text v1 · immutable
#146634 ·published 2006-08-23 19:19 UTC
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