def __init__(self, parent=None): super(PluginConfig, self).__init__(parent) winsettings('pluginconfig', self) self._listbox = QListWidget() info_display = InfoWidget() hbox = QHBoxLayout() hbox.addWidget(self._listbox, 0) hbox.addWidget(info_display, 1) vbox = QVBoxLayout() vbox.addLayout(hbox) vbox.addWidget( QLabel( translate( "Plugin Settings", '<b>Loading/unloading plugins requires a restart.</b>'))) self.setLayout(vbox) plugins = [] [plugins.extend(get_plugins(d)) for d in PLUGIN_DIRS] cparser = PuddleConfig() to_load = cparser.get('plugins', 'to_load', []) plugins.sort(key=lambda d: d.get(NAME, '')) for plugin in plugins: item = QListWidgetItem() item.setText(plugin[NAME]) if plugin[MODULE_NAME] in to_load: item.setCheckState(Qt.CheckState.Checked) else: item.setCheckState(Qt.CheckState.Unchecked) item.plugin = plugin self._listbox.addItem(item) self._listbox.currentItemChanged.connect( lambda item, previous: info_display.changeInfo(item.plugin))