def __init__(self, parameter, parent=None): """Constructor .. versionadded:: 2.2 :param parameter: A ListParameter object. :type parameter: ListParameter """ super(ListParameterWidget, self).__init__(parameter, parent) self._input = QListWidget() self._input.setSelectionMode(QAbstractItemView.MultiSelection) if self._parameter.maximum_item_count != \ self._parameter.minimum_item_count: tool_tip = 'Select between %d and %d items' % ( self._parameter.minimum_item_count, self._parameter.maximum_item_count) else: tool_tip = 'Select exactly %d items' % ( self._parameter.maximum_item_count) self._input.setToolTip(tool_tip) for opt in self._parameter.options_list: item = QListWidgetItem() item.setFlags(item.flags() | Qt.ItemIsEditable) item.setText(str(opt)) self._input.addItem(item) if opt in self._parameter.value: item.setSelected(True) self._inner_input_layout.addWidget(self._input) # override self._input_layout arrangement to make the label at the top # reset the layout self._input_layout.setParent(None) self._help_layout.setParent(None) self._label.setParent(None) self._inner_input_layout.setParent(None) self._input_layout = QVBoxLayout() self._input_layout.setSpacing(0) # put element into layout self._input_layout.addWidget(self._label) self._input_layout.addLayout(self._inner_input_layout) self._main_layout.addLayout(self._input_layout) self._main_layout.addLayout(self._help_layout)
def __init__(self, parameter, parent=None): """Constructor .. versionadded:: 2.2 :param parameter: A ListParameter object. :type parameter: ListParameter """ super(ListParameterWidget, self).__init__(parameter, parent) self._input = QListWidget() self._input.setSelectionMode(QAbstractItemView.MultiSelection) if self._parameter.maximum_item_count != \ self._parameter.minimum_item_count: tool_tip = 'Select between %d and %d items' % ( self._parameter.minimum_item_count, self._parameter.maximum_item_count) else: tool_tip = 'Select exactly %d items' % ( self._parameter.maximum_item_count) self._input.setToolTip(tool_tip) for opt in self._parameter.options_list: item = QListWidgetItem() item.setFlags(item.flags() | Qt.ItemIsEditable) item.setText(str(opt)) self._input.addItem(item) if opt in self._parameter.value: item.setSelected(True) self.inner_input_layout.addWidget(self._input) # override self._input_layout arrangement to make the label at the top # reset the layout self.input_layout.setParent(None) self.help_layout.setParent(None) self.label.setParent(None) self.inner_input_layout.setParent(None) self.input_layout = QVBoxLayout() self.input_layout.setSpacing(0) # put element into layout self.input_layout.addWidget(self.label) self.input_layout.addLayout(self.inner_input_layout) self.main_layout.addLayout(self.input_layout) self.main_layout.addLayout(self.help_layout)
def import_key(self): add_key_dialog = AddKeyDialog() add_key_dialog.exec_() new_key = add_key_dialog.key() if new_key: self._keys[new_key['keyname']] = { u'proto' : new_key['proto'], u'key' : new_key['key'], u'full' : new_key['full'], u'servers' : [] } item = QListWidgetItem(unicode(new_key[u'keyname'])) self.key_list.addItem(item) self.key_list.sortItems() item.setSelected(True) self.key_item_selected(item)
def set_widgets(self): """Set all widgets on the tab.""" self.project = self.parent.project['information'] self.update_status_label.setText('') self.project_name_text.setText(self.project['name']) if self.project['urls']: self.project_url_text.setText(self.project['urls'][0]) else: self.project_url_text.setText('') self.project_desc_text.setText(self.project['description']) if self.project['access'] == 'private': private_access = True else: private_access = False self.access_checkbox.setChecked(private_access) contacts = Contact.get_rows() project_contacts = self.project['contacts'] self.project_contact_list.clear() self.project_contact_list.setSelectionMode( QAbstractItemView.ExtendedSelection) # From local db for contact in contacts: contact_name = contact.name contact_email = ' - ' + contact.email if contact.email else '' contact_phone = ' - ' + contact.phone if contact.phone else '' contact_item = QListWidgetItem(contact_name + contact_email + contact_phone) contact_item.setData(Qt.UserRole, contact) self.project_contact_list.addItem(contact_item) # From server for index, contact in enumerate(project_contacts): contact_name = contact['name'] contact_email = ' - ' + contact['email'] \ if 'email' in contact and contact['email'] else '' contact_phone = ' - ' + contact['tel'] \ if 'tel' in contact and contact['tel'] else '' contact_box = self.project_contact_list.findItems( contact_name + contact_email + contact_phone, Qt.MatchExactly) if len(contact_box) > 0: contact_box[0].setSelected(True) else: new_contact = Contact() new_contact.name = contact['name'] new_contact.email = contact['email'] new_contact.phone = contact['tel'] new_contact.save() selected_item = QListWidgetItem(contact_name + contact_email + contact_phone) selected_item.setData(Qt.UserRole, new_contact) self.project_contact_list.addItem(selected_item) selected_item.setSelected(True) self.project_name_text.setFocus() self.project_desc_text.setTabChangesFocus(True)