示例#1
0
 def ejecutar(self, archivo=None):
     """
     Ejecuta un archivo. Si no se pasa archivo,
     ejecuta el seleccionado en notebooksourceview.
     """
     if not archivo or archivo == None:
         # Cuando se ejecuta el archivo seleccionado.
         pagina = self.notebook_sourceview.get_current_page()
         view = self.notebook_sourceview.get_children(
         )[pagina].get_children()[0]
         archivo = view.archivo
         # Si el archivo tiene cambios sin guardar o nunca se guardó.
         if not archivo or archivo == None or \
             view.get_buffer().get_modified():
             dialog = DialogoAlertaSinGuardar(
                 parent_window=self.get_toplevel())
             respuesta = dialog.run()
             dialog.destroy()
             if respuesta == Gtk.ResponseType.ACCEPT:
                 self.guardar_archivo()
             elif respuesta == Gtk.ResponseType.CANCEL:
                 return
             elif respuesta == Gtk.ResponseType.CLOSE:
                 return
             archivo = view.archivo
         self.ejecucion_activa = "archivo"
         self.emit("ejecucion", self.ejecucion_activa, True)
     else:
         # Cuando se ejecuta el main de proyecto.
         source = None
         for view in self.get_archivos_de_proyecto(
                 self.get_parent().get_parent().proyecto["path"]):
             if view.archivo == archivo:
                 source = view
                 break
         if source:
             if source.get_buffer().get_modified():
                 dialog = DialogoAlertaSinGuardar(
                     parent_window=self.get_toplevel())
                 respuesta = dialog.run()
                 dialog.destroy()
                 if respuesta == Gtk.ResponseType.ACCEPT:
                     source.guardar()
                 elif respuesta == Gtk.ResponseType.CANCEL:
                     return
                 elif respuesta == Gtk.ResponseType.CLOSE:
                     return
         self.ejecucion_activa = "proyecto"
         self.emit("ejecucion", self.ejecucion_activa, True)
     if archivo:
         self.terminal.ejecutar(archivo)
示例#2
0
 def ejecutar(self, archivo=None):
     """
     Ejecuta un archivo. Si no se pasa archivo,
     ejecuta el seleccionado en notebooksourceview.
     """
     if not archivo or archivo == None:
         # Cuando se ejecuta el archivo seleccionado.
         pagina = self.notebook_sourceview.get_current_page()
         view = self.notebook_sourceview.get_children()[
             pagina].get_children()[0]
         archivo = view.archivo
         # Si el archivo tiene cambios sin guardar o nunca se guardó.
         if not archivo or archivo == None or \
             view.get_buffer().get_modified():
             dialog = DialogoAlertaSinGuardar(
                 parent_window=self.get_toplevel())
             respuesta = dialog.run()
             dialog.destroy()
             if respuesta == Gtk.ResponseType.ACCEPT:
                 self.guardar_archivo()
             elif respuesta == Gtk.ResponseType.CANCEL:
                 return
             elif respuesta == Gtk.ResponseType.CLOSE:
                 return
             archivo = view.archivo
         self.ejecucion_activa = "archivo"
         self.emit("ejecucion", self.ejecucion_activa, True)
     else:
         # Cuando se ejecuta el main de proyecto.
         source = None
         for view in self.get_archivos_de_proyecto(
             self.get_parent().get_parent().proyecto["path"]):
             if view.archivo == archivo:
                 source = view
                 break
         if source:
             if source.get_buffer().get_modified():
                 dialog = DialogoAlertaSinGuardar(
                     parent_window=self.get_toplevel())
                 respuesta = dialog.run()
                 dialog.destroy()
                 if respuesta == Gtk.ResponseType.ACCEPT:
                     source.guardar()
                 elif respuesta == Gtk.ResponseType.CANCEL:
                     return
                 elif respuesta == Gtk.ResponseType.CLOSE:
                     return
         self.ejecucion_activa = "proyecto"
         self.emit("ejecucion", self.ejecucion_activa, True)
     if archivo:
         self.terminal.ejecutar(archivo)
示例#3
0
    def set_accion(self, accion, valor=True):
        # Ejecuta acciones sobre el código.
        _buffer = self.get_buffer()
        if accion == "Deshacer":
            if _buffer.can_undo():
                _buffer.undo()

        elif accion == "Rehacer":
            if _buffer.can_redo():
                _buffer.redo()

        elif accion == "Seleccionar Todo":
            inicio, fin = _buffer.get_bounds()
            _buffer.select_range(inicio, fin)

        elif accion == "Copiar":
            clipboard = Gtk.Clipboard.get(Gdk.SELECTION_CLIPBOARD)
            if _buffer.get_selection_bounds():
                inicio, fin = _buffer.get_selection_bounds()
                texto = _buffer.get_text(inicio, fin, 0)
                clipboard.set_text(texto, -1)

        elif accion == "Pegar":
            clipboard = Gtk.Clipboard.get(Gdk.SELECTION_CLIPBOARD)
            texto = clipboard.wait_for_text()
            if texto != None:
                if _buffer.get_selection_bounds():
                    start, end = _buffer.get_selection_bounds()
                    texto_seleccion = _buffer.get_text(start, end, 0)
                    _buffer.delete(start, end)
                _buffer.insert_at_cursor(texto)

        elif accion == "Cortar":
            clipboard = Gtk.Clipboard.get(Gdk.SELECTION_CLIPBOARD)
            if _buffer.get_selection_bounds():
                start, end = _buffer.get_selection_bounds()
                texto_seleccion = _buffer.get_text(start, end, 0)
                _buffer.delete(start, end)
                clipboard.set_text(texto_seleccion, -1)

        elif accion == "Buscar Texto":
            try:
                inicio, fin = _buffer.get_selection_bounds()
                texto = _buffer.get_text(inicio, fin, 0)
            except:
                texto = None
            dialogo = DialogoBuscar(self, parent_window=self.get_toplevel(),
                title="Buscar Texto", texto=texto)
            dialogo.run()
            dialogo.destroy()

        elif accion == "Reemplazar Texto":
            texto = ""
            try:
                inicio, fin = _buffer.get_selection_bounds()
                texto = _buffer.get_text(inicio, fin, 0)
            except:
                texto = None
            dialogo = DialogoReemplazar(self,
                parent_window=self.get_toplevel(),
                title="Reemplazar Texto", texto=texto)
            dialogo.run()
            dialogo.destroy()

        elif accion == "Cerrar Archivo":
            if _buffer.get_modified():
                dialog = DialogoAlertaSinGuardar(
                    parent_window=self.get_toplevel())
                respuesta = dialog.run()
                dialog.destroy()
                if respuesta == Gtk.ResponseType.ACCEPT:
                    self.guardar()
                elif respuesta == Gtk.ResponseType.CANCEL:
                    return
                elif respuesta == Gtk.ResponseType.CLOSE:
                    self.__cerrar()
            else:
                self.__cerrar()

        elif accion == "Numeracion":
            self.set_show_line_numbers(valor)

        elif accion == "Identar":
            self.__identar()

        elif accion == "De Identar":
            self.__de_identar()

        elif accion == "Chequear":
            if self.lenguaje:
                if self.lenguaje.get_name() == "Python":
                    numeracion = self.get_show_line_numbers()
                    self.set_show_line_numbers(True)
                    self.get_toplevel().set_sensitive(False)
                    dialogo = DialogoErrores(self,
                        parent_window=self.get_toplevel())
                    dialogo.run()
                    dialogo.destroy()
                    self.set_show_line_numbers(numeracion)
                    self.get_toplevel().set_sensitive(True)
                    return

            dialogo = Gtk.Dialog(parent=self.get_toplevel(),
                flags=Gtk.DialogFlags.MODAL,
                buttons=["OK", Gtk.ResponseType.ACCEPT])
            dialogo.set_size_request(300, 100)
            dialogo.set_border_width(15)

            lab = "El Archivo no Contiene Código python\n"
            lab = "%s%s" % (lab, "o Todavía no ha Sido Guardado.")
            label = Gtk.Label(lab)
            label.show()

            dialogo.vbox.pack_start(label, True, True, 0)
            dialogo.run()
            dialogo.destroy()
示例#4
0
    def set_accion(self, accion, valor=True):
        # Ejecuta acciones sobre el código.
        _buffer = self.get_buffer()
        if accion == "Deshacer":
            if _buffer.can_undo():
                _buffer.undo()

        elif accion == "Rehacer":
            if _buffer.can_redo():
                _buffer.redo()

        elif accion == "Seleccionar Todo":
            inicio, fin = _buffer.get_bounds()
            _buffer.select_range(inicio, fin)

        elif accion == "Copiar":
            clipboard = Gtk.Clipboard.get(Gdk.SELECTION_CLIPBOARD)
            if _buffer.get_selection_bounds():
                inicio, fin = _buffer.get_selection_bounds()
                texto = _buffer.get_text(inicio, fin, 0)
                clipboard.set_text(texto, -1)

        elif accion == "Pegar":
            clipboard = Gtk.Clipboard.get(Gdk.SELECTION_CLIPBOARD)
            texto = clipboard.wait_for_text()
            if texto != None:
                if _buffer.get_selection_bounds():
                    start, end = _buffer.get_selection_bounds()
                    texto_seleccion = _buffer.get_text(start, end, 0)
                    _buffer.delete(start, end)
                _buffer.insert_at_cursor(texto)

        elif accion == "Cortar":
            clipboard = Gtk.Clipboard.get(Gdk.SELECTION_CLIPBOARD)
            if _buffer.get_selection_bounds():
                start, end = _buffer.get_selection_bounds()
                texto_seleccion = _buffer.get_text(start, end, 0)
                _buffer.delete(start, end)
                clipboard.set_text(texto_seleccion, -1)

        elif accion == "Buscar Texto":
            try:
                inicio, fin = _buffer.get_selection_bounds()
                texto = _buffer.get_text(inicio, fin, 0)
            except:
                texto = None
            dialogo = DialogoBuscar(self,
                                    parent_window=self.get_toplevel(),
                                    title="Buscar Texto",
                                    texto=texto)
            dialogo.run()
            dialogo.destroy()

        elif accion == "Reemplazar Texto":
            texto = ""
            try:
                inicio, fin = _buffer.get_selection_bounds()
                texto = _buffer.get_text(inicio, fin, 0)
            except:
                texto = None
            dialogo = DialogoReemplazar(self,
                                        parent_window=self.get_toplevel(),
                                        title="Reemplazar Texto",
                                        texto=texto)
            dialogo.run()
            dialogo.destroy()

        elif accion == "Cerrar Archivo":
            if _buffer.get_modified():
                dialog = DialogoAlertaSinGuardar(
                    parent_window=self.get_toplevel())
                respuesta = dialog.run()
                dialog.destroy()
                if respuesta == Gtk.ResponseType.ACCEPT:
                    self.guardar()
                elif respuesta == Gtk.ResponseType.CANCEL:
                    return
                elif respuesta == Gtk.ResponseType.CLOSE:
                    self.__cerrar()
            else:
                self.__cerrar()

        elif accion == "Numeracion":
            self.set_show_line_numbers(valor)

        elif accion == "Identar":
            self.__identar()

        elif accion == "De Identar":
            self.__de_identar()

        elif accion == "Chequear":
            if self.lenguaje:
                if self.lenguaje.get_name() == "Python":
                    numeracion = self.get_show_line_numbers()
                    self.set_show_line_numbers(True)
                    self.get_toplevel().set_sensitive(False)
                    dialogo = DialogoErrores(self,
                                             parent_window=self.get_toplevel())
                    dialogo.run()
                    dialogo.destroy()
                    self.set_show_line_numbers(numeracion)
                    self.get_toplevel().set_sensitive(True)
                    return

            dialogo = Gtk.Dialog(parent=self.get_toplevel(),
                                 flags=Gtk.DialogFlags.MODAL,
                                 buttons=["OK", Gtk.ResponseType.ACCEPT])
            dialogo.set_size_request(300, 100)
            dialogo.set_border_width(15)

            lab = "El Archivo no Contiene Código python\n"
            lab = "%s%s" % (lab, "o Todavía no ha Sido Guardado.")
            label = Gtk.Label(lab)
            label.show()

            dialogo.vbox.pack_start(label, True, True, 0)
            dialogo.run()
            dialogo.destroy()