assignprofiledialog.py 1.59 KB
Newer Older
1 2 3 4
import sys
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from krita import *
5 6


7 8 9 10 11 12 13 14 15 16
class AssignProfileDialog(Extension):

    def __init__(self, parent):
        super().__init__(parent)

    def assignProfile(self):
        doc = Application.activeDocument()
        if doc == None:
            QMessageBox.information(Application.activeWindow().qwindow(), "Assign Profile", "There is no active document.")
            return
17

18
        self.dialog = QDialog(Application.activeWindow().qwindow())
19

20 21 22
        self.cmbProfile = QComboBox(self.dialog)
        for profile in sorted(Application.profiles(doc.colorModel(), doc.colorDepth())):
            self.cmbProfile.addItem(profile)
23

24 25 26 27 28 29 30 31 32 33 34 35
        vbox = QVBoxLayout(self.dialog)
        vbox.addWidget(self.cmbProfile)
        self.buttonBox = QDialogButtonBox(self.dialog)
        self.buttonBox.setOrientation(QtCore.Qt.Horizontal)
        self.buttonBox.setStandardButtons(QDialogButtonBox.Ok | QDialogButtonBox.Cancel)
        self.buttonBox.accepted.connect(self.dialog.accept)
        self.buttonBox.accepted.connect(self.accept)
        self.buttonBox.rejected.connect(self.dialog.reject)
        vbox.addWidget(self.buttonBox)
        self.dialog.show()
        self.dialog.activateWindow()
        self.dialog.exec_()
36

37 38 39 40 41
    def accept(self):
        doc = Application.activeDocument()
        doc.setColorProfile(self.cmbProfile.currentText())

    def setup(self):
Boudewijn Rempt's avatar
Boudewijn Rempt committed
42
        action = Application.createAction("assing_profile_to_image", "Assign Profile to Image")
43 44 45
        action.triggered.connect(self.assignProfile)

Scripter.addExtension(AssignProfileDialog(Application))