def _mostra_preferit_cb(self, column, renderer, model, it): # la fila de grups seleccionats no es pot marcar com a preferida fixed = self.es_fila_grups_seleccionats(it) horari = model.get_value(it, 0) renderer.set_property('active', not fixed and domini.es_horari_preferit(horari)) renderer.set_property('activatable', not fixed) renderer.set_property('sensitive', not fixed)
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()