예제 #1
0
    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
예제 #2
0
    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)