def __init__(self, module, moduleparser, parent=None): """Instantiate a ListItemWidget widget containing a option in category @param self A ListItemWidget instance @param module String containing module name @param moduleparser A LTCModuleParser instance @param parent Parent QtGui.QListWidget """ self.expanded = False self.module = module self.parent = parent self.moduleparser = moduleparser self.listItem = QtGui.QListWidgetItem(parent) QtGui.QWidget.__init__(self, parent) self.ui = Ui_listItemWidget() self.ui.setupUi(self) self.ui.prettyLabel.setText(moduleparser.getModulePrettyName(module)) self.ui.prettyLabel_2.setText(moduleparser.getModulePrettyName(module)) self.ui.descriptionText.setHtml( moduleparser.getModuleDescription(module)) if not moduleparser.getModuleConfigurable(module): self.ui.configureButton.setEnabled(False) else: self.ui.configureButton.clicked.connect(self.config) self.parent.setItemWidget(self.listItem, self) self.setExpanded(False)
class ListItemWidget(QtGui.QWidget): """Creates the QListWidgetItem widget of a module into cateogory""" def __init__(self, module, moduleparser, parent=None): """Instantiate a ListItemWidget widget containing a option in category @param self A ListItemWidget instance @param module String containing module name @param moduleparser A LTCModuleParser instance @param parent Parent QtGui.QListWidget """ self.expanded = False self.module = module self.parent = parent self.moduleparser = moduleparser self.listItem = QtGui.QListWidgetItem(parent) QtGui.QWidget.__init__(self, parent) self.ui = Ui_listItemWidget() self.ui.setupUi(self) self.ui.prettyLabel.setText(moduleparser.getModulePrettyName(module)) self.ui.prettyLabel_2.setText(moduleparser.getModulePrettyName(module)) self.ui.descriptionText.setHtml( moduleparser.getModuleDescription(module)) if not moduleparser.getModuleConfigurable(module): self.ui.configureButton.setEnabled(False) else: self.ui.configureButton.clicked.connect(self.config) self.parent.setItemWidget(self.listItem, self) self.setExpanded(False) def setActivated(self, activated=None): """Set this module activated or not @param self A ListItemWidget instance @param activated Bool """ # if None, toggle if activated is None: activated = not self.activated self.activated = activated # Refresh description, that may contain current config infos self.ui.descriptionText.setHtml( self.moduleparser.getModuleDescription(self.module)) self.ui.toggleButtonCol.setChecked(activated) self.ui.toggleButtonExp.setChecked(activated) if activated: self.ui.toggleButtonExp.setText(self.tr("Activated")) self.ui.toggleButtonExp.setIcon(QtGui.QIcon(":/edit_icon/ok.png")) self.ui.toggleButtonCol.setIcon(QtGui.QIcon(":/edit_icon/ok.png")) else: self.ui.toggleButtonExp.setText(self.tr("Deactivated")) self.ui.toggleButtonExp.setIcon(QtGui.QIcon(":/edit_icon/close.png")) self.ui.toggleButtonCol.setIcon(QtGui.QIcon(":/edit_icon/close.png")) def setExpanded(self, value=None): """Set if a item is expanded or not Expand are set hiding self.ui.collapsedWid and showing self.ui.expandedWid. This widgets have fixed vertical sizePolicy set. @param self A ListItemWidget instance @param value Bool. If true, set item expanded """ # If None, toggle if value == None: value = not self.expanded if value: self.listItem.setSelected(True) self.ui.collapsedWid.hide() self.ui.expandedWid.show() self.listItem.setSizeHint(self.ui.expandedWid.size()) else: self.ui.expandedWid.hide() self.ui.collapsedWid.show() self.listItem.setSizeHint(self.ui.collapsedWid.size()) self.expanded = value def config(self): """Show module's configuration dialog @param self A LTCModuleParser instance """ self.moduleparser.configModule(self.module, self.parent) self.setActivated(self.activated)