1. 12 Jun, 2019 1 commit
  2. 27 May, 2019 1 commit
  3. 06 May, 2019 1 commit
  4. 24 Apr, 2019 1 commit
    • Kuntal  Majumder's avatar
      Add pixel snap mode to canvas · 6ed77027
      Kuntal Majumder authored
      This patch adds a Pixel snap mode to the global snapping menu.
      Pixel snapping is just snapping to every next pixel, think of it
      as Grid Snapping with a Grid of 1px width and 0px offset.
      
      BUG:390952
      
      Reviewed By: @dkazakov
      Reference : kde/krita!9
      6ed77027
  5. 21 Oct, 2018 1 commit
  6. 09 Sep, 2018 1 commit
    • Dmitry Kazakov's avatar
      FEATURE: actions for rotate/scale/mirror/shear selection · 3014d62c
      Dmitry Kazakov authored
      Now Rotate/Scale/Mirror/Shear Layer actions also support
      handling a selection. If there is a selection active, then
      the action will transform selected content only.
      
      Now there are also 8 new actions, that will rotate/scale/
      mirror/shear *all* layers without resizing the image. These
      actions can also handle selections.
      
      Animation Note:
      
      * when no selection present, the actions transform *all*
        the frames of the layers in question
      
      * when there is a selection active, only current frame
        is transformed
      
      BUG:365595
      Ref T3920
      CC:kimageshop@kde.org
      3014d62c
  7. 04 Sep, 2018 2 commits
    • Dmitry Kazakov's avatar
      FEATURE: Edit Seleciton action · 0dbdd41a
      Dmitry Kazakov authored
      This action just activates the current selection mask
      (even when it is hidden as a global selection mask) and
      activates a corresponding transformation tool: either
      shape manipulation tool or raster transform tool.
      
      Ref T9486
      CC:kimageshop@kde.org
      0dbdd41a
    • Dmitry Kazakov's avatar
      FEATURE: Convert to Raster/Vector Selection menu actions · 6018f2bb
      Dmitry Kazakov authored
      Now the menu has two actions: Convert to Raster and
      Convert to Vector selection. Previously, there was only
      the latter one present.
      
      These actions are also now available in the context menu
      in the selection tools.
      
      CC:kimageshop@kde.org
      Ref T9486
      6018f2bb
  8. 21 Aug, 2018 1 commit
    • Dmitry Kazakov's avatar
      Implement different types of Select Opaque action · bb92265f
      Dmitry Kazakov authored
      Now we have four different actions:
      
      * Select Opaque --- replaces the current selection
      * Select Opaque (Add) --- adds to the current selection
      * Select Opaque (Subtract) --- Subtracts from the current selection
      * Select Opaque (Intersect) --- Intersects with the current selection
      
      
      BUG:346892
      CC:kimageshop@kde.org
      bb92265f
  9. 30 Jun, 2018 1 commit
  10. 26 Jun, 2018 1 commit
    • Boudewijn Rempt's avatar
      Remove the recorder · 99238df1
      Boudewijn Rempt authored
      We've been disabling this in releases since forwever because itr was
      never even nearly finished: for instance, the wdgpaintactioneditor form
      was never used anywhere, most tools didn't implement the special
      recording code, all of our actions were never recorded.
      
      A design where extra code has to be added in multiple places for every
      single thing that we want to record isn't going to work.
      
      If we want to do a recorder, we should start thinking about how we can
      do this in a generic way, by having the UI generate xml or json that gets
      recorded and executed: I guess we'd need to add some kind of interpreter
      at the heart of Krita. But this is a dead end...
      
      CCMAIL:kimageshop@kde.org
      99238df1
  11. 21 Jun, 2018 1 commit
    • Boudewijn Rempt's avatar
      Remove the recorder · c8037eed
      Boudewijn Rempt authored
      We've been disabling this in releases since forwever because itr was
      never even nearly finished: for instance, the wdgpaintactioneditor form
      was never used anywhere, most tools didn't implement the special
      recording code, all of our actions were never recorded.
      
      A design where extra code has to be added in multiple places for every
      single thing that we want to record isn't going to work.
      
      If we want to do a recorder, we should start thinking about how we can
      do this in a generic way, by having the UI generate xml or json that gets
      recorded and executed: I guess we'd need to add some kind of interpreter
      at the heart of Krita. But this is a dead end...
      
      CCMAIL:kimageshop@kde.org
      c8037eed
  12. 22 May, 2018 1 commit
  13. 31 Mar, 2018 1 commit
    • Boudewijn Rempt's avatar
      Remove the lock, collapse and hide option for dock titlebars · b662043a
      Boudewijn Rempt authored
      On asking around, it seems that even Krita power users were not
      using these options. New users to Krita seemed unable to grasp this
      functionality altogether. And we were always having trouble managing
      the locked and collapsed state of dockers.
      
      Note that not having a custom titlebar widget also makes it impossible
      to keep having an option to remove the titlebars altogether, which was
      another way to force the dockers to stay in one place.
      
      A side-effect is that on macOS, floating dockers are resizable now.
      
      BUG:385238
      CCBUG:392538
      CCMAIL:kimageshop@kde.org
      b662043a
  14. 28 Mar, 2018 1 commit
  15. 26 Mar, 2018 1 commit
  16. 14 Mar, 2018 1 commit
    • Boudewijn Rempt's avatar
      Create actions per-window instead of per-application · e9b06616
      Boudewijn Rempt authored
      Note that this changes the libkis scripting api. The Extension
      class now has two methods: setup and createActions. Old code
      was like this:
      
      from PyQt5.QtGui import *
      from PyQt5.QtWidgets import *
      from krita import *
      
      def hello():
          QMessageBox.information(QWidget(), "Test", "Hello World")
      
      class HelloExtension(Extension):
      
        def __init__(self, parent):
            super().__init__(parent)
      
        def setup(self):
            action = Krita.createAction("Hello")
            action.triggered.connect(hello)
      
      Krita.instance().addExtension(HelloExtension(Krita.instance()))
      
      New code is like this:
      
      from PyQt5.QtGui import *
      from PyQt5.QtWidgets import *
      from krita import *
      
      def hello():
          QMessageBox.information(QWidget(), "Test", "Hello World")
      
      class HelloExtension(Extension):
      
        def __init__(self, parent):
            super().__init__(parent)
      
        def setup(self):
            pass
      
        def createActions(self, window):
            action = window.createAction("Hello")
            action.triggered.connect(hello)
      
      Krita.instance().addExtension(HelloExtension(Krita.instance()))
      
      This also adds a new parameter to createAction: the menu location. This
      is a path separated by /, for instance tools/scripts. Note that this
      path must exist, otherwise a crash will happen. The paths are defined in
      krita4.xmlgui...
      
      BUG:391705
      
      Note: we're still leaking Action objects created in Window::createAction;
      that's the next fix.
      
      CCMAIL:kimageshop@kde.org
      e9b06616
  17. 15 Feb, 2018 1 commit
  18. 01 Feb, 2018 1 commit
  19. 16 Jan, 2018 1 commit
  20. 08 Jan, 2018 1 commit
  21. 31 Dec, 2017 1 commit
  22. 07 Nov, 2017 1 commit
  23. 30 Oct, 2017 1 commit
    • Wolthera van Hövell's avatar
      [FEATURE] Add "convert to file layer" command to file layers. · bb3aaece
      Wolthera van Hövell authored
      This adds an action that can be triggered on any non referencing layer(so not file or clone layers).
      
      This action will request a file name, and then save the layer(if a group layer, with everything in it)
      into a seperate file. It will then replace the layer in the old with with a file layer referencing the
      new file.
      
      The idea behind this one is that if people's layer stacks become too complicated,
      they can save out a section of it to a file layer, reducing the complexity of the document.
      
      CCMAIL:Kimageshop@kde.org
      Differential Revision: https://phabricator.kde.org/D8360
      bb3aaece
  24. 28 Oct, 2017 1 commit
  25. 28 Aug, 2017 1 commit
  26. 21 Aug, 2017 1 commit
  27. 17 Aug, 2017 1 commit
  28. 15 Aug, 2017 1 commit
  29. 27 Jun, 2017 1 commit
  30. 26 Jun, 2017 1 commit
  31. 25 Jun, 2017 3 commits
  32. 15 Jun, 2017 1 commit
  33. 04 Jun, 2017 1 commit
  34. 04 Apr, 2017 1 commit
  35. 14 Mar, 2017 1 commit
    • Dmitry Kazakov's avatar
      Implement copy-pasting of shapes! · 1189dccb
      Dmitry Kazakov authored
      This patch implements the following:
      
      1) The shapes can be copy/pasted inside Krita
      2) The shapes can be copy/pasted Krita->Inkscape
         (reverse does not yet work)
      3) There are two shortcuts (reverse to Inkscape :( )
         Ctrl+V paste at original position
         Ctrl+Alt+V paste at cursor position
      
      CC:kimageshop@kde.org
      1189dccb
  36. 13 Dec, 2016 1 commit
  37. 24 Oct, 2016 1 commit