def append_df_model(self, model): file_path = model.filePath f = QtGui.QStandardItem(file_path) c = QtGui.QStandardItem(str(model.dataFrame().index.size)) row = self.rowCount() self.setItem(row, 0, f) self.setItem(row, 1, c)
def set_handler_sort_asc(self, default_model=None, overwrite=False): if self.sortAscHandler is None or default_model is not None or overwrite: sort_asc = QtGui.QStandardItemModel() sort_asc.appendRow(QtGui.QStandardItem('True')) sort_asc.appendRow(QtGui.QStandardItem('False')) self.sortAscHandler = PushGridHandler( left_model=sort_asc, left_view=self.sortAscLeftView, left_button=self.sortAscLeftButton, left_delete=False, right_model=default_model, right_view=self.sortAscRightView, right_button=self.sortAscRightButton)
def set_model_from_list(self, items: list, left=True): if left: model = self._left_model else: model = self._right_model model.clear() [model.appendRow(QtGui.QStandardItem(str(i))) for i in items] self.set_model(model, left=left)
def push_combo_boxes(self): left_item = self.comboBoxLeft.currentText() right_item = self.comboBoxRight.currentText() row = self.map_model.rowCount() for col, val in enumerate([left_item, right_item]): item = QtGui.QStandardItem(val) item.setEditable(False) self.map_model.setItem(row, col, item)
def get_filesystem_model(self): model = QtGui.QStandardItemModel() directories, files = [], [] dir_row = 0 with self() as ftp: for dirname, subdirs, files in ftp.walk(): dir_item = QtGui.QStandardItem(dirname) directories.append(dirname) file_row = 0 for f in files: fp = dirname + "/" + f file_item = QtGui.QStandardItem(fp) dir_item.addChild(file_row, file_item) file_row += 1 model.setItem(dir_row, dir_item) dir_row += 1 return model
def set_renames(self, columns: list, fill_missing=True, include_found=False, clear_current=True): if clear_current: self.clear() renames = self.db.get_renames(columns, fill_missing=False) if include_found is False: renames = {key: value for key, value in renames.items() if value is None} if fill_missing is True: renames = {key: (value if value is not None else key) for key, value in renames.items()} idx = 0 for orig_name, new_name in renames.items(): oitem = QtGui.QStandardItem(orig_name) nitem = QtGui.QStandardItem(new_name) self.setItem(idx, 0, oitem) self.setItem(idx, 1, nitem) idx += 1
def set_folders(self, metadata, clear=True): if clear: self.clear() self.setHorizontalHeaderLabels(['folders/files']) data = defaultdict(list) for entry in metadata.entries: if '.' in entry.path_lower[-5:]: dirname = os.path.dirname(entry.path_lower) filename = os.path.basename(entry.path_lower) else: dirname = entry.path_lower filename = None data[dirname].append(filename) for dirname, files in sorted(data.items()): d = QtGui.QStandardItem(dirname) d.setEditable(False) files = [f for f in files if f] for f in files: f = QtGui.QStandardItem(f) f.setEditable(False) d.appendRow(f) self.appendRow(d)
def list_to_model(items): """ Creates a QtGui.StandardItemModel filled with QtGui.QStandardItems from the list of items. :param items: (list) of string-like items to store. :return: (QtGui.QStandardItemModel) With all items from the list. """ model = QtGui.QStandardItemModel() for i in items: model.appendRow(QtGui.QStandardItem(i)) return model
def sync_columns(self): current_items = [i.text() for i in self.get_items()] current_checked = [i.text() for i in self.get_items_checked()] checkstates = {c:(True if c in current_checked else False) for c in current_items} self.clear() cols = [str(c) for c in self.df.columns] cols = [QtGui.QStandardItem(c) for c in sorted(cols)] for c in cols: checked = checkstates.get(c.text(), False) if not checked: checkstate = QtCore.Qt.Unchecked else: checkstate = QtCore.Qt.Checked c.setCheckable(True) c.setEditable(False) c.setCheckState(checkstate) self.appendRow(c)
def create_standard_item(name, editable=False, checkable=False): item = QtGui.QStandardItem(str(name)) item.setEditable(editable) item.setCheckable(checkable) return item
def __init__(self, items=None): super(FieldsListModel, self).__init__() if items: for item in items: item = QtGui.QStandardItem(item) self.appendRow(item)
def _handle_new_name(self, name): return QtGui.QStandardItem(name)
def _handle_dtype(self, dtype): return QtGui.QStandardItem(str(dtype))