diff --git a/actions/animlayers.action b/actions/animlayers.action new file mode 100644 index 0000000..be27f3f --- /dev/null +++ b/actions/animlayers.action @@ -0,0 +1,43 @@ + + + + + AnimLayers + + + Play + Start and stop animation + Start and stop animation + + + + + false + + + + + Step forth + Step one frame forth + Step one frame forth + + + + + false + + + + + Step back + Step one frame back + Step one frame back + + + + + false + + + + diff --git a/img/animlayersshortcuts.png b/img/animlayersshortcuts.png new file mode 100644 index 0000000..08f7144 Binary files /dev/null and b/img/animlayersshortcuts.png differ diff --git a/pykrita/animlayers/animlayers.py b/pykrita/animlayers/animlayers.py index b1e03a8..5fb5214 100644 --- a/pykrita/animlayers/animlayers.py +++ b/pykrita/animlayers/animlayers.py @@ -9,11 +9,45 @@ from PyQt5.QtWidgets import (QWidget, QLabel, QPushButton, QLineEdit, QGridLayout, QCheckBox) from krita import (Krita, Extension, DockWidget, DockWidgetFactory, DockWidgetFactoryBase) +animlayersinst = None + class layer: def __init__(self, node, visible): self.node = node self.visible = visible +def animlayersplay(): + global animlayersinst + if animlayersinst != None: + animlayersinst.playClicked() + +def animlayersstepforth(): + global animlayersinst + if animlayersinst != None: + animlayersinst.stepClicked() + +def animlayersstepback(): + global animlayersinst + if animlayersinst != None: + animlayersinst.stepBackClicked() + +class AnimLayersExtension(Extension): + def __init__(self, parent): + super(AnimLayersExtension, self).__init__(parent) + + def setup(self): + pass + + def createActions(self, window): + actionplay = window.createAction("animlayers_play", i18n("Play")) + actionplay.triggered.connect(animlayersplay) + actionstepforth = window.createAction("animlayers_stepforth", i18n("Step forth")) + actionstepforth.triggered.connect(animlayersstepforth) + actionstepback = window.createAction("animlayers_stepback", i18n("Step back")) + actionstepback.triggered.connect(animlayersstepback) + +Scripter.addExtension(AnimLayersExtension(Krita.instance())) + class AnimLayersDocker(DockWidget): def __init__(self): @@ -30,9 +64,12 @@ def __init__(self): self.outputlines = [] self.outputlinescnt = [] - self.setWindowTitle('AnimLayers') + self.setWindowTitle(i18n("AnimLayers")) self.initUI() + global animlayersinst + animlayersinst = self + def initUI(self): widget = QWidget() widget.setContentsMargins(10, 10 , 10, 10) @@ -249,5 +286,5 @@ def output(self, text): def canvasChanged(self, canvas): pass - + Application.addDockWidgetFactory(DockWidgetFactory("animlayers", DockWidgetFactoryBase.DockRight, AnimLayersDocker))