Exemple #1
0
class DirCombo(HBox):
    def __init__(self, dir=None):
        HBox.__init__(self, False, 2)

        buttonImage = Image()
        buttonImage.set_from_stock(STOCK_REFRESH, ICON_SIZE_MENU)

        self.combo = ComboBox()
        self.refreshButton = Button()
        self.refreshButton.set_image(buttonImage)
        self.refreshButton.connect('clicked', self.refreshButton_clicked, None)
        self.model = ListStore(str)
        self.combo.set_model(self.model)
        self.dir = dir

        self.pack_start(self.combo, False, False, 0)
        self.pack_start(self.refreshButton, False, False, 0)

        if self.dir != None and exists(self.dir):
            self.refresh()

    def refresh(self):
        self.combo.clear()
        self.model.clear()
        list = listdir(self.dir)
        cell = CellRendererText()
        self.combo.pack_start(cell, True)
        self.combo.add_attribute(cell, 'text', 0)

        for i in list:
            if i[0] != '.' and isdir(join(self.dir, i)) == True:
                self.model.append([i])

    def refreshButton_clicked(self, widget, data):
        self.refresh()