Пример #1
0
    def actualitza_grups_seleccionats(self, widget, grups):
        model = self.get_model()

        path_sel = self._fila_grups_sel.get_path()
        if self._mantenir_sel:
            model[path_sel][0] = model[path_sel][0]
        else:
            del model[path_sel]

        path_sel = None
        h = Horari(grups)
        for fila in model:
            if h.grups() == fila[0]:
                path_sel = fila.path
                self._mantenir_sel = True
                break
        else:
            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._mantenir_sel = False

        self._fila_grups_sel = gtk.TreeRowReference(model, path_sel)
        self.set_cursor(path_sel)
        self.columns_autosize()
Пример #2
0
    def __init__(self, accions):
        gtk.TreeView.__init__(self)
        self._accions = accions
        self._mantenir_sel = False

        # Afegeix la columna 0 ('Horari')
        renderer = gtk.CellRendererText()
        renderer.set_property('xpad', 10)
        col = gtk.TreeViewColumn(self._nom_col[0], renderer)
        col.set_cell_data_func(renderer, self._mostra_grups_cb)
        col.set_sort_column_id(0)
        self.append_column(col)

        # Afegeix la columna 1 ('Preferit')
        renderer = gtk.CellRendererToggle()
        renderer.set_property('xpad', 10)
        renderer.set_property('xalign', 0.5)
        renderer.connect("toggled", self._commuta_preferit_cb, 1)
        col = gtk.TreeViewColumn(self._nom_col[1], renderer)
        col.set_cell_data_func(renderer, self._mostra_preferit_cb)
        col.set_sort_column_id(1)
        self.append_column(col)

        # Afegeix la resta de columnes
        for i in range(2, 7):
            renderer = gtk.CellRendererText()
            renderer.set_property('xpad', 10)
            renderer.set_property('xalign', 0.5)
            col = gtk.TreeViewColumn(self._nom_col[i], renderer, text=i)
            col.set_sort_column_id(i)
            self.append_column(col)

        # Afegeix una columna buida al final
        col = gtk.TreeViewColumn("", gtk.CellRendererText())
        self.append_column(col)

        self.connect('cursor-changed', self._horari_seleccionat_cb)

        # Afegir fila 'grups seleccionats'
        # L'última columna del model indica si és la fila 'grups seleccionats'
        model = gtk.ListStore(object, bool, int, int, int, int, int, bool)
        h = Horari()
        model.append([h.grups(), False, h.hores, h.hores_mati, h.hores_tarda,
            h.solapaments, h.fragments, True])

        model.set_sort_func(0, self._cmp_horaris_cb)
        self.set_model(model)
        self._fila_grups_sel = gtk.TreeRowReference(model, (0,))
        self.set_cursor((0,))

        # Opcions TreeView
        self.set_enable_search(False)
        self.set_rules_hint(True)
Пример #3
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()