Exemple #1
0
    def _begin_print_cb(self, operation, context):
        alcada_pagina = context.get_height()
        self._pagines = []
        pagina = []
        y = 0
        horaris = [self._horari_impressio(context, h) for h in
            sorted(domini.horaris_preferits(), reverse=True)]

        while len(horaris) > 0:
            horari = horaris.pop()
            alcada_horari = horari.alcada()
            if y + alcada_horari <= alcada_pagina:
                pagina.append(horari)
                y += alcada_horari
            else:
                horari_div = horari.divideix(alcada_pagina)
                if horari_div is None:
                    continue
                self._pagines.append(pagina)
                pagina = [horari_div[0]]
                y = horari_div[0].alcada()
                if horari_div[1]:
                    horaris.append(horari_div[1])

        self._pagines.append(pagina)
        operation.set_n_pages(len(self._pagines))
Exemple #2
0
    def imprimeix(self, widget=None):
        if not gtk_versio_2_10:
            return

        if len(domini.horaris_preferits()) == 0:
            d = gtk.MessageDialog(self._finestra, gtk.DIALOG_MODAL,
                    gtk.MESSAGE_WARNING, gtk.BUTTONS_OK,
                    "No hi ha horaris preferits per imprimir!")
            d.run()
            d.destroy()
            return

        po = gtk.PrintOperation()

        if self._settings != None:
            po.set_print_settings(self._settings)

        if self._page_setup != None:
            po.set_default_page_setup(self._page_setup)

        po.connect("begin-print", self._begin_print_cb)
        po.connect("draw-page", self._draw_page_cb)

        res = po.run(gtk.PRINT_OPERATION_ACTION_PRINT_DIALOG, self._finestra)

        if res == gtk.PRINT_OPERATION_RESULT_ERROR:
            d = gtk.MessageDialog(self._finestra, gtk.DIALOG_MODAL,
                    gtk.MESSAGE_ERROR, gtk.BUTTONS_OK,
                    "S'ha produït un error en imprimir.")
            d.run()
            d.destroy()
        elif res == gtk.PRINT_OPERATION_RESULT_APPLY:
            self._settings = po.get_print_settings()
            self._page_setup = po.get_default_page_setup()
Exemple #3
0
	def imprimeix(self, widget=None):
		if len(domini.horaris_preferits()) == 0:
			d = Gtk.MessageDialog(transient_for=self._finestra, modal=True,
					message_type=Gtk.MessageType.WARNING, buttons=Gtk.ButtonsType.OK,
					text="No hi ha horaris preferits per imprimir!")
			d.run()
			d.destroy()
			return

		po = Gtk.PrintOperation()

		if self._settings != None:
			po.set_print_settings(self._settings)

		if self._page_setup != None:
			po.set_default_page_setup(self._page_setup)

		po.connect("begin-print", self._begin_print_cb)
		po.connect("draw-page", self._draw_page_cb)

		res = po.run(Gtk.PrintOperationAction.PRINT_DIALOG, self._finestra)

		if res == Gtk.PrintOperationResult.ERROR:
			d = Gtk.MessageDialog(transient_for=self._finestra, modal=True,
					message_type=Gtk.MessageType.ERROR, buttons=Gtk.ButtonsType.OK,
					text="S'ha produït un error en imprimir.")
			d.run()
			d.destroy()
		elif res == Gtk.PrintOperationResult.APPLY:
			self._settings = po.get_print_settings()
			self._page_setup = po.get_default_page_setup()
Exemple #4
0
 def _mostra_web(self, widget=None):
     horaris = domini.horaris_preferits()
     if len(horaris) == 0:
         d = gtk.MessageDialog(self.finestra, gtk.DIALOG_MODAL,
                 gtk.MESSAGE_WARNING, gtk.BUTTONS_OK,
                 "No hi ha horaris preferits per mostrar!")
         d.run()
         d.destroy()
         return
     for horari in horaris:
         params = "&".join("a=%s%%23%s" % (a, g) for a, g in horari)
         obre_enllac_web(None, self.BASE_URL + params)
Exemple #5
0
	def _mostra_web(self, widget=None):
		horaris = domini.horaris_preferits()
		if len(horaris) == 0:
			d = Gtk.MessageDialog(transient_for=self.finestra, modal=True,
					message_type=Gtk.MessageType.WARNING, buttons=Gtk.ButtonsType.OK,
					text="No hi ha horaris preferits per mostrar!")
			d.run()
			d.destroy()
			return
		for horari in horaris:
			params = "&".join("a=%s_%s" % (a, g) for a, g in horari)
			obre_enllac_web(None, self.BASE_URL + params)
Exemple #6
0
    def actualitza(self, widget=None, horaris=[]):
        grups_seleccionats = self.get_model()[self._fila_grups_sel.get_path()][0]

        # ¿¿ redefineix model en comptes d'obtenir-lo amb self.get_model() ??
        model = gtk.ListStore(object, bool, int, int, int, int, int, bool)
        # utilitzem una funcio de comparació per a ordenar cada columna
        for i in range(0, 7):
            model.set_sort_func(i, self._cmp_horaris_cb, i)

        path_sel = None

        for h in domini.horaris_preferits():
            it = model.append([h.grups(), True, h.hores, h.hores_mati,
                h.hores_tarda, h.solapaments, h.fragments, False])
            if not path_sel and h.grups() == grups_seleccionats:
                path_sel = model.get_path(it)

        for h in horaris:
            if not domini.es_horari_preferit(h.grups()):
                it = model.append([h.grups(), False, h.hores, h.hores_mati,
                    h.hores_tarda, h.solapaments, h.fragments, False])
                if not path_sel and h.grups() == grups_seleccionats:
                    path_sel = model.get_path(it)
                    model.set_value(it, 7, True)

        self._mantenir_sel = path_sel is not None

        if not path_sel:
            h = Horari(grups_seleccionats)
            it = model.insert(0, [h.grups(), False, h.hores, h.hores_mati,
                h.hores_tarda, h.solapaments, h.fragments, True])
            path_sel = model.get_path(it)

        self.set_model(model)
        self._fila_grups_sel = gtk.TreeRowReference(model, path_sel)
        self.set_cursor(path_sel)
        self.columns_autosize()