def setForeground(self): foregroundFile = QFileDialog.getOpenFileName( self, Krita.krita_i18n("Select foreground image"), filter=Krita.krita_i18n("Images (*.png *.xpm *.jpg)"))[0] self.foregroundImage.load(foregroundFile) writeTag("custom-preview-fg", foregroundFile) self.refresh() print("Custom Preview: Foreground set to " + foregroundFile)
def setBackground(self): backgroundFile = QFileDialog.getOpenFileName( self, Krita.krita_i18n("Select background image"), filter=Krita.krita_i18n("Images (*.png *.xpm *.jpg)"))[0] self.backgroundImage.load(backgroundFile) writeTag("custom-preview-bg", backgroundFile) self.refresh() print("Custom Preview: Background set to " + backgroundFile)
def __init__(self): super().__init__() self.setWindowTitle(Krita.krita_i18n("Custom Preview")) self.foregroundImage = QImage() self.backgroundImage = QImage() layout = QVBoxLayout() layout.setAlignment(Qt.AlignCenter) # PREVIEW self.previewContainer = QWidget() layout.addWidget(self.previewContainer) self.previewContainer.setContentsMargins(0, 0, 0, 0) previewContainerLayout = QHBoxLayout() previewContainerLayout.setContentsMargins(0, 0, 0, 0) previewContainerLayout.setSpacing(0) self.previewContainer.setLayout(previewContainerLayout) self.scrollArea = QScrollArea() previewContainerLayout.addWidget(self.scrollArea) self.scrollArea.setHorizontalScrollBarPolicy(Qt.ScrollBarAlwaysOff) self.scrollArea.setVerticalScrollBarPolicy(Qt.ScrollBarAlwaysOff) self.scrollArea.setWidgetResizable(True) self.scrollArea.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) self.previewLabel = QLabel() self.scrollArea.setWidget(self.previewLabel) # BUTTONS self.buttonLayout = QHBoxLayout() layout.addLayout(self.buttonLayout) self.buttonLayout.setAlignment(Qt.AlignLeft) setForegroundAtn = QAction(self) setForegroundAtn.setIconText("Set foreground") setForegroundAtn.setIcon(KI.icon("object-order-front-calligra")) setForegroundAtn.triggered.connect(self.setForeground) setForegroundBtn = QToolButton() setForegroundBtn.setDefaultAction(setForegroundAtn) self.buttonLayout.addWidget(setForegroundBtn) setBackgroundAtn = QAction(self) setBackgroundAtn.setIconText(Krita.krita_i18n("Set background")) setBackgroundAtn.setIcon(KI.icon("object-order-back-calligra")) setBackgroundAtn.triggered.connect(self.setBackground) setBackgroundBtn = QToolButton() setBackgroundBtn.setDefaultAction(setBackgroundAtn) self.buttonLayout.addWidget(setBackgroundBtn) removeAtn = QAction(self) removeAtn.setIconText( Krita.krita_i18n("Remove foreground and background")) removeAtn.setIcon(KI.icon("list-remove")) removeAtn.triggered.connect(self.removeForegroundAndBackground) removeBtn = QToolButton() removeBtn.setDefaultAction(removeAtn) self.buttonLayout.addWidget(removeBtn) self.zoomComboBox = QComboBox(self) self.zoomComboBox.addItem( "Auto fit", lambda w, h: (self.previewContainer.contentsRect().width() - self.scrollArea .contentsMargins().top() * 2, self.previewContainer.contentsRect( ).height() - self.scrollArea.contentsMargins().top() * 2)) for scale in [0.5, 1, 2, 4]: self.zoomComboBox.addItem("{:d}%".format(int(100 * scale)), lambda w, h, scale=scale: (w * scale, h * scale)) self.buttonLayout.addWidget(self.zoomComboBox) mainWidget = QWidget(self) mainWidget.setLayout(layout) self.setWidget(mainWidget) self.startTimer(500) # refresh twice a second