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ú. """ 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