Skip to content

Commit

Permalink
Use gap closing settings with palette drag and drop fill
Browse files Browse the repository at this point in the history
Per the Krita Artists request [here](https://krita-artists.org/t/allow-drag-and-drop-color-fill-palette-color-box-to-use-the-fill-tool-settings/29030/9?u=yrh), this patch makes the palette color drag-and-drop to fill feature honor gap closing settings of the flood fill tool.

The similar code is present in `kis_tool_fill.cc` already.

Test Plan
---------

1. You can use the test image in `libs/image/tests/data/close_gap_low.png`.
2. Select the fill tool and set the close gap size of 5.
3. Drag a color from the palette docker to the canvas and drop into any region with small gaps on the sides.
4. The fill should stop before spilling.

Other:

- Gap size 0 should behave as a regular fill.
- Fast mode should be disabled for non-zero gap size.

I don't think there's an automated test for this.

Formalities Checklist
--------------------- 

- [x] I confirmed this builds.
- [x] I confirmed Krita ran and the relevant functions work.
- [x] I tested the relevant unit tests and can confirm they are not broken. (If not possible, don't hesitate to ask for help!)
- [x] I made sure my commits build individually and have good descriptions as per [KDE guidelines](https://community.kde.org/Policies/Commit_Policy).
- [x] I made sure my code conforms to the standards set in the HACKING file.
- [x] I can confirm the code is licensed and attributed appropriately, and that unattributed code is mine, as per [KDE Licensing Policy](https://community.kde.org/Policies/Licensing_Policy).

_**Reminder: the reviewer is responsible for merging the patch, this is to ensure at the least two people can build the patch. In case a patch breaks the build, both the author and the reviewer should be contacted to fix the build.**_
_**If this is not possible, the commits shall be reverted, and a notification with the reasoning and any relevant logs shall be sent to the mailing list, [email protected].**_
  • Loading branch information
yavn authored and deiflou committed Feb 25, 2024
1 parent 4b0ac2c commit d9fed13
Showing 1 changed file with 3 additions and 0 deletions.
3 changes: 3 additions & 0 deletions libs/ui/KisView.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -867,6 +867,7 @@ void KisView::dropEvent(QDropEvent *event)
const int grow = configGroup.readEntry("growSelection", 0);
const bool stopGrowingAtDarkestPixel = configGroup.readEntry<bool>("stopGrowingAtDarkestPixel", false);
const int feather = configGroup.readEntry("featherAmount", 0);
const int closeGap = configGroup.readEntry("closeGapAmount", 0);
QString sampleLayersMode = configGroup.readEntry("sampleLayersMode", "");
if (sampleLayersMode.isEmpty()) {
if (configGroup.readEntry("sampleMerged", false)) {
Expand Down Expand Up @@ -970,6 +971,7 @@ void KisView::dropEvent(QDropEvent *event)
opacitySpread == 100 &&
useSelectionAsBoundary == false &&
!antiAlias && grow == 0 && feather == 0 &&
closeGap == 0 &&
sampleLayersMode == "currentLayer";

FillProcessingVisitor *visitor = new FillProcessingVisitor(referencePaintDevice,
Expand All @@ -987,6 +989,7 @@ void KisView::dropEvent(QDropEvent *event)
}
visitor->setFillThreshold(threshold);
visitor->setOpacitySpread(opacitySpread);
visitor->setCloseGap(closeGap);
visitor->setAntiAlias(antiAlias);
visitor->setUseCustomBlendingOptions(useCustomBlendingOptions);
if (useCustomBlendingOptions) {
Expand Down

0 comments on commit d9fed13

Please sign in to comment.