def updateTables(self): self.ui.table.setRowCount(len( self.repos)) # redraw table to update for any changes for i, r in enumerate(self.repos): self.ui.table.setItem(i, 1, QTableWidgetItem(r[0])) colourcell = QTableWidgetItem(f"0x{str(hex(r[1]))[2:].zfill(6)}") colourcell.setBackground(QColor(r[1])) colourcell.setFlags(colourcell.flags() & ~Qt.ItemIsEditable) self.ui.table.setItem(i, 0, colourcell) # total objects in nested dict, length of all values + number of columns self.ui.initable.setRowCount( sum(len(v) for v in self.inicontents.values()) + len(self.inicontents)) secfont = QFont() secfont.setFamily(u"Sans Serif") secfont.setBold(True) pos = 0 for sec in self.inicontents: item = QTableWidgetItem(sec) item.setFont(secfont) item.setFlags(item.flags() & ~Qt.ItemIsEditable) self.ui.initable.setItem(pos, 0, item) item = QTableWidgetItem() # empty tile next to section header item.setFlags( item.flags() & ~Qt.ItemIsEditable) # done to prevent editing the blank space self.ui.initable.setItem(pos, 1, item) pos += 1 for k, v in zip(self.inicontents[sec].keys(), self.inicontents[sec].values()): self.ui.initable.setItem(pos, 0, QTableWidgetItem(k)) self.ui.initable.setItem(pos, 1, QTableWidgetItem(v)) pos += 1
def update_locations(self): self.locations_table.setUpdatesEnabled(False) self.locations_table.setRowCount(0) for i in range(2): if i == 0: if self.scope() == QSettings.SystemScope: continue actualScope = QSettings.UserScope else: actualScope = QSettings.SystemScope for j in range(2): if j == 0: if not self.application(): continue actualApplication = self.application() else: actualApplication = '' settings = QSettings(self.format(), actualScope, self.organization(), actualApplication) row = self.locations_table.rowCount() self.locations_table.setRowCount(row + 1) item0 = QTableWidgetItem() item0.setText(settings.fileName()) item1 = QTableWidgetItem() disable = not (settings.childKeys() or settings.childGroups()) if row == 0: if settings.isWritable(): item1.setText("Read-write") disable = False else: item1.setText("Read-only") self.button_box.button(QDialogButtonBox.Ok).setDisabled(disable) else: item1.setText("Read-only fallback") if disable: item0.setFlags(item0.flags() & ~Qt.ItemIsEnabled) item1.setFlags(item1.flags() & ~Qt.ItemIsEnabled) self.locations_table.setItem(row, 0, item0) self.locations_table.setItem(row, 1, item1) self.locations_table.setUpdatesEnabled(True)