def show_synced(self, is_sync: bool) -> None: p1 = QPixmap(self.icon().pixmap(self.icon().actualSize(QSize(1024, 1024)))) p2 = self.get_icon(is_sync) mode = QPainter.CompositionMode_SourceOver s = p1.size().expandedTo(p2.size()) result = QPixmap(s) result.fill(Qt.transparent) painter = QPainter(result) painter.setRenderHint(QPainter.Antialiasing) painter.drawPixmap(QPoint(), p1) painter.setCompositionMode(mode) painter.drawPixmap(result.rect(), p2, p2.rect()) painter.end() self.setIcon(QIcon(result))
def setIcons(self) -> None: settings = QSettings() colored = str(settings.value('iconColors', 'True')) == 'True' self._icons: Dict[str, QIcon] = {} pixmap = QPixmap(str(getRuntimePath('resources/icons/dia.ico'))) painter = QPainter(pixmap) painter.setCompositionMode(QPainter.CompositionMode_SourceIn) painter.fillRect(pixmap.rect(), QColor('#427aa1') if colored else QColor('#333333')) painter.end() self._icons['mod'] = QIcon(pixmap) pixmap = QPixmap(str(getRuntimePath('resources/icons/puzzle.ico'))) painter = QPainter(pixmap) painter.setCompositionMode(QPainter.CompositionMode_SourceIn) painter.fillRect(pixmap.rect(), QColor('#aad576') if colored else QColor('#333333')) painter.end() self._icons['dlc'] = QIcon(pixmap) pixmap = QPixmap(str(getRuntimePath('resources/icons/folder.ico'))) painter = QPainter(pixmap) painter.setCompositionMode(QPainter.CompositionMode_SourceIn) painter.fillRect(pixmap.rect(), QColor('#E55934') if colored else QColor('#333333')) painter.end() self._icons['bin'] = QIcon(pixmap) pixmap = QPixmap(str(getRuntimePath('resources/icons/patch.ico'))) painter = QPainter(pixmap) painter.setCompositionMode(QPainter.CompositionMode_SourceIn) painter.fillRect(pixmap.rect(), QColor('#b08968') if colored else QColor('#333333')) painter.end() self._icons['pat'] = QIcon(pixmap) pixmap = QPixmap(str(getRuntimePath('resources/icons/question.ico'))) painter = QPainter(pixmap) painter.setCompositionMode(QPainter.CompositionMode_SourceIn) painter.fillRect(pixmap.rect(), QColor('#ffcf40') if colored else QColor('#333333')) painter.end() self._icons['udf'] = QIcon(pixmap)