Page MenuHome

User Interface design error: Dynamic Paint > Canvas > Output "Paintmap Layer" and "Wetmap Layer" buttons should be checkbox, not "plus"/"minus"
Confirmed, NormalPublic

Description

System Information
Operating system: Mac OS X 10.13.6
Graphics card: AMD Radeon R9 M370X

Blender Version
Broken: 2.80+

Short description of error
The Paintmap Layer" and "Wetmap Layer" buttons should be checkbox, not "plus"/"minus"

This causes needless confusion by users and prevents the "Paint" feature of Dynamic Paint from working. Here is a Stackexchange post where a user encountered this problem: https://blender.stackexchange.com/questions/157056/dynamic-paint-does-not-work-on-canvas-in-paint-mode/192797

In modern computer user interface design, the "plus" and "minus" symbols on a button are never used to indicate "activate/deactivate", or "on/off". In the rest of Blender UI, "plus" button is used to add elements to a list, while "minus" is used to delete a highlighted element in a list.

Exact steps for others to reproduce the error

  1. In Object Mode, add an object to a blank scene (e.g. plane)
  2. Select that object by left-clicking on it.
  3. Click on "Physics Properties"
  4. Click on "Dynamic Paint"
  5. For "Type", select "Canvas", then click "Add Canvas" button
  6. Expand "Settings" by clicking on the arrow icon
  7. For "Format", select "Vertex"
  8. Scroll to the bottom of the properties window to "Output"
  9. Expand "Output" by clicking on the arrow icon

The two properties appear, with a text box and a "+/-" button next to them:

The design error is the use of "+/-" button instead of checkbox. The paint feature only works if the user realizes the "+/-" button is really an "on/off" switch, and clicks it:

Event Timeline

I guess simplest "fix" could look like this (diff below):

But I think that bigger issue is that user has no idea that he needs to click there. Perhaps this should be "enabled" by default? Or checkbox could be in front of property, suggesting that the property is affected, though button runs operator, and this change may not be possible.

@Julian Eisel (Severin) any thoughts?

diff --git a/release/scripts/startup/bl_ui/properties_physics_dynamicpaint.py b/release/scripts/startup/bl_ui/properties_physics_dynamicpaint.py
index 7e4f9e8370f..461511274c3 100644
--- a/release/scripts/startup/bl_ui/properties_physics_dynamicpaint.py
+++ b/release/scripts/startup/bl_ui/properties_physics_dynamicpaint.py
@@ -368,21 +368,21 @@ class PHYSICS_PT_dp_canvas_output(PhysicButtonsPanel, Panel):
                 row = layout.row()
                 row.prop_search(surface, "output_name_a", ob.data, "vertex_colors", text="Paintmap Layer")

-                icons = 'REMOVE' if surface.output_exists(object=ob, index=0) else 'ADD'
+                icons = 'CHECKBOX_HLT' if surface.output_exists(object=ob, index=0) else 'CHECKBOX_DEHLT'
                 row.operator("dpaint.output_toggle", icon=icons, text="").output = 'A'

                 # wet-map output.
                 row = layout.row()
                 row.prop_search(surface, "output_name_b", ob.data, "vertex_colors", text="Wetmap Layer")

-                icons = 'REMOVE' if surface.output_exists(object=ob, index=1) else 'ADD'
+                icons = 'CHECKBOX_HLT' if surface.output_exists(object=ob, index=1) else 'CHECKBOX_DEHLT'
                 row.operator("dpaint.output_toggle", icon=icons, text="").output = 'B'

             elif surface_type == 'WEIGHT':
                 row = layout.row()
                 row.prop_search(surface, "output_name_a", ob, "vertex_groups", text="Vertex Group")

-                icons = 'REMOVE' if surface.output_exists(object=ob, index=0) else 'ADD'
+                icons = 'CHECKBOX_HLT' if surface.output_exists(object=ob, index=0) else 'CHECKBOX_DEHLT'
                 row.operator("dpaint.output_toggle", icon=icons, text="").output = 'A'

         # image format outputs.

@Richard Antalik (ISS) said: "...bigger issue is that user has no idea that he needs to click there."

YES! Very keen observation and is exactly what I experienced, even after watching tutorial videos.

Thanks so much to you and the others for your work on this.

Philipp Oeser (lichtwerk) changed the task status from Needs Triage to Confirmed.Mon, Sep 14, 6:21 PM