예제 #1
0
    def __init__(self, weboob, caps=None, parent=None):
        QDialog.__init__(self, parent)
        self.ui = Ui_BackendCfg()
        self.ui.setupUi(self)

        self.ui.backendsList.sortByColumn(0, Qt.AscendingOrder)

        self.to_unload = set()
        self.to_load = set()

        self.weboob = weboob
        self.caps = caps
        self.config_widgets = {}

        # This attribute is set when itemChanged it called, because when
        # a backend is enabled/disabled, we don't want to display its config
        # frame, and the itemClicked event is always emit just after a
        # itemChanged event.
        # is_enabling is a counter to prevent race conditions.
        self.is_enabling = 0

        self.ui.backendsList.header().setResizeMode(
            QHeaderView.ResizeToContents)
        self.ui.configFrame.hide()

        self.icon_cache = {}
        self.icon_threads = {}

        self.loadModules()
        self.loadBackendsList()

        self.connect(self.ui.updateButton, SIGNAL('clicked()'),
                     self.updateModules)
        self.connect(self.ui.repositoriesButton, SIGNAL('clicked()'),
                     self.editRepositories)
        self.connect(self.ui.backendsList,
                     SIGNAL('itemClicked(QTreeWidgetItem *, int)'),
                     self.backendClicked)
        self.connect(self.ui.backendsList,
                     SIGNAL('itemChanged(QTreeWidgetItem *, int)'),
                     self.backendEnabled)
        self.connect(self.ui.modulesList, SIGNAL('itemSelectionChanged()'),
                     self.moduleSelectionChanged)
        self.connect(self.ui.proxyBox, SIGNAL('toggled(bool)'),
                     self.proxyEditEnabled)
        self.connect(self.ui.addButton, SIGNAL('clicked()'), self.addEvent)
        self.connect(self.ui.removeButton, SIGNAL('clicked()'),
                     self.removeEvent)
        self.connect(self.ui.registerButton, SIGNAL('clicked()'),
                     self.registerEvent)
        self.connect(self.ui.configButtonBox, SIGNAL('accepted()'),
                     self.acceptBackend)
        self.connect(self.ui.configButtonBox, SIGNAL('rejected()'),
                     self.rejectBackend)