Merge remote-tracking branch 'origin/master' into allenmarshall/movable-airbrush
Merge branch 'allenmarshall/movable-airbrush' of git.kde.org:krita into…
Disable freehand stroke timeout when airbrushing
Fixed loading of spacing configuration when switching between presets
Disable freehand stroke timeout when airbrushing
It looks like Arcanist included more changes in the diff than I intended. I have updated the diff manually.
Disabled freehand stroke timeout when airbrushing
Merge remote-tracking branch 'origin/master' into allenmarshall/movable-airbrush
Initialization of drawing angle for Polygon and Polyline tools
Initialization of drawing angle for Polygon and Polyline tools
Merge branch 'allenmarshall/movable-airbrush' of git.kde.org:krita into…
Merge branch 'master' into direction-testing
Initial drawing angle for polyline and polygon tools is now based on the…
Okay, I have pushed the patch. (I still can't figure out how to close the revision.)
Merge branch 'allenmarshall/movable-airbrush' GUI: Differential Revision: https…
Minor comment editing and diff cleanup
Added some more test cases to KisDistanceInformationTest
Fixed bugs in KisDistanceInformation and related unit test
Minor UI change in Spacing option
Added back the workaround of painting a dab immediately when starting an…
Minor cleanup in KisToolFreehandHelper
Added missing KRITAIMAGE_EXPORT macros
Added missing copy constructor, fixing a memory corruption bug
Merge remote-tracking branch 'origin/master' into allenmarshall/movable-airbrush
Refactored spacing code to separate distance-based and time-based spacing…
I must be doing something wrong with my commit messages. I included "Differential Revision: in the merge commit message and pushed, but it doesn't seem to have closed the revision. I don't see an option to close the revision through the Web interface either. Do you have any ideas as to what I am missing?
Merge branch 'allenmarshall/movable-airbrush' Differential Revision: https…
Added a comment and made minor coded consistency fixes
Merge branch 'master' into allenmarshall/movable-airbrush
Okay, great! I will make the changes you suggested and merge to master.
Merge branch 'master' into allenmarshall/movable-airbrush
Removed potential division by zero when airbrush Rate curve goes to zero.
Added unit test for some of the functionality in KisDistanceInformation and…
Experimenting with allowing spacing updates between dabs
Merge branch 'allenmarshall/movable-airbrush' GUI: Differential Revision: https…
Merge branch 'master' into allenmarshall/movable-airbrush
Changed some asserts to safe asserts
Okay, great! I will change those asserts then merge into master. I still want to do something about the issue of having to wait 1 second if the pressure curve goes to zero, but I will work on that in a separate revision.
@dkazakov: I think this new diff addresses the issues you pointed out in the previous diff. I have added back the safety check in KisToolFreehandHelper::doAirbrushing, removed the reliance on parsing string options during painting, and added the call to qBound you suggested. I have also changed the KisToolFreehandHelper::paintAt workaround so that the initial paintAt call only happens when airbrushing, which should avoid the zero-rotation dab at the beginning of a stroke when angle-dependent brushes are used without airbrushing. For the case where an angle-dependent brush is used with airbrushing, I added the ability for KisToolFreehandHelper to supply an initial drawing angle based on the most recent cursor movement, so the initial dab's rotation will at least make some sense. I also changed the angle-computing code so that, if two consecutive dabs are at the same position, the drawing angle from the previous dab is reused. Airbrushing and angle-dependent brushes still don't work very well together, since it can be hard to avoid small movements that change the angle when trying to airbrush at a single point, but the behavior seems at least somewhat reasonable now.
Removed another paint-time string-parsing operation when airbrushing
Merge branch 'master' into allenmarshall/movable-airbrush
Fixed segfault caused by assuming a non-null KisImageWSP in…
Reorganized some data members for clarity
KisPaintInformation::drawingAngleSafe now explicitly returns zero when there is…
Merge branch 'master' into allenmarshall/movable-airbrush
Fixed bug where KisAirbrushOption slots weren't getting found correctly
More work on making airbrushing work better with angle-dependent brush settings
Working on making airbrushing work better with drawing-angle-dependent brush…
Performance improvement: Airbrushing no longer reads properties from a…
Restored a safety check that was removed previously. It prevents the airbrush…
Replaced usage of qMin followed by qMax with a usage of qBound
Merge local branch 'bug-toolsize' Differential Revision: https://phabricator.
Fixed bug where changing tools would disable size and flow sliders
I don't think it was. Should I merge it myself? Is there any particular protocol to follow with merging revisions to master?
Thanks for the feedback. I will try to get the issues fixed soon.
I have made a new version of the diff that addresses some of the issues, but I think further discussion is needed. In the new version, KisDistanceInformation clamps the airbrush interval to the range [0.5, 1000.0], meaning the rate can't be less than 1 dab per second. I changed the code back to only updating the spacing when a dab is painted, which should fix the problems I introduced with the previous diff. It is still possible to get an unpleasant effect where the pressure can make the dab rate slow (but no slower than 1 dab/s), forcing the user to wait 1 second before the next dab. This especially happens at the start of strokes, as the pressure is low when the pen first touches the tablet. The ideas I have for solving this are:
We need to discuss which idea works best, or if there are any other solutions.
Removing obsolete workaround code
Fixed bug where some brushes could ignore spacing settings due to never calling…
Removed incorrect comment
Fixed bug where airbrushing with certain paintops would cause an assertion…
Added lower limit on timed spacing interval, to prevent potential infinite loop
Removed redundant paintAt call
Removed paintPointOrLine workaround
Disabling airbrush slower than one dab per second
Removed some unpredictable floating point operations, like division by zero
More fixing for issues with airbrushing too fast with certain paintops
Reapplying commit cc828c5
Merge branch 'master' into allenmarshall/movable-airbrush
Reapplying commit d298cfe
Added a documentation comment
Added a fix for issue where some paintops would airbrush faster than they were…
Cleaning up the diff relative to master
Merge branch 'master' into allenmarshall/movable-airbrush
Override Spacing airbrush option is now hidden for brush engines where it isn't…
Minor UI change in airbrush option
Fixed a bug where paintops couldn't access the drawing direction
Merge branch 'master' into feature-airbrush
Fixed bugs in the behaviors of various combinations of airbrush settings
Working on moving timed spacing functionality into the Airbrush tab
Removed unnecessary #include
Merge branch 'master' into feature-airbrush
Fixed incorrect logic in KisDistanceInformation::getNextPointPositionTimed
Timed spacing rate setting in the brush settings editor now persists even when…
Added destructor override that was accidentally removed
Added a unit test for the autobrush factory