def check_disabled_button_states(self, button: QPushButton, index: QModelIndex) -> bool: if not index.isValid(): button.setText("No pilot selected") button.setDisabled(True) return True pilot = self.squadron_model.pilot_at_index(index) if not pilot.alive: button.setText("Pilot is dead") button.setDisabled(True) return True return False
def parent(self, index: QtCore.QModelIndex): if not index.isValid(): return QtCore.QModelIndex() # type: ignore childItem = self.getItem(index) parentItem = childItem.parent if parentItem == self.rootItem or childItem == self.rootItem: return QtCore.QModelIndex() # type: ignore if parentItem is not None: return self.createIndex(parentItem.childNumber(), 0, parentItem)
def data(self, index: qc.QModelIndex = qc.QModelIndex(), role: int = qq.DisplayRole) -> t.Any: if not index.isValid(): return None row = index.row() col = index.column() result = self._results[row] if qq.DisplayRole == role: return str(result[col])
def data(self, index: QModelIndex, role: int = ...) -> Any: if not index.isValid(): return None elem = self.entries[index.row()] if role == QtCore.Qt.DisplayRole: return self.module.get_display_name_for_entry(elem) if role == QtCore.Qt.DecorationRole and self.module.entry_icon_type: return locator.get_scoped("IconService").get_icon_by_type(elem, self.module.entry_icon_type) if role == QtCore.Qt.UserRole: return elem return None
def data(self, index: QtCore.QModelIndex, role: int = QtCore.Qt.DisplayRole) -> Optional[str]: if not index.isValid(): return None if role in (QtCore.Qt.DisplayRole, QtCore.Qt.EditRole): pos = [index.row(), index.column()] value = self.array[pos[self.axes[0]], pos[self.axes[1]]] return str(value) else: # pragma: no cover return None
def removeRows(self, row: int, count: int, parent: QModelIndex = QModelIndex()): if not parent.isValid(): return False self.beginRemoveRows(parent, row, row + count - 1) for idx in range(count): if row + idx < len(self.items): del self.items[row + idx] self.endRemoveRows() return True
def setData(self, index: QModelIndex, value: typing.Any, role: int = ...) -> bool: row = index.row() col = index.column() if index.isValid() and role == Qt.EditRole and row < len( self.list) and col in (3, 5): self.list[row][col] = value self.dataChanged.emit(index, index) return True return False
def rowCount( self, parent: QtCore.QModelIndex = QtCore.QModelIndex() ) -> int: # parent would default to None but C++ requires us to use an empty QModelIndex instead '''Return the number of rows in the list''' if self.__friends_reference: # Prevents value from being returned if the list has a parent (is inside another list) if not parent.isValid(): return len(self.__friends_reference.friends) # Return 0 if there is no friends reference return 0
def setData(self, index: QModelIndex, value: str, role: int = Qt.EditRole) -> bool: if index.isValid() and role == Qt.EditRole: # If the new value is invalid, then remove the row and quit value = value.strip() if not value or value in self.stringList(): self.removeRow(index.row(), index.parent()) return False # In every other case call superclass return super().setData(index, value, role)
def data(self, index: QModelIndex, role: int = ...) -> typing.Any: row = index.row() column = index.column() if role == Qt.DisplayRole and index.isValid( ) and row < self.rowCount(): t = self.list[row] if column == 0: return str(t.id) elif column == 1: return t.short_desc elif column == 2: return t.long_desc
def data(self, index: QModelIndex, role: int = ...): row = index.row() column = index.column() if role == Qt.DisplayRole and index.isValid( ) and row < self.rowCount(): customer = Customer.from_record(self.record(row)) if column == 0: return customer.concated_name elif column == 1: return customer.company_name elif column == 2: return customer.address return super().data(index, role)
def setData(self, index: QModelIndex, value: typing.Any, role: int = ...): if not index.isValid(): return False if role == Qt.EditRole or role == Qt.CheckStateRole: if value == '': return False self.options[index.row()][1] = value self.dataChanged.emit(index, index) self.option_modified.emit() if self.options[index.row()][0] == 'parse_dates': self.date_format_required.emit() return True
def get_element(self, index: QtCore.QModelIndex): """ Dobavlja podatak smjesten na zadatom indeksu, ako je indeks validan. Pomocna metoda nase klase. :param index: indeks elementa modela. :type index: QModelIndex :returns: object -- vrijednost na indeksu. """ if index.isValid(): element = self._data[index.row()][index.column()] if element: return element return None
def data(self, index: QModelIndex, role: int = ...) -> Any: if not index.isValid(): return None if index.row() >= self.__listNode.__len__() or index.row() < 0: return None if role == Qt.DisplayRole: return self.__listNode[index.row()].text elif role == Qt.UserRole: return self.__listNode[index.row()].treeNode return None
def data(self, index: QtCore.QModelIndex, role: QtCore.Qt) -> Any: if not index.isValid(): return None if role != QtCore.Qt.DisplayRole and role != QtCore.Qt.EditRole and role != QtCore.Qt.DecorationRole: return None item = self.getItem(index) if role == QtCore.Qt.DecorationRole: return item.icon() else: return item.data()
def flags(self, index: QModelIndex) -> Qt.ItemFlags: if not index.isValid(): return Qt.NoItemFlags default = Qt.ItemIsDragEnabled | Qt.ItemIsDropEnabled | Qt.ItemIsEnabled | Qt.ItemIsSelectable row = index.row() col = index.column() if row == len(self.list): return Qt.ItemIsEnabled | Qt.ItemIsDropEnabled if col == 3 or col == 5: return Qt.ItemIsEditable | default return default
def data(self, index: QModelIndex, role=None): if not index.isValid(): return None value = self._array_data[index.row()][index.column()] if role == Qt.DisplayRole: return value if role == Qt.BackgroundRole: if index.row() == START_DAY_ROW: return QtGui.QColor('#A18C3D') if index.row() == MIDDLE_DAY_ROW: return QtGui.QColor('#e3b918') return None
def setData(self, index: QModelIndex, value: Any, role: int = ...) -> bool: if index.isValid(): if role == Qt.CheckStateRole: if self.cond["RESULT_MANUAL_POST_CORRECTION"]: self.data_result.correct(self.cond, index.row(), bool(value)) self.runner.lcptd_set_property() else: return False else: return False return True else: return False
def index(self, row: int, column: int, parent: QModelIndex) -> QModelIndex: if column != 0: leftmost = self.index(row, 0, parent) return self.createIndex(row, column, leftmost.internalPointer()) if parent.isValid(): data = typing.cast(_InternalData, parent.internalPointer()) return data["children"][row]["index"] if row >= len(self.model): return QModelIndex() return self.model[row]["index"]
def setData(self, index: QModelIndex, value: str, role: int = ...) -> bool: if not index.isValid(): return False value = value.strip() if role == Qt.EditRole and value and index.column() == self.nameColumn and \ value != index.data(Qt.EditRole): # TODO: add regex validator self._edits[index.row()] = value else: return False self.dataChanged.emit(index, index) return True
def index(self, row: int, column: int, parent: QModelIndex = ...): if not self.hasIndex(row, column, parent): return QModelIndex() if not parent.isValid(): parent_item = self.root_item else: parent_item = parent.internalPointer() try: child_item = parent_item.children[row] return self.createIndex(row, column, child_item) except IndexError: return QModelIndex()
def parent(self, index: QModelIndex) -> QModelIndex: if not index.isValid(): return QModelIndex() item = index.internalPointer() if item in self.root_items: return QModelIndex() parent = item.parent_item if parent is None: return QModelIndex() else: return self.createIndex(parent.row, parent.column, parent)
def data(self, index: QtCore.QModelIndex, role: QtCore.Qt) -> Any: if role == QtCore.Qt.DisplayRole: if not index.isValid(): return None if index.row() > len(self.flows): return None flow = self.flows[index.row()] row_values = flow.values_for_table() return row_values[index.column()]
def move_down(self, index: qc.QModelIndex): if not index.isValid(): return row = index.row() row_new = row + 1 if 0 <= row_new < len(self._items): dummy_index = qc.QModelIndex() self.beginMoveRows(dummy_index, row, row, dummy_index, row_new + 1) self._items[row], self._items[row_new] = self._items[ row_new], self._items[row] self.endMoveRows()
def data(self, index: QModelIndex, role: Qt.ItemDataRole = Qt.DisplayRole): # pylint: disable=too-many-return-statements,too-many-branches """Gets the node data Args: index (QModelIndex): index to get data for role (Qt.ItemDataRole): the role (Default: Qt.DisplayRole) Returns: object: fetched data """ if not index.isValid(): return None # The data in a form suitable for editing in an editor. (QString) if role == Qt.EditRole: return self.data(index, Qt.DisplayRole) # Bold the first if (role == Qt.FontRole) and (index.column() == self.NAME): font = QFont() font.setBold(True) return font if role == Qt.TextAlignmentRole: return int(Qt.AlignTop | Qt.AlignLeft) if role == Qt.DisplayRole: node = self.nodeFromIndex(index) if node: # the first column is either a leaf key or a branch # the second column is always a leaf value or for a branch is ''. if isinstance(node, BranchNode): # Handle a branch (which is a nested subdictionary, which can be expanded) if index.column() == self.NAME: return node.name if index.column() == self.TYPE: return node.type return '' # We have a leaf if index.column() == self.NAME: return str(node.name) # key if index.column() == self.VALUE: return str(node.value) # value if index.column() == self.PARSED: return str(self._design.parse_value(node.value)) if index.column() == self.TYPE: return node.type return None return None
def data(self, index: QModelIndex, role: Qt.ItemDataRole = Qt.DisplayRole): """Gets the node data. Args: index (QModelIndex): Index to get data for role (Qt.ItemDataRole): The role.. Defaults to Qt.DisplayRole. Returns: object: fetched data """ if not index.isValid(): return None if self.component is None: return None # The data in a form suitable for editing in an editor. (QString) if role == Qt.EditRole: return self.data(index, Qt.DisplayRole) # Bold the first if (role == Qt.FontRole) and (index.column() == 0): font = QFont() font.setBold(True) return font if role == Qt.TextAlignmentRole: return int(Qt.AlignTop | Qt.AlignLeft) if role == Qt.DisplayRole: node = self.nodeFromIndex(index) if node: # the first column is either a leaf key or a branch # the second column is always a leaf value or for a branch is ''. if isinstance(node, BranchNode): # Handle a branch (which is a nested subdictionary, which can be expanded) if index.column() == 0: return node.name return '' # We have a leaf elif index.column() == 0: return str(node.label) # key elif index.column() == 1: return str(node.value) # value elif index.column() == 2: # TODO: If the parser fails, this can throw an error return str(self.design.parse_value(node.value)) else: return None return None
def setData(self, index: QModelIndex, value: QPersistentModelIndex, role: int = Qt.EditRole) -> bool: if index.isValid() and role == Qt.EditRole and index.column() == 1: sourceIndex = self.mapToSource(index) currValue: QPersistentModelIndex = self.attributes.get( sourceIndex.row(), None) if value.isValid() and value != currValue: self.attributes[sourceIndex.row()] = value self.dataChanged.emit(index, index, [Qt.DisplayRole, Qt.EditRole]) return True return False
def flags(self, index: QModelIndex) -> Qt.ItemFlags: """ Get the flags associated with the given index :param index: the index to get the flags for :type index: QModelIndex :return: The flags with a given index :rtype: Qt.ItemFlags """ if not index.isValid(): return Qt.NoItemFlags else: return Qt.ItemIsEnabled | Qt.ItemIsSelectable
def data(self, index: QModelIndex, role: int = None): if not index.isValid(): return None if role == Qt.DisplayRole: return self.getValue(index.row(), index.column()) elif role == Qt.TextAlignmentRole: return self.getAlignment(index.row(), index.column()) elif role == Qt.ForegroundRole: return self.getForeground(index.row(), index.column()) elif role == Qt.FontRole: return self.getFont(index.row(), index.column()) elif role == Qt.BackgroundRole: return self.getBackground(index.row(), index.column()) return None
def data(self, index: QModelIndex, role: Qt.ItemDataRole = Qt.DisplayRole): if not index.isValid(): return item = index.internalPointer() if role == Qt.DisplayRole: if index.column() == 0: return item.name if role == Qt.ForegroundRole: if index.column() == 0: status = item.status.value color = QColor(ITEM_STATE_COLORS[status]) return QBrush(color)