Ejemplo n.º 1
0
 def __expanded(self, iter, path, model):
     window = self.window
     if window:
         window.set_cursor(gtk.gdk.Cursor(gtk.gdk.WATCH))
         gtk.main_iteration(block=False)
     try:
         try:
             if model is None:
                 return
             while model.iter_has_child(iter):
                 model.remove(model.iter_children(iter))
             folder = model[iter][0]
             for path in util.listdir(folder):
                 try:
                     if not os.path.isdir(path): continue
                     for filename in util.listdir(path):
                         if os.path.isdir(filename):
                             niter = model.append(iter, [path])
                             model.append(niter, ["dummy"])
                             break
                     else:
                         model.append(iter, [path])
                 except OSError:
                     pass
             if not model.iter_has_child(iter):
                 return True
         except OSError:
             pass
     finally:
         if window:
             window.set_cursor(None)
Ejemplo n.º 2
0
    def __fill(self, selection, filelist):
        fselect = filelist.get_selection()
        fselect.handler_block(self.__sig)
        fmodel, frows = fselect.get_selected_rows()
        selected = [fmodel[row][0] for row in frows]
        fmodel = filelist.get_model()
        fmodel.clear()
        dmodel, rows = selection.get_selected_rows()
        dirs = [dmodel[row][0] for row in rows]
        for dir in dirs:
            try:
                files = filter(self.__filter, util.listdir(dir))
                for file in sorted(files):
                    filename = os.path.join(dir, file)
                    if (os.access(filename, os.R_OK) and
                            not os.path.isdir(filename)):
                        fmodel.append([filename])
            except OSError:
                pass

        for row in fmodel:
            if row[0] in selected:
                fselect.select_path(row.path)
        fselect.handler_unblock(self.__sig)
        fselect.emit('changed')