Add canvas clear service boundary

This commit is contained in:
2026-06-03 13:13:43 +02:00
parent 7c76703355
commit a6306c2759
7 changed files with 145 additions and 11 deletions

View File

@@ -41,6 +41,7 @@ struct MainToolbarPlan {
bool records_undo = false;
bool marks_unsaved = false;
bool no_op = false;
DocumentCanvasClearPlan canvas_clear;
};
class MainToolbarServices {
@@ -52,7 +53,7 @@ public:
virtual void invoke_undo() = 0;
virtual void invoke_redo() = 0;
virtual void clear_history() = 0;
virtual void clear_canvas() = 0;
virtual void clear_canvas(const DocumentCanvasClearPlan& plan) = 0;
virtual void show_message_box() = 0;
virtual void show_settings_dialog() = 0;
};
@@ -139,6 +140,7 @@ public:
plan.records_undo = clear.value().records_undo;
plan.marks_unsaved = clear.value().marks_unsaved;
plan.no_op = clear.value().no_op;
plan.canvas_clear = clear.value();
return pp::foundation::Result<MainToolbarPlan>::success(plan);
}
@@ -178,7 +180,7 @@ public:
services.clear_history();
return pp::foundation::Status::success();
case MainToolbarAction::clear_canvas:
services.clear_canvas();
services.clear_canvas(plan.canvas_clear);
return pp::foundation::Status::success();
case MainToolbarAction::show_message_box:
services.show_message_box();