def _obre_dades(self, widget=None): title = "Obre des d'un fitxer..." action = gtk.FILE_CHOOSER_ACTION_OPEN buttons = (gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_OPEN, gtk.RESPONSE_OK) dialog = gtk.FileChooserDialog(title, self.finestra, action, buttons) response = dialog.run() if response == gtk.RESPONSE_OK: try: domini.obre(dialog.get_filename()) self.emit('dades-actualitzades') except ErrorDades: dialog.destroy() message = "No s'han pogut obtenir les dades dels horaris!" d = gtk.MessageDialog(self.finestra, gtk.DIALOG_MODAL, gtk.MESSAGE_ERROR, gtk.BUTTONS_OK, message) d.run() d.destroy() else: dialog.destroy() self.desa_cau_horaris() else: dialog.destroy()
def _obre_dades(self, widget=None): title = "Obre des d'un fitxer..." action = Gtk.FileChooserAction.OPEN buttons = (Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL, Gtk.STOCK_OPEN, Gtk.ResponseType.OK) dialog = Gtk.FileChooserDialog(title=title, transient_for=self.finestra, action=action) dialog.add_buttons(*buttons) response = dialog.run() if response == Gtk.ResponseType.OK: try: domini.obre(dialog.get_filename()) self.emit('dades-actualitzades') except ErrorDades: dialog.destroy() message = "No s'han pogut obtenir les dades dels horaris!" d = Gtk.MessageDialog(transient_for=self.finestra, modal=True, message_type=Gtk.MessageType.ERROR, buttons=Gtk.ButtonsType.OK, text=message) d.run() d.destroy() else: dialog.destroy() self.desa_cau_horaris() else: dialog.destroy()
def __init__(self): gtk.Window.__init__(self) self.set_title("Gnank - Cercador d'horaris de la FIB") self.set_default_size(900, 600) icona = config.cami("gnank.png") if icona: gtk.window_set_default_icon_from_file(icona) icona = config.cami('web.png') if icona: pixbuf = gtk.gdk.pixbuf_new_from_file(icona) icon_set = gtk.IconSet(pixbuf) icon_factory = gtk.IconFactory() icon_factory.add('gnank-web', icon_set) icon_factory.add_default() area_finestra = gtk.VBox() accions = Accions(self) uimanager = gtk.UIManager() uimanager.insert_action_group(accions, 0) uimanager.add_ui_from_string(self._xmlui) self.add_accel_group(uimanager.get_accel_group()) self._uimanager = uimanager barra = uimanager.get_widget('/barra') area_finestra.pack_start(barra, False) area_carrera_align = gtk.Alignment() area_carrera_align.set_padding(6, 0, 0, 0) area_finestra.pack_start(area_carrera_align, expand=False) area_carrera = gtk.HBox() area_carrera_align.add(area_carrera) carrera = TriaCarrera() area_carrera.pack_start(carrera, expand=True, fill=True) area_treball = gtk.HPaned() area_treball.set_border_width(6) area_finestra.pack_start(area_treball, expand=True, fill=True) arbre = ArbreGrups() area_treball.pack1(arbre, resize=False, shrink=False) llista = LlistaHoraris(accions) area_llista = gtk.ScrolledWindow() area_llista.add(llista) area_llista.set_shadow_type(gtk.SHADOW_ETCHED_IN) area_llista.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) taula = TaulaHorari() area_taula = gtk.ScrolledWindow() area_taula.add(taula) area_taula.set_shadow_type(gtk.SHADOW_ETCHED_IN) area_taula.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) taula.actualitza() area_horaris = gtk.VPaned() area_horaris.pack1(area_llista, resize=True) area_horaris.pack2(area_taula, resize=True) area_treball.pack2(area_horaris, resize=True) self.add(area_finestra) area_finestra.show_all() cerca = FinestraCerca(self, llista) self.connect('destroy', accions.surt) arbre.connect('grups-seleccionats', llista.actualitza_grups_seleccionats) arbre.connect('grups-seleccionats', cerca.actualitza_grups) llista.connect('horari-seleccionat', taula.actualitza) accions.connect('dades-actualitzades', carrera.actualitza) accions.connect('dades-actualitzades', arbre.actualitza) accions.connect('dades-actualitzades', llista.actualitza) accions.connect('cerca-horaris', cerca.mostra) accions.connect("neteja", llista.actualitza) try: domini.obre(config.HORARIS_USUARI) accions.emit('dades-actualitzades') except ErrorDades: pass