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)
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)
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)
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)
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()
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()
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
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
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
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