1. 14 Jan, 2021 1 commit
  2. 15 Dec, 2020 1 commit
  3. 27 Nov, 2020 1 commit
  4. 27 Oct, 2020 1 commit
    • Dmitry Kazakov's avatar
      Workaround a deadlock when painting on a vector selection with Instant Preview · fe6d1d6c
      Dmitry Kazakov authored
      Instant Preview is based on running two consequent with different
      level of detail, but our vector selection don't support that. More
      than that, when starting a paint operation on a vector selection,
      it should be flattened into a pixel selection. Which means that in LoD
      mode the flattening will happen twice.
      
      Ideally, we should somehow make KisSelection survive flattening in
      two separate LoD strokes, but I'm not sure it is really worth the
      effort.
      
      The downsides of the patch are:
      
      1) The first painting stroke on a selection based layer or
         mask with vector selection will always be executed without
         instant preview. It affects all mask, generator layers and
         filter layers.
      
      2) The first applicaiton of a filter on such a layer will also
         be slow.
      
      BUG:428260
      CC:kimageshop@kde.org
      fe6d1d6c
  5. 07 Oct, 2020 1 commit
  6. 03 Sep, 2020 1 commit
    • Eoin O'Neill's avatar
      Scalar Channel Cache Corrections · 63024f5e
      Eoin O'Neill authored
      Missing signal bind caused cache to not correctly update when
      changing scalar channel interpolation modes or tangents. Previously,
      only value worked.
      63024f5e
  7. 01 Sep, 2020 2 commits
  8. 06 Aug, 2020 2 commits
  9. 22 Jul, 2020 1 commit
  10. 08 Jul, 2020 1 commit
    • Eoin O'Neill's avatar
      Reimplemented ability to add opacity keyframes to the Curves docker. · 3be762c2
      Eoin O'Neill authored
      Removing AnimationDocker caused a regression where the curves docker
      could no longer have opacity keys added. For the time being, the ability
      to add opacity keys has now been restored by having the add key button
      work as expected.
      
      **How it should work once more than one key is supported**
      
      When we eventually add Transform Mask keys, the user should be able to
      drop down a series of check boxes for the "add key" button which gives
      them the ability to enable and disable certain channels. This should be
      managed by adding actions to a QToolButton that enable and disable
      all supported channels. Since opacity is really the only channel we
      currently support, this isn't necessary, but we should keep this in mind.
      3be762c2
  11. 17 Jun, 2020 1 commit
    • Emmet O'Neill's avatar
      New "Isolate Active Group" Isolation Mode. · 71c65dcb
      Emmet O'Neill authored
      Users now have two layer isolation mode options.
      
      The original "Isolate Active Layer" (context menu item or alt+click) mode that displays only the active
      layer, as well as a new "Isolate Active Group" (context menu item only
      for now) mode that displays all of the sibling layers in a given group.
      
      Requested by Bollebib!
      
      BUG:377468
      71c65dcb
  12. 02 Jun, 2020 1 commit
  13. 12 May, 2020 1 commit
  14. 08 Apr, 2020 2 commits
  15. 20 Mar, 2020 2 commits
    • Eoin O'Neill's avatar
      Opacity Keyframes Cache Correction -- Data-Race Correction · 20072696
      Eoin O'Neill authored
      Fixed Data-Race issue where DefaultBounds were incorrectly cloned when
      cloning an image. This datarace caused undefined behavior that is now
      corrected and helps with rendering Opacity Keyframes.
      
      Added a new KisDefaultBoundsNodeWrapper class to handle bounds accessing
      and checking inside of keyframe channels. This allows for easier copy
      constructors for KisKeyframeChannels and helps keep data pointer logic
      more consistent.
      
      Now, when images are cloned, they are always pointing to the correct
      time index.
      20072696
    • Eoin O'Neill's avatar
      Opacity Keyframes Cache Correction -- Affected Frames Correction · 12ca3f66
      Eoin O'Neill authored
      Opacity Keyframes highlighted an issue with the original algorithm for
      detecting the number of affected frames with scalar keyframes. It wouldn't
      always report the correct number of frames to calculate for cahcing. This
      fixes that issue by taking into account the type of interpolation that
      exists between the two keys.
      
      Opacity Keyframes work with KisAnimationCachePopulator but have data-race
      issues with the KisAsyncAnimationRenderBase. This is addressed in the next
      commit.
      12ca3f66
  16. 18 Mar, 2020 1 commit
  17. 24 Sep, 2019 1 commit
  18. 13 Sep, 2019 1 commit
    • Dmitry Kazakov's avatar
      Set "Show in Timeline" to "on" by default · 3def70fa
      Dmitry Kazakov authored
      During the sprint we discussed that with painters and they said that
      it would be much easier for them if all the layers would be visible
      in the timeline by default. If the user can always hide a layer if
      he likes.
      
      CC:kimageshop@kde.org
      3def70fa
  19. 28 Jun, 2019 1 commit
    • Agata Cacko's avatar
      Fix cloning not-opacity scalar keyframe channels · 54928c45
      Agata Cacko authored
      Before this commit, duplicating a layer with keyframe channels
      that weren't specifically an opacity keyframe channel resulted in
      loss of those channels. This commit provides an universal solution for
      all scalar kyeframe channels available.
      
      At this point there is no way of making a scalar keyframe channel
      except for opacity keyframes unless you make a change in the code and
      compile it yourself (see animation_docker.cpp, line 508), so there
      is/should be no change in behaviour for users. However if you enable
      animated transform masks, this become crucial for both duplicating
      layers and saving the file with keyframes (it doesn't work for now,
      but without this commit it most probably wouldn't).
      54928c45
  20. 23 May, 2019 1 commit
  21. 04 May, 2019 1 commit
    • Dmitry Kazakov's avatar
      Implement a projection store for masks (for indirect painting) · 0ed30208
      Dmitry Kazakov authored
      We have implemented correct painting on masks, but we have never
      implemented a projection for them. Indeed, for normal rendering
      process they don't need it. But when a mask is selected in isolated
      mode, it still needs a projection, so that the use could see the result
      of the painting.
      
      BUG:403576
      0ed30208
  22. 03 Oct, 2018 1 commit
  23. 09 Aug, 2018 1 commit
  24. 05 Apr, 2018 1 commit
  25. 02 Jan, 2018 1 commit
  26. 12 Oct, 2017 1 commit
  27. 19 Sep, 2017 1 commit
  28. 27 Jul, 2017 1 commit
  29. 30 May, 2017 1 commit
    • Halla Rempt's avatar
      Return a map instead of a list of frames · b0701693
      Halla Rempt authored
      Creating a new list with map.values() is very expensive, and not
      necessary in the places where the we iterate over the frames,
      because we can directly iterate on a map and get the values.
      b0701693
  30. 20 Apr, 2017 1 commit
  31. 14 Mar, 2017 1 commit
    • Thorsten Zachmann's avatar
      Add Layer thumbnail on the timeline on hover · 0c3efa57
      Thorsten Zachmann authored
      It also fixes the tooltip used for e.g. the brush to show the brush in
      the tooltip.
      Additionally it is possible to show the tooltip by pressing the middle
      button.
      
      Closes T3499 Layer thumbnail on the timeline on hover
      0c3efa57
  32. 14 Nov, 2016 1 commit
    • Frederik Gladhorn's avatar
      KisBaseNode::Private - clean up ctor · 78187525
      Frederik Gladhorn authored
      Arranging the layout of the private class according to storage size
      (bools next to each other allows the compiler to potentially pack them
      tighter) and use initializers as much as possible.
      78187525
  33. 10 Nov, 2016 1 commit
  34. 18 Oct, 2016 1 commit
  35. 16 Sep, 2016 1 commit
  36. 19 Jul, 2016 1 commit