Route brush refresh view through app core
This commit is contained in:
@@ -358,6 +358,98 @@ void stroke_settings_plan_updates_brush_preview(pp::tests::Harness& harness)
|
||||
PP_EXPECT(harness, !plan.loads_brush_resources);
|
||||
}
|
||||
|
||||
void brush_ui_refresh_projects_requested_surfaces(pp::tests::Harness& harness)
|
||||
{
|
||||
const auto view = pp::app::plan_brush_ui_refresh(pp::app::BrushUiRefreshInput {
|
||||
.update_color = true,
|
||||
.update_brush = true,
|
||||
.has_current_brush = true,
|
||||
.has_floating_picker = true,
|
||||
.has_floating_color_panel = false,
|
||||
.tip_flow = 0.9F,
|
||||
.tip_size = 64.0F,
|
||||
.r = 0.25F,
|
||||
.g = 0.5F,
|
||||
.b = 0.75F,
|
||||
.a = 1.0F,
|
||||
});
|
||||
|
||||
PP_EXPECT(harness, view);
|
||||
if (view) {
|
||||
PP_EXPECT(harness, view.value().updates_stroke_controls);
|
||||
PP_EXPECT(harness, view.value().updates_quick_flow);
|
||||
PP_EXPECT(harness, view.value().updates_quick_size);
|
||||
PP_EXPECT(harness, view.value().updates_quick_brush_preview);
|
||||
PP_EXPECT(harness, view.value().updates_quick_color);
|
||||
PP_EXPECT(harness, view.value().updates_floating_picker);
|
||||
PP_EXPECT(harness, !view.value().updates_floating_color_panel);
|
||||
PP_EXPECT(harness, !view.value().no_op);
|
||||
PP_EXPECT(harness, view.value().tip_flow == 0.9F);
|
||||
PP_EXPECT(harness, view.value().tip_size == 64.0F);
|
||||
PP_EXPECT(harness, view.value().r == 0.25F);
|
||||
PP_EXPECT(harness, view.value().g == 0.5F);
|
||||
PP_EXPECT(harness, view.value().b == 0.75F);
|
||||
PP_EXPECT(harness, view.value().a == 1.0F);
|
||||
}
|
||||
|
||||
const auto color_only = pp::app::plan_brush_ui_refresh(pp::app::BrushUiRefreshInput {
|
||||
.update_color = true,
|
||||
.update_brush = false,
|
||||
.has_current_brush = true,
|
||||
.has_floating_picker = false,
|
||||
.has_floating_color_panel = true,
|
||||
.r = 0.1F,
|
||||
.g = 0.2F,
|
||||
.b = 0.3F,
|
||||
.a = 1.0F,
|
||||
});
|
||||
PP_EXPECT(harness, color_only);
|
||||
if (color_only) {
|
||||
PP_EXPECT(harness, !color_only.value().updates_stroke_controls);
|
||||
PP_EXPECT(harness, !color_only.value().updates_quick_flow);
|
||||
PP_EXPECT(harness, color_only.value().updates_quick_color);
|
||||
PP_EXPECT(harness, !color_only.value().updates_floating_picker);
|
||||
PP_EXPECT(harness, color_only.value().updates_floating_color_panel);
|
||||
}
|
||||
|
||||
const auto no_op = pp::app::plan_brush_ui_refresh(pp::app::BrushUiRefreshInput {
|
||||
.update_color = false,
|
||||
.update_brush = false,
|
||||
.has_current_brush = false,
|
||||
});
|
||||
PP_EXPECT(harness, no_op);
|
||||
if (no_op) {
|
||||
PP_EXPECT(harness, no_op.value().no_op);
|
||||
PP_EXPECT(harness, !no_op.value().updates_quick_color);
|
||||
PP_EXPECT(harness, !no_op.value().updates_quick_brush_preview);
|
||||
}
|
||||
}
|
||||
|
||||
void brush_ui_refresh_rejects_invalid_state(pp::tests::Harness& harness)
|
||||
{
|
||||
PP_EXPECT(harness, !pp::app::plan_brush_ui_refresh(pp::app::BrushUiRefreshInput {
|
||||
.update_color = true,
|
||||
.update_brush = false,
|
||||
.has_current_brush = false,
|
||||
}));
|
||||
PP_EXPECT(harness, !pp::app::plan_brush_ui_refresh(pp::app::BrushUiRefreshInput {
|
||||
.update_color = true,
|
||||
.update_brush = false,
|
||||
.has_current_brush = true,
|
||||
.r = 1.25F,
|
||||
.g = 0.0F,
|
||||
.b = 0.0F,
|
||||
.a = 1.0F,
|
||||
}));
|
||||
PP_EXPECT(harness, !pp::app::plan_brush_ui_refresh(pp::app::BrushUiRefreshInput {
|
||||
.update_color = false,
|
||||
.update_brush = true,
|
||||
.has_current_brush = true,
|
||||
.tip_flow = std::nanf(""),
|
||||
.tip_size = 64.0F,
|
||||
}));
|
||||
}
|
||||
|
||||
void stroke_control_plans_validate_values_and_reject_breaking_points(pp::tests::Harness& harness)
|
||||
{
|
||||
const auto slider = pp::app::plan_brush_stroke_float_setting(
|
||||
@@ -920,6 +1012,8 @@ int main()
|
||||
harness.run("texture plan validates path and slot", texture_plan_validates_path_and_slot);
|
||||
harness.run("preset plan preserves color and requires brush", preset_plan_preserves_color_and_requires_brush);
|
||||
harness.run("stroke settings plan updates brush preview", stroke_settings_plan_updates_brush_preview);
|
||||
harness.run("brush UI refresh projects requested surfaces", brush_ui_refresh_projects_requested_surfaces);
|
||||
harness.run("brush UI refresh rejects invalid state", brush_ui_refresh_rejects_invalid_state);
|
||||
harness.run("stroke control plans validate values and reject breaking points", stroke_control_plans_validate_values_and_reject_breaking_points);
|
||||
harness.run("stroke panel view projects brush state", stroke_panel_view_projects_brush_state);
|
||||
harness.run("stroke panel view rejects invalid brush state", stroke_panel_view_rejects_invalid_brush_state);
|
||||
|
||||
Reference in New Issue
Block a user