diff --git a/plugins/extensions/pykrita/plugin/plugins/CMakeLists.txt b/plugins/extensions/pykrita/plugin/plugins/CMakeLists.txt --- a/plugins/extensions/pykrita/plugin/plugins/CMakeLists.txt +++ b/plugins/extensions/pykrita/plugin/plugins/CMakeLists.txt @@ -88,6 +88,7 @@ install_pykrita_plugin(palette_docker) install_pykrita_plugin(quick_settings_docker) install_pykrita_plugin(lastdocumentsdocker) +install_pykrita_plugin(scriptdocker) # if(PYTHON_VERSION_MAJOR VERSION_EQUAL 3) # install_pykrita_plugin(cmake_utils) diff --git a/plugins/extensions/pykrita/plugin/plugins/scriptdocker/__init__.py b/plugins/extensions/pykrita/plugin/plugins/scriptdocker/__init__.py new file mode 100644 --- /dev/null +++ b/plugins/extensions/pykrita/plugin/plugins/scriptdocker/__init__.py @@ -0,0 +1,2 @@ + # let's make a module +from .scriptdocker import * diff --git a/plugins/extensions/pykrita/plugin/plugins/scriptdocker/kritapykrita_scriptdocker.desktop b/plugins/extensions/pykrita/plugin/plugins/scriptdocker/kritapykrita_scriptdocker.desktop new file mode 100644 --- /dev/null +++ b/plugins/extensions/pykrita/plugin/plugins/scriptdocker/kritapykrita_scriptdocker.desktop @@ -0,0 +1,7 @@ +[Desktop Entry] +Type=Service +ServiceTypes=Krita/PythonPlugin +X-KDE-Library=scriptdocker +X-Python-2-Compatible=false +Name=Script Docker +Comment=A Python-based docker for create actions and point to Python scripts diff --git a/plugins/extensions/pykrita/plugin/plugins/scriptdocker/scriptdocker.py b/plugins/extensions/pykrita/plugin/plugins/scriptdocker/scriptdocker.py new file mode 100644 --- /dev/null +++ b/plugins/extensions/pykrita/plugin/plugins/scriptdocker/scriptdocker.py @@ -0,0 +1,49 @@ +from PyQt5.QtWidgets import (QWidget, QVBoxLayout, QListView, QFormLayout, + QHBoxLayout, QPushButton, QLineEdit) +import krita + + +class ScriptDocker(krita.DockWidget): + + def __init__(self): + super(ScriptDocker, self).__init__() + + self.baseWidget = QWidget() + self.layout = QVBoxLayout() + self.scriptsLayout = QFormLayout() + self.addButton = QPushButton("Add Script") + self.actions = [] + + self.layout.addLayout(self.scriptsLayout) + self.layout.addWidget(self.addButton) + self.baseWidget.setLayout(self.layout) + self.setWidget(self.baseWidget) + + self.setWindowTitle("Script Docker") + self.addButton.clicked.connect(self.addEmptyForm) + + def canvasChanged(self, canvas): + pass + + def addEmptyForm(self): + directorySelectorLayout = QHBoxLayout() + directoryTextField = QLineEdit() + directoryDialogButton = QPushButton("...") + + directorySelectorLayout.addWidget(directoryTextField) + directorySelectorLayout.addWidget(directoryDialogButton) + + self.scriptsLayout.addRow("Script {0}".format(self.scriptsLayout.rowCount() + 1), directorySelectorLayout) + + + def loadActions(self): + pass + + def readSettings(self): + pass + + def writeSettings(self): + pass + + +Application.addDockWidgetFactory(krita.DockWidgetFactory("scriptdocker", krita.DockWidgetFactoryBase.DockRight, ScriptDocker))