Пример #1
0
    def __open_filechooser(self, widget):
        """
        Abre un filechooser para seleccionar un ícono.
        """
        mime = "image/*"
        if self.tipo == "sugar":
            mime = "image/svg+xml"

        from Widgets import My_FileChooser
        filechooser = My_FileChooser(parent_window=self.get_toplevel(),
            action_type=Gtk.FileChooserAction.OPEN,
            title="Seleccionar Icono . . .", path=self.proyecto["path"],
            mime_type=[mime])

        filechooser.connect('load', self.__emit_icon_path)
Пример #2
0
    def __open_filechooser(self, widget):
        """
        Abre un filechooser para seleccionar un ícono.
        """
        mime = "image/*"
        if self.tipo == "sugar":
            mime = "image/svg+xml"

        from Widgets import My_FileChooser
        filechooser = My_FileChooser(parent_window=self.get_toplevel(),
                                     action_type=Gtk.FileChooserAction.OPEN,
                                     title="Seleccionar Icono . . .",
                                     path=self.proyecto["path"],
                                     mime_type=[mime])

        filechooser.connect('load', self.__emit_icon_path)
Пример #3
0
    def guardar_archivo_como(self):
        """
        Abre un Filechooser para guardar como.
        """
        parent = self.get_parent().get_parent()
        parent = parent.get_parent().get_parent()
        proyecto = parent.get_parent().proyecto

        if proyecto:
            defaultpath = proyecto["path"]
        else:
            defaultpath = BatovideWorkSpace

        from Widgets import My_FileChooser
        filechooser = My_FileChooser(parent_window=self.get_toplevel(),
            action_type=Gtk.FileChooserAction.SAVE,
            title="Guardar Archivo Como . . .", path=defaultpath)

        filechooser.connect('load', self.__guardar_como)
Пример #4
0
    def guardar_archivo_como(self):
        """
        Abre un Filechooser para guardar como.
        """

        proyecto = self.get_parent().get_parent().get_parent().get_parent(
        ).get_parent().proyecto

        if proyecto:
            defaultpath = proyecto["path"]

        else:
            defaultpath = BatovideWorkSpace

        filechooser = My_FileChooser(parent_window=self.get_toplevel(),
                                     action_type=gtk.FILE_CHOOSER_ACTION_SAVE,
                                     title="Guardar archivo como...",
                                     path=defaultpath)

        filechooser.connect('load', self.__guardar_como)
Пример #5
0
    def guardar_archivo_como(self):
        """
        Abre un Filechooser para guardar como.
        """

        proyecto = self.get_parent().get_parent(
            ).get_parent().get_parent().get_parent().proyecto

        if proyecto:
            defaultpath = proyecto["path"]

        else:
            defaultpath = BatovideWorkSpace

        filechooser = My_FileChooser(
            parent_window=self.get_toplevel(),
            action_type=gtk.FILE_CHOOSER_ACTION_SAVE,
            title="Guardar archivo como...",
            path=defaultpath)

        filechooser.connect('load', self.__guardar_como)
Пример #6
0
    def __cargar_lista(self, widget, indice):
        """
        Recibe el indice seleccionado en el menu de toolbarlist y
        carga la lista correspondiente.

        Esto es solo para JAMedia no embebido ya que cuando JAMedia
        esta embebida, no posee la toolbarlist.
        """

        model, iter = self.lista_de_reproduccion.get_selection().get_selected()
        ultimopath = False

        if model and iter:
            valor = model.get_value(iter, 2)

            if valor:
                from Globales import describe_uri

                descripcion = describe_uri(valor)

                if descripcion:
                    if descripcion[2]:
                        ultimopath = valor

        map(self.__ocultar, [
            self.toolbar_accion,
            self.toolbaraddstream])

        self.toolbar_list.boton_agregar.hide()

        from Globales import get_data_directory
        from Globales import get_my_files_directory
        from Globales import get_tube_directory
        from Globales import get_audio_directory
        from Globales import get_video_directory

        if indice == 0:
            archivo = os.path.join(
                get_data_directory(),
                'JAMediaRadio.JAMedia')

            self.__seleccionar_lista_de_stream(archivo, "JAM-Radio")

        elif indice == 1:
            # HACK: Tv no funciona con JAMediaReproductor.
            #if self.player == self.jamediareproductor:
            #    self.switch_reproductor(None, "MplayerReproductor")

            archivo = os.path.join(
                get_data_directory(),
                'JAMediaTV.JAMedia')

            self.__seleccionar_lista_de_stream(archivo, "JAM-TV")

        elif indice == 2:
            archivo = os.path.join(
                get_data_directory(),
                'MisRadios.JAMedia')

            self.__seleccionar_lista_de_stream(archivo, "Radios")
            self.toolbar_list.boton_agregar.show()

        elif indice == 3:
            # HACK: Tv no funciona con JAMediaReproductor.
            #if self.player == self.jamediareproductor:
            #    self.switch_reproductor(None, "MplayerReproductor")

            archivo = os.path.join(
                get_data_directory(),
                'MisTvs.JAMedia')

            self.__seleccionar_lista_de_stream(archivo, "TVs")
            self.toolbar_list.boton_agregar.show()

        elif indice == 4:
            # HACK: Tv no funciona con JAMediaReproductor.
            #if self.player == self.jamediareproductor:
            #    self.switch_reproductor(None, "MplayerReproductor")

            archivo = os.path.join(
                get_data_directory(),
                'JAMediaWebCams.JAMedia')

            self.__seleccionar_lista_de_stream(archivo, "WebCams")
            #self.toolbar_list.boton_agregar.show()

        elif indice == 5:
            self.__seleccionar_lista_de_archivos(
                get_my_files_directory(),
                "Archivos")

        elif indice == 6:
            self.__seleccionar_lista_de_archivos(
                get_tube_directory(),
                "JAM-Tube")

        elif indice == 7:
            self.__seleccionar_lista_de_archivos(
                get_audio_directory(),
                "JAM-Audio")

        elif indice == 8:
            self.__seleccionar_lista_de_archivos(
                get_video_directory(),
                "JAM-Video")

        elif indice == 9:
            from Widgets import My_FileChooser

            directorio = None

            if ultimopath:
                directorio = "file://%s" % os.path.dirname(ultimopath)

            selector = My_FileChooser(
                parent=self.get_toplevel(),
                action=Gtk.FileChooserAction.OPEN,
                mime=["audio/*", "video/*"],
                title="Abrir Archivos.",
                path=directorio,
                filter=[])

            selector.connect(
                'archivos-seleccionados', self.__cargar_directorio)

            selector.run()

            if selector:
                selector.destroy()
Пример #7
0
    def __cargar_lista(self, widget, indice):
        """
        Recibe el indice seleccionado en el menu de toolbarlist y
        carga la lista correspondiente.

        Esto es solo para JAMedia no embebido ya que cuando JAMedia
        esta embebida, no posee la toolbarlist.
        """

        model, iter = self.lista_de_reproduccion.get_selection().get_selected()
        ultimopath = False

        if model and iter:
            valor = model.get_value(iter, 2)

            if valor:
                from Globales import describe_uri

                descripcion = describe_uri(valor)

                if descripcion:
                    if descripcion[2]:
                        ultimopath = valor

        map(self.__ocultar, [self.toolbar_accion, self.toolbaraddstream])

        self.toolbar_list.boton_agregar.hide()

        from Globales import get_data_directory
        from Globales import get_my_files_directory
        from Globales import get_tube_directory
        from Globales import get_audio_directory
        from Globales import get_video_directory

        if indice == 0:
            archivo = os.path.join(get_data_directory(),
                                   'JAMediaRadio.JAMedia')

            self.__seleccionar_lista_de_stream(archivo, "JAM-Radio")

        elif indice == 1:
            # HACK: Tv no funciona con JAMediaReproductor.
            #if self.player == self.jamediareproductor:
            #    self.switch_reproductor(None, "MplayerReproductor")

            archivo = os.path.join(get_data_directory(), 'JAMediaTV.JAMedia')

            self.__seleccionar_lista_de_stream(archivo, "JAM-TV")

        elif indice == 2:
            archivo = os.path.join(get_data_directory(), 'MisRadios.JAMedia')

            self.__seleccionar_lista_de_stream(archivo, "Radios")
            self.toolbar_list.boton_agregar.show()

        elif indice == 3:
            # HACK: Tv no funciona con JAMediaReproductor.
            #if self.player == self.jamediareproductor:
            #    self.switch_reproductor(None, "MplayerReproductor")

            archivo = os.path.join(get_data_directory(), 'MisTvs.JAMedia')

            self.__seleccionar_lista_de_stream(archivo, "TVs")
            self.toolbar_list.boton_agregar.show()

        elif indice == 4:
            # HACK: Tv no funciona con JAMediaReproductor.
            #if self.player == self.jamediareproductor:
            #    self.switch_reproductor(None, "MplayerReproductor")

            archivo = os.path.join(get_data_directory(),
                                   'JAMediaWebCams.JAMedia')

            self.__seleccionar_lista_de_stream(archivo, "WebCams")
            #self.toolbar_list.boton_agregar.show()

        elif indice == 5:
            self.__seleccionar_lista_de_archivos(get_my_files_directory(),
                                                 "Archivos")

        elif indice == 6:
            self.__seleccionar_lista_de_archivos(get_tube_directory(),
                                                 "JAM-Tube")

        elif indice == 7:
            self.__seleccionar_lista_de_archivos(get_audio_directory(),
                                                 "JAM-Audio")

        elif indice == 8:
            self.__seleccionar_lista_de_archivos(get_video_directory(),
                                                 "JAM-Video")

        elif indice == 9:
            from Widgets import My_FileChooser

            directorio = None

            if ultimopath:
                directorio = "file://%s" % os.path.dirname(ultimopath)

            selector = My_FileChooser(parent=self.get_toplevel(),
                                      action=Gtk.FileChooserAction.OPEN,
                                      mime=["audio/*", "video/*"],
                                      title="Abrir Archivos.",
                                      path=directorio,
                                      filter=[])

            selector.connect('archivos-seleccionados',
                             self.__cargar_directorio)

            selector.run()

            if selector:
                selector.destroy()
Пример #8
0
    def set_accion_proyecto(self, widget, accion):
        """
        Cuando se hace click en la toolbar de proyecto o
        se manda ejecutar una acción desde el menú.
        """
        
        # FIXME: Cualquier acción en las toolbars o menu,
        # debe detener las ejecuciones en marcha?.

        if accion == "Nuevo Proyecto":
            dialog = DialogoProyecto(
                parent_window = self.get_toplevel(),
                title = "Crear nuevo proyecto")
            
            response = dialog.run()
            
            nueveoproyecto = False
            
            if Gtk.ResponseType(response) == Gtk.ResponseType.ACCEPT:
                nueveoproyecto = dialog.get_proyecto()
                
            dialog.destroy()
            
            ### El nuevo Proyecto se crea solo cuando se ha cerrado el anterior.
            if nueveoproyecto:
                anterior_cerrado = True
        
                if self.proyecto:
                    ### No se puede Crear un proyecto con el mismo nombre de uno existente
                    if nueveoproyecto["nombre"] in os.listdir(BatovideWorkSpace): return
                    anterior_cerrado = self.cerrar_proyecto()
        
                if anterior_cerrado:
                    self.proyecto = nueveoproyecto
                    self.__guardar_proyecto()
                    self.__load(self.proyecto)
                
        elif accion == "Editar Proyecto":
            if self.proyecto:
                dialog = DialogoProyecto(
                    parent_window = self.get_toplevel(),
                    title = "Editar Proyecto",
                    accion = "editar")
                    
                dialog.set_proyecto(self.proyecto)
                
                response = dialog.run()
                
                if Gtk.ResponseType(response) == Gtk.ResponseType.ACCEPT:
                    self.proyecto = dialog.get_proyecto()
                    self.__guardar_proyecto()
                    self.__load(self.proyecto)
                    
                dialog.destroy()
                
        elif accion == "Abrir Proyecto":
            filechooser = My_FileChooser(
                parent_window = self.get_toplevel(),
                action_type = Gtk.FileChooserAction.OPEN,
                filter_type = ["*.ide"],
                title = "Abrir proyecto",
                path = BatovideWorkSpace)
                
            filechooser.connect('load', self.__abrir_proyecto)

        elif accion == "Guardar Proyecto":
            self.__guardar_archivos_de_proyecto()
            self.__guardar_proyecto()
        
        elif accion == "Cerrar Proyecto":
            if self.cerrar_proyecto(): self.proyecto = {}
        
        elif accion == "Ejecutar Proyecto":
            if self.proyecto:
                main = os.path.join(self.proyecto["path"], self.proyecto["main"])
                self.workpanel.ejecutar(archivo=main)
            
        elif accion == "Detener Ejecución":
            self.workpanel.detener_ejecucion()
        
        elif accion == "Construir":
            from Widget_Setup import DialogoSetup
            
            dialog = DialogoSetup(
                parent_window = self.get_toplevel(),
                proyecto = self.proyecto)
        
            respuesta = dialog.run()
            
            dialog.destroy()

            if respuesta == Gtk.ResponseType.ACCEPT:
                pass
            
        else:
            print "Acccion sin asignar en BasePanel", accion
Пример #9
0
    def set_accion_proyecto(self, widget, accion):
        """
        Cuando se hace click en la toolbar de proyecto o
        se manda ejecutar una acción desde el menú.
        """
        if accion == "Nuevo Proyecto":
            from DialogoProyecto import DialogoProyecto
            dialog = DialogoProyecto(parent_window=self.get_toplevel(),
                                     title="Crear Nuevo Proyecto")

            response = dialog.run()
            nuevoproyecto = False
            if Gtk.ResponseType(response) == Gtk.ResponseType.ACCEPT:
                nuevoproyecto = dialog.get_proyecto()

            dialog.destroy()
            # El Proyecto se crea solo cuando se ha cerrado el anterior.
            if nuevoproyecto:
                if nuevoproyecto["nombre"] in os.listdir(BatovideWorkSpace):
                    print "FIXME: Ya existe un Proyecto con este Nombre"
                    return

                anterior_cerrado = self.cerrar_proyecto()
                if anterior_cerrado:
                    self.__guardar_proyecto(nuevoproyecto)
                    self.__abrir_proyecto(
                        None,
                        os.path.join(nuevoproyecto["path"], "proyecto.ide"))

        elif accion == "Editar Proyecto":
            if self.proyecto:
                from DialogoProyecto import DialogoProyecto
                dialog = DialogoProyecto(parent_window=self.get_toplevel(),
                                         title="Editar Proyecto",
                                         accion="editar")

                dialog.set_proyecto(self.proyecto)
                response = dialog.run()

                if Gtk.ResponseType(response) == Gtk.ResponseType.ACCEPT:
                    nuevoproyecto = dialog.get_proyecto()
                    self.__guardar_proyecto(nuevoproyecto)
                    self.__abrir_proyecto(
                        None,
                        os.path.join(nuevoproyecto["path"], "proyecto.ide"))

                dialog.destroy()

        elif accion == "Abrir Proyecto":
            from Widgets import My_FileChooser
            filechooser = My_FileChooser(
                parent_window=self.get_toplevel(),
                action_type=Gtk.FileChooserAction.OPEN,
                filter_type=["*.ide"],
                title="Abrir proyecto",
                path=BatovideWorkSpace)
            filechooser.connect('load', self.__abrir_proyecto)

        elif accion == "Guardar Proyecto":
            self.__guardar_archivos_de_proyecto()
            self.__guardar_proyecto(self.proyecto)

        elif accion == "Cerrar Proyecto":
            if self.cerrar_proyecto():
                self.proyecto = {}

        elif accion == "Ejecutar Proyecto":
            if self.proyecto:
                main = os.path.join(self.proyecto["path"],
                                    self.proyecto["main"])
                self.workpanel.ejecutar(archivo=main)

        elif accion == "Detener Ejecución":
            self.workpanel.detener_ejecucion()

        elif accion == "Construir":
            self.get_toplevel().set_sensitive(False)
            from Widget_Setup import DialogoSetup
            dialog = DialogoSetup(parent_window=self.get_toplevel(),
                                  proyecto=self.proyecto)

            dialog.run()
            dialog.destroy()
            self.get_toplevel().set_sensitive(True)

        else:
            print "Acccion sin asignar en BasePanel", accion
Пример #10
0
    def set_accion_proyecto(self, widget, accion):
        """
        Cuando se hace click en la toolbar de proyecto o
        se manda ejecutar una acción desde el menú.
        """

        # FIXME: Cualquier acción en las toolbars o menu,
        # debe detener las ejecuciones en marcha?.

        if accion == "Nuevo Proyecto":
            dialog = DialogoProyecto(parent_window=self.get_toplevel(),
                                     title="Crear nuevo proyecto")

            response = dialog.run()

            nueveoproyecto = False

            if gtk.ResponseType(response) == gtk.RESPONSE_ACCEPT:
                nueveoproyecto = dialog.get_proyecto()

            dialog.destroy()

            # El nuevo Proyecto se crea solo cuando se ha cerrado el anterior
            if nueveoproyecto:
                anterior_cerrado = True

                if self.proyecto:
                    # No se puede Crear un proyecto con el mismo nombre
                    # de uno existente
                    if nueveoproyecto["nombre"] in os.listdir(
                            BatovideWorkSpace):
                        return

                    anterior_cerrado = self.cerrar_proyecto()

                if anterior_cerrado:
                    self.proyecto = nueveoproyecto
                    self.__guardar_proyecto()
                    self.__load(self.proyecto)

        elif accion == "Editar Proyecto":
            if self.proyecto:
                dialog = DialogoProyecto(parent_window=self.get_toplevel(),
                                         title="Editar proyecto",
                                         accion="editar")

                dialog.set_proyecto(self.proyecto)

                response = dialog.run()

                if gtk.ResponseType(response) == gtk.RESPONSE_ACCEPT:
                    self.proyecto = dialog.get_proyecto()
                    self.__guardar_proyecto()
                    self.__load(self.proyecto)

                dialog.destroy()

        elif accion == "Abrir Proyecto":
            filechooser = My_FileChooser(
                parent_window=self.get_toplevel(),
                action_type=gtk.FILE_CHOOSER_ACTION_OPEN,
                filter_type=["*.ide"],
                title="Abrir proyecto",
                path=BatovideWorkSpace)

            filechooser.connect('load', self.__abrir_proyecto)

        elif accion == "Guardar Proyecto":
            self.__guardar_archivos_de_proyecto()
            self.__guardar_proyecto()

        elif accion == "Cerrar Proyecto":
            if self.cerrar_proyecto():
                self.proyecto = {}

        elif accion == "Ejecutar Proyecto":
            if self.proyecto:
                main = os.path.join(self.proyecto["path"],
                                    self.proyecto["main"])
                self.workpanel.ejecutar(archivo=main)

        elif accion == "Detener Ejecución":
            self.workpanel.detener_ejecucion()

        elif accion == "Construir":
            from Widget_Setup import DialogoSetup

            dialog = DialogoSetup(parent_window=self.get_toplevel(),
                                  proyecto=self.proyecto)

            respuesta = dialog.run()

            dialog.destroy()

            if respuesta == gtk.RESPONSE_ACCEPT:
                pass

        else:
            print "Acccion sin asignar en BasePanel", accion
Пример #11
0
    def set_accion_proyecto(self, widget, accion):
        """
        Cuando se hace click en la toolbar de proyecto o
        se manda ejecutar una acción desde el menú.
        """
        if accion == "Nuevo Proyecto":
            from DialogoProyecto import DialogoProyecto
            dialog = DialogoProyecto(parent_window=self.get_toplevel(),
                title="Crear Nuevo Proyecto")

            response = dialog.run()
            nuevoproyecto = False
            if Gtk.ResponseType(response) == Gtk.ResponseType.ACCEPT:
                nuevoproyecto = dialog.get_proyecto()

            dialog.destroy()
            # El Proyecto se crea solo cuando se ha cerrado el anterior.
            if nuevoproyecto:
                if nuevoproyecto["nombre"] in os.listdir(BatovideWorkSpace):
                    print "FIXME: Ya existe un Proyecto con este Nombre"
                    return

                anterior_cerrado = self.cerrar_proyecto()
                if anterior_cerrado:
                    self.__guardar_proyecto(nuevoproyecto)
                    self.__abrir_proyecto(None,
                        os.path.join(nuevoproyecto["path"], "proyecto.ide"))

        elif accion == "Editar Proyecto":
            if self.proyecto:
                from DialogoProyecto import DialogoProyecto
                dialog = DialogoProyecto(parent_window=self.get_toplevel(),
                    title="Editar Proyecto", accion="editar")

                dialog.set_proyecto(self.proyecto)
                response = dialog.run()

                if Gtk.ResponseType(response) == Gtk.ResponseType.ACCEPT:
                    nuevoproyecto = dialog.get_proyecto()
                    self.__guardar_proyecto(nuevoproyecto)
                    self.__abrir_proyecto(None,
                        os.path.join(nuevoproyecto["path"], "proyecto.ide"))

                dialog.destroy()

        elif accion == "Abrir Proyecto":
            from Widgets import My_FileChooser
            filechooser = My_FileChooser(parent_window=self.get_toplevel(),
                action_type=Gtk.FileChooserAction.OPEN, filter_type=["*.ide"],
                title="Abrir proyecto", path=BatovideWorkSpace)
            filechooser.connect('load', self.__abrir_proyecto)

        elif accion == "Guardar Proyecto":
            self.__guardar_archivos_de_proyecto()
            self.__guardar_proyecto(self.proyecto)

        elif accion == "Cerrar Proyecto":
            if self.cerrar_proyecto():
                self.proyecto = {}

        elif accion == "Ejecutar Proyecto":
            if self.proyecto:
                main = os.path.join(self.proyecto["path"],
                    self.proyecto["main"])
                self.workpanel.ejecutar(archivo=main)

        elif accion == "Detener Ejecución":
            self.workpanel.detener_ejecucion()

        elif accion == "Construir":
            self.get_toplevel().set_sensitive(False)
            from Widget_Setup import DialogoSetup
            dialog = DialogoSetup(parent_window=self.get_toplevel(),
                proyecto=self.proyecto)

            dialog.run()
            dialog.destroy()
            self.get_toplevel().set_sensitive(True)

        else:
            print "Acccion sin asignar en BasePanel", accion