1. 13 Sep, 2019 2 commits
    • Agata Cacko's avatar
      Fix curve changing with sensors w/ Use Same Curve · 542da22b
      Agata Cacko authored
      Before this commit, curve would change semi-randomly in some cases
      if you change from some specific sensors to some other specific sensors
      (having a complex curve and clicking randomly should show a bug though)
      when "Share curve across all settings" is selected.
      This commit fixes that behaviour.
      
      BUG:383909
      CCBUG:410158
      542da22b
    • Agata Cacko's avatar
      Replace cache with a new variable in curve option · 43c2bad8
      Agata Cacko authored
      Before this commit, "Use the same curve" (precisely,
      "Share curve across all settings") was done using
      (1) rewriting values in sensors to the selected curve
      (2) cached curves for all the sensors in case the user changes
      their mind and wants the previous ones.
      
      This behaviour brings confusion and is hard to debug, hence
      the change.
      
      This commit adds a new separate variable that keeps the
      "common curve", so all sensors has their own curves.
      There is no need for caching or restoring, it just needs
      to be clear that when the Use The Same Curve checkbox is
      checked, the value from the common curve needs to be taken
      instead of the curve from the sensor in question.
      43c2bad8
  2. 15 Aug, 2019 1 commit
    • Agata Cacko's avatar
      Fix Strength not used in Rotation - Fuzzy Dab · 3602c724
      Agata Cacko authored
      Before this commit, if you chose Fuzzy Dab sensor
      in Rotation option, the value of the Strength slider wouldn't
      affect the resulting rotation of the brush tip.
      This commit fixes that behaviour: now if you choose very low
      Strength and the first curve from the template ones,
      the brush tip will rotate only slightly (before it would rotate
      within the full 360* range).
      
      * Fuzzy Dab is 'additive' kind of sensor, so it's value would be put
      in 'realAdditivePart' in rotationLikeValue(). 'constant' contains the
      value of 'Strength' slider. To get it working together,
      'realAdditivePart' had to be multiplied by the 'constant' value.
      
      * HSV option just ignored the problem and multiplied it by the value of
      the slider later. It couldn't be done for Rotation because Rotation
      takes the canvas rotation into account (see rotationLikeValue).
      Therefore it had to be done inside rotationLikeValue function, not
      later. Therefore the multiplication in HSV option had to be disabled
      to not double the effect.
      
      BUG:376179
      BACKPORT:krita/4.2
      3602c724
  3. 11 Oct, 2018 1 commit
    • Mehmet Salih Çalışkan's avatar
      Adjust selected curve point more accurately by using spin boxes · b5ff0a9f
      Mehmet Salih Çalışkan authored
      Summary:
      In order to adjust selected curve point accurately, spin boxes are added
      on x and y domain. Selected curve point can be re-positioned by editing
      these spin boxes.
      
      For non-numeric values and where the maximum value is 1.0, percentage
      is used; for time values in seconds, milliseconds is used. In
      order to emphasize this, suffixes are added to spin boxes.
      
      BUG: 396528
      
      {F6309671} {F6309672}
      
      Reviewers: #krita, #vdg, scottpetrovic, rempt
      
      Reviewed By: #krita, scottpetrovic, rempt
      
      Subscribers: rempt, langkamp, scottpetrovic
      
      Tags: #krita
      
      Differential Revision: https://phabricator.kde.org/D16008
      b5ff0a9f
  4. 07 Oct, 2018 1 commit
  5. 05 Aug, 2018 1 commit
  6. 15 May, 2018 1 commit
  7. 02 Nov, 2017 1 commit
  8. 22 Jan, 2017 1 commit
  9. 22 Nov, 2016 1 commit
  10. 24 Jun, 2016 1 commit
    • Dmitry Kazakov's avatar
      FEATURE: Implement per-stroke Fuzzy sensor · 81f2776f
      Dmitry Kazakov authored
      This patch also does a significant refactoring in the sensors
      computation framework. Now the Fuzzy sensors work correctly with
      Rotation, Hues, Saturation and Value options.
      
      The fuzzy sensor's curve is divided into tho halves: the leftmost part
      controls the negative offsets, the rightmost --- positive ones. Therefore
      you can control if your fuzzy sensor increases the output or decreases it.
      
      Please take into account that this rule works only for "relative" options,
      that is for Rotation, Hue, Saturation and Value.
      
      Ref T166
      CC:kimageshop@kde.org
      81f2776f
  11. 23 Jun, 2016 1 commit
    • Dmitry Kazakov's avatar
      FEATURE: Implement per-stroke Fuzzy sensor · 159a6126
      Dmitry Kazakov authored
      This patch also does a significant refactoring in the sensors
      computation framework. Now the Fuzzy sensors work correctly with
      Rotation, Hues, Saturation and Value options.
      
      The fuzzy sensor's curve is divided into tho halves: the leftmost part
      controls the negative offsets, the rightmost --- positive ones. Therefore
      you can control if your fuzzy sensor increases the output or decreases it.
      
      Please take into account that this rule works only for "relative" options,
      that is for Rotation, Hue, Saturation and Value.
      
      Ref T166
      CC:kimageshop@kde.org
      159a6126
  12. 20 Jun, 2016 1 commit
    • Boudewijn Rempt's avatar
      Make all KisSerializeConfiguration objects shared pointers · c1fb1319
      Boudewijn Rempt authored
      This is a huge and dangerous refactoring: I think we will find
      double delete crashes for some time to come, though starting krita,
      painting, filtering and closing work without problems. We were
      leaking these configuration objects all over the place, though, since
      there was no ownership defined.
      c1fb1319
  13. 26 Jan, 2016 1 commit
  14. 25 Jan, 2016 1 commit
    • Boudewijn Rempt's avatar
      Move kritaimage to libs · b46898a0
      Boudewijn Rempt authored
      This shows up a bunch of other problems with alien includes. Some
      tests have been disabled (marked "kisdoc") because they needed
      kritaui.
      b46898a0
  15. 26 Aug, 2015 1 commit
  16. 12 Aug, 2015 1 commit
  17. 30 Jul, 2015 1 commit
  18. 25 May, 2015 1 commit
    • Boudewijn Rempt's avatar
      Dynamic sensors: don't create translated strings uselessly · 3424f63c
      Boudewijn Rempt authored
      A dynamic sensor would create three translated strings (minimum label,
      maximum label, id's name) on creation. We create a bunch of sensors on
      stroke start, and all those translations caused a visible lag starting
      a stroke on Windows.
      
      This patch replaces the KoID with an enum except for the gui, and only
      gets translated labels in the gui. Note that changing e.g. time length
      doesn't update the curve max label yet unless you enable/disable the
      sensor -- but that isn't a regression, that never worked.
      3424f63c
  19. 18 May, 2015 1 commit
  20. 04 Mar, 2015 2 commits
  21. 31 Mar, 2014 1 commit
  22. 14 Feb, 2014 1 commit
    • Boudewijn Rempt's avatar
      BUG:330661 Save multi-sensor configuration correctly · 5db9a905
      Boudewijn Rempt authored
      Big rewrite & cleanup of the sensors/libpaintop code...
      
      The KisDynamicSensorList class is gone and KisCurveOption now tracks
      all sensors. The KisMultiSensorModel doesn't own the data it is a model
      for anymore everything is tracked by KisCurveOption.
      
      Conflicts:
      	krita/plugins/paintops/spray/kis_spray_paintop_settings_widget.cpp
      	krita/plugins/paintops/spray/kis_sprayop_option.cpp
      	krita/plugins/paintops/spray/spray_brush.cpp
      	krita/plugins/paintops/spray/spray_brush.h
      5db9a905
  23. 09 Feb, 2014 1 commit
  24. 10 Jun, 2011 1 commit
  25. 22 May, 2011 2 commits
  26. 25 Feb, 2011 1 commit
  27. 12 Feb, 2011 1 commit
  28. 16 Dec, 2010 1 commit
  29. 23 Jul, 2010 1 commit
    • Lukáš Tvrdý's avatar
      Fix sensors value from sampled curve. · d1bf41ba
      Lukáš Tvrdý authored
      Add one more level when sampling curve. Now when the Size sensor is
      enabled, it returns 0.5 instead of value a little bigger then 0.5. This
      avoid scaling in preddefined brushes code, so it might be a little faster.
      
      svn path=/trunk/koffice/; revision=1153320
      d1bf41ba
  30. 02 Jul, 2010 1 commit
    • Lukáš Tvrdý's avatar
      Partial fix with curve sampling. · 14cb19e4
      Lukáš Tvrdý authored
      E.g. size sensor when enabled and curve is not changed returns 0.996 scale instead of 1.0.
      Mirror option decide to mirror when the value of sensor is >= 0.5.
      
      Round here. The sampling of the curve is 255, but we never get 0.5 value.
      
      int(255 * 0.5) = 127 and results into 127/255 value (0.498)
      qRound(255 * 0.5) = 128 (0.501)	- mirror feature is ok now, scale is 1.003 instead of 1.0
      
      Proper solution would change the sampling count into even number (e.g. 255->510 or just 256?)
      so that we can hit 0.5 value.
      
      We compute the whole vector of curve when we
      need just one value. TODO: optimize
      
      svn path=/trunk/koffice/; revision=1145372
      14cb19e4
  31. 02 May, 2010 2 commits
  32. 24 Jan, 2010 1 commit
  33. 23 Jan, 2010 1 commit
  34. 03 Jan, 2010 1 commit
  35. 30 Dec, 2009 2 commits