1. 22 Apr, 2021 2 commits
  2. 20 Apr, 2021 1 commit
  3. 07 Apr, 2021 1 commit
  4. 01 Apr, 2021 1 commit
  5. 24 Mar, 2021 1 commit
  6. 18 Mar, 2021 3 commits
  7. 17 Mar, 2021 1 commit
  8. 09 Mar, 2021 2 commits
  9. 02 Mar, 2021 1 commit
    • Halla Rempt's avatar
      Port all QTEST_MAIN tests to SIMPLE_TEST_MAIN · 2cc0c173
      Halla Rempt authored
      This sets
      
      QStandardPaths::setTestModeEnabled(true);
      
      so the tests don't clutter the regular appdata location, but put
      everything in an easily cleanable .qttest folder.
      
      Please don't create any new tests with QTEST_MAIN
      
      There were also a small number of tests that werent built at all,
      and consequently, when adding them back to the build, failed to
      build. Those are removed.
      
      CCMAIL:kimageshop@kde.org
      2cc0c173
  10. 10 Feb, 2021 1 commit
  11. 19 Jan, 2021 1 commit
  12. 15 Jan, 2021 2 commits
    • Halla Rempt's avatar
      Add convenience method to print a backtrace · 93b6c70e
      Halla Rempt authored
      93b6c70e
    • Dmitry Kazakov's avatar
      Implement proper compression for the filter dialog · 029deeef
      Dmitry Kazakov authored
      The patch consists of three different changes:
      
      1) CancelSilentlyMarker is changed from a job to an atomic flag.
         Before this change, the job used to be cancelled before the
         actual flag was reset. It caused too many unnecessary updates
         to happen.
      
      2) KisFilterStrokeStrategy now provides a cookie to show whether
         the procesing has finished or not.
      
      3) This cookie is used in a new mode in KisSignalCompressor. This
         mode works as the normal FIRST_ACTIVE mode, with one exception:
         it has "the second" shorter timer that checks if the queue is
         already idle. If it is idle, then the signal will be passed
         before the normal deadline. This mode is activated by calling
         the second override of setDelay() that accepts isIdle callback
         for the state of the queue.
      029deeef
  13. 14 Jan, 2021 1 commit
  14. 11 Jan, 2021 2 commits
  15. 08 Jan, 2021 5 commits
    • Dmitry Kazakov's avatar
      Implement "Scale handles proportionally" feature for the mesh transform · a7220ca0
      Dmitry Kazakov authored
      When the user moves a node, the handles of the neighbouring nodes may
      overlap. To avoid that we should shrink the size of the handles when
      the distance between two nodes decreases.
      
      The patch implements an option for the mesh transform tool that
      activates such scaling (disabled by default).
      
      This feature cannot go into 4.4.2 because of the string freeze.
      
      CC:kimageshop@kde.org
      
      # Conflicts:
      #	plugins/tools/tool_transform2/tool_transform_args.h
      a7220ca0
    • Dmitry Kazakov's avatar
      Implement an algorithm for elastic motion of a point · 43a242ce
      Dmitry Kazakov authored
      The algoritm imitates a point tied to a set of anchor points
      using the springs. It might be used for deformation of
      polygonal objects (was developed fo free patch deform action,
      but was discarded at a later stage).
      43a242ce
    • Dmitry Kazakov's avatar
      Implement findTrianglePoint algorithm · c54f82cb
      Dmitry Kazakov authored
      It searches for the third point of a triangle based on the triangle's
      sizes.
      
      (the algorithm is not used in Krita code itself, only in a unittest)
      c54f82cb
    • Dmitry Kazakov's avatar
      Add an algorithm for finding intersections between a line and a bezier curve · b742c3c0
      Dmitry Kazakov authored
      It is not used anywhere is Krita yet (was developed as part of testing
      for free patch deform action).
      b742c3c0
    • Dmitry Kazakov's avatar
      Implement a new free patch deform algorithm · dad2c40a
      Dmitry Kazakov authored
      The algorithm should also move the nodes as well. The patch
      also implements a new Shift-mode:
      
      Shift+drag-patch --- drags the patch without modifying the handles
      
      The main idea of the algorithm is: it gest the offset budget from
      the user's drag and splits it among the following moves:
      
      * translate all four nodes if the patch
      * offset the nearest segment
      * translate the nearest node (or the two nodes of the nearest segment)
      
      CC:kimageshop@kde.org
      dad2c40a
  16. 15 Dec, 2020 1 commit
  17. 02 Dec, 2020 2 commits
  18. 30 Nov, 2020 2 commits
    • Dmitry Kazakov's avatar
      Implement tool options for the mesh transformation mode · dddb3d30
      Dmitry Kazakov authored
      1) Add a checkbox for hiding bezier control points. Several independent
         painters said they don't need them.
      
      2) Add two spinboxes for reshaping the mesh
      
      # Conflicts:
      #	plugins/tools/tool_transform2/tool_transform_args.cc
      #	plugins/tools/tool_transform2/tool_transform_args.h
      dddb3d30
    • Dmitry Kazakov's avatar
      Fix inconvenient default shortcuts in the Mesh Transform tool · 4b4b1f4a
      Dmitry Kazakov authored
      The patch bascially makes symmetric transforms be the default choice
      available without any modifiers.
      
      Now the shortcuts are the following:
      
      1) Mesh node:
         - click+drag --- move node
      
      2) Border node:
         - click+drag --- move node
         - shift+click+drag --- move whole row/column
         - ctrl+alt+click+drag --- split/slide row/column
         - ctrl+alt+click+drag-away --- remove split
      
      3) Control point:
         - click+drag --- change control point symmetrically
         - shift+click+drag --- change control point non-symmetrically;
                                this action will create angular texture
                                artifacts
      4) Node or Control:
         - ctrl+click --- select multiple nodes
      
      5) Patch area:
         - click+drag --- free patch deform
         - shift+click+drag --- move whole mesh
      
      6) Empty area outside mesh:
         - click+drag --- rotate mesh or selection
         - ctrl+click+drag --- scale mesh or selection
         - shift+click+drag --- move mesh or selection
      
      CC:kimageshop@kde.org
      4b4b1f4a
  19. 27 Nov, 2020 3 commits
  20. 16 Nov, 2020 7 commits