Esempio n. 1
0
 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()
Esempio n. 2
0
	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()
Esempio n. 3
0
    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