def setData(self, index: QModelIndex, value: Any, _role: int = 0) -> bool: if not index.isValid(): return False col = self.getColumnKey(index.column()) row = index.row() asyncio.create_task(self.setDataInternal(col, row, str(value))) return True
def setCurrentIndex(self, index: QModelIndex, command: QItemSelectionModel.SelectionFlags) -> None: if not index.isValid(): return # always focus column 3 index = self.model().index(index.row(), 3) super().setCurrentIndex(index, command)
def data(self, index: QModelIndex, role=...): if not index.isValid(): return None if index.row() >= self.rowCount() or index.column() >= self.columnCount(): return None if role == Qt.DisplayRole: return self._table[index.row()][index.column()]
def rowCount(self, in_index: qtc.QModelIndex): if in_index.isValid(): node: Any = in_index.internalPointer() if type(node) is Folder: return len(node.children) return 0 return len(self.tree.children)
def on_tableview_currentRowChanged(self, current: QModelIndex, previous: QModelIndex): if current.isValid(): row = current.row() self._on_currentListDataChanged(self._acqs[row]) pass pass
def data(self, index:QtCore.QModelIndex, role:int=...) -> typing.Any: """ For given index and DisplayRole return name of the selected city""" # Return None if the index is not valid if not index.isValid(): return None # If the role is the DisplayRole, return name of the city if role == QtCore.Qt.DisplayRole: return self.city_list[index.row()]["muniLabel"]
def rowCount(self, index: qtc.QModelIndex) -> int: """Returns the number of rows.""" # so index points to an article if index.isValid(): return 0 # must be the root index return len(self.articles)
def data(self, index: QModelIndex, role): if not index.isValid(): return None if role == self.DeviceClassRoles.DEVICE_CLASS_NAME: return self.classes[index.row()]['name'] if role == self.DeviceClassRoles.DEVICE_CLASS_VALUE: return self.classes[index.row()]['value']
def columnCount(self, parent: QModelIndex = ...) -> int: column_count_arg_in = {"parent": parent} logging.debug("columnCount") logging.debug(column_count_arg_in) if parent.isValid(): logging.debug({"return": parent.internalPointer().column_count()}) return parent.internalPointer().column_count() logging.debug({"return": self.__root.column_count()}) return self.__root.column_count()
def flags(self, index: QtCore.QModelIndex) -> QtCore.Qt.ItemFlags: if not index.isValid(): return None if index.column() == 1: # not editable return super().flags(index) | ~QtCore.Qt.ItemIsEditable else: return super().flags(index)
def on_listview_point_select(self, current: QModelIndex, previous: QModelIndex): if current.isValid(): row = current.row() print(rf'some point be selected {row}') #todo sync with four axes and right list? #save to local ? #self._on_currentListDataChanged(self._acqs[row]) pass pass
def data(self, index: QModelIndex, role: int = Qt.UserRole + 1) -> t.Any: if not index.isValid(): return None if role != Qt.DisplayRole: return None item = index.internalPointer() return item.data(index.column())
def flags(self, index: QModelIndex) -> Qt.ItemFlags: if not index.isValid(): return Qt.NoItemFlags col = self.getColumnKey(index.column()) if col in ('package', 'filename', 'category', 'priority',): mod = self.modmodel[index.row()] if col in ('priority',) and mod.datatype not in ('mod', 'udf',): return Qt.ItemIsEnabled | Qt.ItemIsSelectable return Qt.ItemIsEnabled | Qt.ItemIsSelectable | Qt.ItemIsEditable return Qt.ItemIsEnabled | Qt.ItemIsSelectable
def removeEntry(self): selectedIndexes = self.ui.ganttView.selectionModel().selectedIndexes() if len(selectedIndexes) > 0: index = selectedIndexes[0] else: index = QModelIndex() if not index.isValid(): return self.model.removeRow(index.row(), index.parent())
def data(self, index: QModelIndex, role: Qt = Qt.ItemDataRole) -> None: """Override method from QAbstractTableModel Return data cell from the pandas DataFrame """ if not index.isValid(): return None if role == Qt.DisplayRole: return str(self._dataframe.iloc[index.row(), index.column()]) return None
def data(self, index: QModelIndex, role): if not index.isValid(): return None if role == DeviceRoles.CATEGORY: return 'main' if index.row() < self._device_count_ else self._category_ for x in range(len(self._ui_dev_info_)): if x == index.row(): dev_cls = self._ui_dev_info_[x] return getattr(dev_cls, DeviceRolePropertyMap[role]) return None
def parent(self, child: QModelIndex = ...) -> QModelIndex: parent_arg_in = {"child": child} logging.debug("parent") logging.debug(parent_arg_in) if not child.isValid(): return QModelIndex() child_item = child.internalPointer() parent_item = child_item.parent_item() if parent_item == self.__root: return QModelIndex() logging.debug({"return": self.createIndex(parent_item.row(), 0, parent_item)}) return self.createIndex(parent_item.row(), 0, parent_item)
def rowCount(self, parent: QModelIndex = ...) -> int: row_count_arg_in = {"parent": parent} logging.debug("rowCount") logging.debug(row_count_arg_in) if parent.column() > 0: return 0 if not parent.isValid(): parent_item = self.__root else: parent_item = parent.internalPointer() logging.debug({"return": parent_item.child_count()}) return parent_item.child_count()
def index(self, row: int, column: int, parent: QModelIndex = QModelIndex()) -> QModelIndex: if not self.hasIndex(row, column, parent): return QModelIndex() if not parent.isValid(): parent_item = self.rootItem else: parent_item = parent.internalPointer() child_item = parent_item.child(row) if child_item: return self.createIndex(row, column, child_item) else: return QModelIndex()
def data(self, index: QModelIndex, role: int = ...) -> typing.Any: data_arg_in = { "index": index, "role": role } logging.debug(data_arg_in) if not index.isValid(): return None r = int(Qt.DisplayRole) c = index.column() if role != Qt.DisplayRole: val = index.internalPointer().data(index.column()) return None return index.internalPointer().data(index.column())
def index(self, row: int, column: int, parent: QModelIndex = ...) -> QModelIndex: index_arg_in = {"row": row, "column": column, "parent": parent} logging.debug("index") logging.debug(index_arg_in) if not self.hasIndex(row, column, parent): return QModelIndex() if not parent.isValid(): parent_item = self.__root else: parent_item = parent.internalPointer() res = parent_item.child(row) if res is None: return QModelIndex() logging.debug({"return": self.createIndex(row, column, res)}) return self.createIndex(row, column, res)
def data(self, index: QModelIndex, role=...): if not index.isValid(): return None if index.row() >= self.rowCount() or index.column() >= len( self._header_data): return None if role == Qt.DisplayRole: g = self._goods[index.row()] if index.column() == 0: return g.name elif index.column() == 1: return g.type.name elif index.column() == 2: return str(g.create_time) else: return g.comment if g.comment is not None else '' if role == Qt.EditRole: return self._goods[index.row()]
def setData(self, index: QtCore.QModelIndex, value: Any, role = QtCore.Qt.EditRole) -> bool: if index.isValid() and role == QtCore.Qt.EditRole: if index.column() == 0: return False elif index.column() == 1: self.m_data[index.row()].command = str(value) elif index.column() == 2: self.m_data[index.row()].state = GCodeItem.States(value) elif index.column() == 3: self.m_data[index.row()].response = str(value) elif index.column() == 4: self.m_data[index.row()].line = int(value) elif index.column() == 5: self.m_data[index.row()].args = [str(value)] ## FIXME: toStringList() self.dataChanged.emit(index, index) return True return False
def data(self, index: QtCore.QModelIndex, role = QtCore.Qt.DisplayRole) -> Any : if not index.isValid(): return None # QVariant() if index.row() >= len(self.m_data) : return None # QVariant() if role == QtCore.Qt.DisplayRole or role == QtCore.Qt.EditRole: if index.column() == 0: return "" if index.row() == self.rowCount() - 1 else str(index.row() + 1) elif index.column() == 1: return self.m_data[index.row()].command elif index.column() == 2: if index.row() == self.rowCount() - 1: return "" if self.m_data[index.row()].state == GCodeItem.States.InQueue: return "In queue" elif self.m_data[index.row()].state == GCodeItem.States.Sent: return "Sent" elif self.m_data[index.row()].state == GCodeItem.States.Processed: return "Processed" elif self.m_data[index.row()].state == GCodeItem.States.Skipped: return "Skipped" else: return "Unknown" elif index.column() == 3: return self.m_data[index.row()].response elif index.column() == 4: return self.m_data[index.row()].line elif index.column() == 5: return self.m_data[index.row()].args if role == QtCore.Qt.TextAlignmentRole: return QtCore.Qt.AlignVCenter if role == QtCore.Qt.FontRole: if index.column() == 1: # text items are bold. font = QtGui.QFont() font.setBold(True) return font return None # QVariant()
def initFrom(self, index, constraintModel): row = index.row() parent = index.parent() self.ui.name.setText( self.model.data(self.model.index(row, 0, parent)).toString()) self.ui.legend.setText( self.model.data(self.model.index(row, 5, parent)).toString()) idx = self.ui.type.findData( self.model.data(self.model.index(row, 1, parent)).toInt()) self.ui.type.setCurrentIndex(idx) self.ui.startDate.setDateTime( self.model.data(self.model.index(row, 2, parent)).toDateTime()) self.ui.endDate.setDateTime( self.model.data(self.model.index(row, 3, parent)).toDateTime()) self.ui.completion.setValue( self.model.data(self.model.index(row, 4, parent)).toInt()) self.ui.readOnly.setChecked(not ( self.model.flags(self.model.index(row, 0, parent)) & Qt.ItemIsEditable)) constraints = constraintModel.constraintsForIndex( self.model.index(row, 0, parent)) if constraints.isEmpty(): return constraintIndex = QModelIndex() for i in range(0, constraints.size()): constraint = constraints[i] if constraint.endIndex() == index: constraintIndex = constraint.startIndex() break if not constraintIndex.isValid(): return self.ui.depends.setCurrentIndex(indexList.indexOf(constraintIndex) + 1)
def addNewEntry(self): dialog = EntryDialog(self.model) dialog.setWindowTitle("New Entry") if dialog.exec_() == QDialog.Rejected: dialog = None return selectedIndexes = self.ui.ganttView.selectionModel().selectedIndexes() if len(selectedIndexes) > 0: parent = selectedIndexes[0] else: parent = QModelIndex() if not self.model.insertRow(self.model.rowCount(parent), parent): return row = self.model.rowCount(parent) - 1 if row == 0 and parent.isValid(): self.model.insertColumns(self.model.columnCount(paren), 5, parent) self.model.setData(self.model.index(row, 0, parent), dialog.name()) self.model.setData(self.model.index(row, 1, parent), dialog.type()) if dialog.type() != KDGantt.TypeSummary: self.model.setData(self.model.index(row, 2, parent), dialog.startDate(), KDGantt.StartTimeRole) self.model.setData(self.model.index(row, 3, parent), dialog.endDate(), KDGantt.EndTimeRole) self.model.setData(self.model.index(row, 4, parent), dialog.completion()) self.model.setData(self.model.index(row, 5, parent), dialog.legend()) self.addConstraint(dialog.depends(), self.model.index(row, 0, parent)) self.setReadOnly(self.model.index(row, 0, parent), dialog.readOnly()) dialog = None
def data(self, index: QModelIndex, role: Qt.ItemDataRole = Qt.DisplayRole) -> Any: if not index.isValid(): return None col = self.getColumnKey(index.column()) if not col: return None if role == Qt.FontRole: if col in ('datatype', 'size',): return QFontDatabase.systemFont(QFontDatabase.FixedFont) return None if role == Qt.CheckStateRole: if col in ('enabled',): mod = self.modmodel[index.row()] val = mod[col] return Qt.Checked if val else Qt.Unchecked return None if role == Qt.BackgroundRole: mod = self.modmodel[index.row()] if not mod.enabled: return self._colorDisabled if col in ('priority',) and mod.datatype not in ('mod', 'udf',): return self._colorUnavailable if mod.installdate > self._lastUpdate: return self._colorNewest if mod.installdate > self._lastInitialization: return self._colorRecent if not mod.installed: return self._colorUnmanaged return None if role == Qt.ForegroundRole: mod = self.modmodel[index.row()] if not mod.enabled: return QColor(60, 60, 60) elif col in ('scriptFiles',): if mod.filename in self.modmodel.conflicts.scripts \ and self.modmodel.conflicts.scripts[mod.filename]: return QColor('#E55934') elif col in ('bundledFiles',): if mod.filename in self.modmodel.conflicts.bundled \ and self.modmodel.conflicts.bundled[mod.filename]: return QColor('#b08968') return None if role == Qt.DecorationRole: if col in ('datatype',): mod = self.modmodel[index.row()] val = mod[col] return self._icons[val] if val in self._icons else self._icons['udf'] return None if role == Qt.ToolTipRole: mod = self.modmodel[index.row()] if col in ('datatype',): val = mod[col] return self._datatypes[val] if val in self._datatypes else self._datatypes['udf'] if col in ('enabled',): val = mod[col] return 'Enabled' if val else 'Disabled' return str(mod[col]) if role == Qt.TextAlignmentRole: if col in ('size',): # Right|VCenter return 0x0082 if col in ('priority', 'installdate', 'binFiles', 'menuFiles', 'settings', 'inputs', 'contentFiles', 'scriptFiles', 'bundledFiles',): # HCenter|VCenter return 0x0084 # Left|VCenter return 0x0081 if role == Qt.EditRole: if col in ('package', 'filename', 'category', 'priority',): mod = self.modmodel[index.row()] return str(mod[col]) return None # role used for sorting if role == Qt.UserRole: mod = self.modmodel[index.row()] if col in ('priority',): return f'{"-" if int(mod[col]) < 0 else "+"}{abs(int(mod[col])): >20} {mod["filename"]}' if col in ('size',): return int(mod[col]) if col in ('binFiles', 'menuFiles', 'contentFiles', \ 'scriptFiles', 'settings', 'inputs', 'bundledFiles',): return len(mod[col]) return str(mod[col]) if role == Qt.DisplayRole: if col in ('enabled',): return None mod = self.modmodel[index.row()] if col in ('datatype',): return str(mod[col]).upper() if col in ('priority',): val = mod[col] if val < 0: return 'none' return val if col in ('installdate',): return mod[col].astimezone(tz=None).strftime('%Y-%m-%d %H:%M:%S') if col in ('size',): val = mod[col] frm = 'b' val /= 1024 frm = 'K' if val // 1024: val /= 1024 frm = 'M' return '%.1f %s' % (val, frm) if col in ('inputs', 'settings',): val = 0 for s in mod[col]: for n in s.config.sections(): val += len(s.config.items(n)) return val if val else None if col in ('binFiles', 'menuFiles', 'contentFiles', 'scriptFiles', 'bundledFiles',): val = len(mod[col]) if val < 1: return '' return val return str(mod[col]) return None
def flags(self, index: QModelIndex) -> Qt.ItemFlags: if not index.isValid(): return Qt.NoItemFlags return super().flags(index)
def rowCount(self, parent: QModelIndex): return 0 if parent.isValid() else len(self.classes)