def __init__(self, objeto = None, usuario = None): self.usuario = usuario self._objetoreciencreado = None self.objeto = objeto Ventana.__init__(self, 'postomatic.glade', objeto, self.usuario) self.fileabierto = None connections = {'b_negrita/clicked': self.negrita, 'b_cursiva/clicked': self.cursiva, 'b_subrayado/clicked': self.subrayado, 'b_cita/clicked': self.cita, 'b_codigo/clicked': self.codigo, 'b_imagen/clicked': self.imagen, 'b_lista/clicked': self.lista, 'b_listao/clicked': self.listao, 'b_enlace/clicked': self.enlace, 'b_color/clicked': self.color, 'b_size/clicked': self.size, 'nuevo1/activate': self.nuevo, 'abrir1/activate': self.abrir, 'guardar1/activate': self.guardar, 'guardar_como1/activate': self.guardar_como, 'salir1/activate': self.salir, 'cortar1/activate': self.cortar, 'copiar1/activate': self.copiar, 'pegar1/activate': self.pegar, 'borrar1/activate': self.borrar, 'copiar_todo1/activate': self.copiar_todo, 'b_undo/clicked': self.deshacer,} self.add_connections(connections) self.wids['tv_texto'].get_buffer().connect('changed', self.actualizar_vista_previa) self.wids['tv_preview'].connect("key_release_event", lambda w, e: self.wids['tv_texto'].get_buffer().set_text(w.get_buffer().get_text(*w.get_buffer().get_bounds()))) nombres_tags = self.crear_tags(self.wids['tv_preview'].get_buffer()) # Valores por defecto: self.wids['cbe_color'].child.set_text('blue') self.wids['cbe_size'].child.set_text('9') if (self.objeto != None and hasattr(self.objeto, "notas") and isinstance(self.objeto.notas, str)): self.wids['tv_texto'].get_buffer().set_text(self.objeto.notas) self.actualizar_vista_previa(None) self.texto_original = textview_get_all_text(self.wids['tv_texto']) self.wids['vpaned1'].set_position(0) gtk.main()
def actualizar_vista_previa(self, widget): """ Actualiza la vista previa, pero también se asegura de que si hay un objeto relacionado su campo notas también esté siempre actualizado y contenga lo mismo que aparece en el TextView de texto. """ # Si hay objeto, actualizo el campo notas primero if self.objeto: self.objeto.notas = textview_get_all_text(self.wids['tv_texto']) # Y posteriormente actualizo el textview de vista previa en sí. buf = self.wids['tv_texto'].get_buffer() sob, eob = buf.get_bounds() texto = buf.get_text(sob, eob) buf = self.wids['tv_preview'].get_buffer() buf.set_text("") self.insertar_con_imagenes_en_buffer(texto, buf) self.reemplazar_tags(buf)