Extract document-session close prompt helper
This commit is contained in:
@@ -118,6 +118,21 @@ void project_save_after_snapshot(App& app, std::function<void(bool)> on_complete
|
||||
app.canvas->m_canvas->project_save(std::move(on_complete));
|
||||
}
|
||||
|
||||
void wire_unsaved_close_prompt_buttons(
|
||||
App& app,
|
||||
bool& dialog_already_opened,
|
||||
const std::shared_ptr<NodeMessageBox>& dialog)
|
||||
{
|
||||
dialog->btn_ok->on_click = [&app](Node*) {
|
||||
app.request_app_close();
|
||||
Canvas::I->m_unsaved = false;
|
||||
};
|
||||
dialog->btn_cancel->on_click = [&dialog_already_opened, dialog](Node*) {
|
||||
pp::panopainter::close_legacy_dialog_node(*dialog);
|
||||
dialog_already_opened = false;
|
||||
};
|
||||
}
|
||||
|
||||
void create_legacy_new_document(
|
||||
App& app,
|
||||
const pp::app::NewDocumentPlan& plan,
|
||||
@@ -285,20 +300,11 @@ public:
|
||||
if (!history_status.ok()) {
|
||||
LOG("Close prompt history effect failed: %s", history_status.message);
|
||||
}
|
||||
auto* app = &app_;
|
||||
auto* dialog_already_opened = &dialog_already_opened_;
|
||||
auto m = pp::panopainter::create_legacy_app_message_dialog(
|
||||
app_,
|
||||
pp::app::plan_document_session_prompt(
|
||||
pp::app::DocumentSessionPromptKind::close_unsaved_document));
|
||||
m->btn_ok->on_click = [app](Node*) {
|
||||
app->request_app_close();
|
||||
Canvas::I->m_unsaved = false;
|
||||
};
|
||||
m->btn_cancel->on_click = [dialog_already_opened, m](Node*) {
|
||||
pp::panopainter::close_legacy_dialog_node(*m);
|
||||
*dialog_already_opened = false;
|
||||
};
|
||||
wire_unsaved_close_prompt_buttons(app_, dialog_already_opened_, m);
|
||||
dialog_already_opened_ = true;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user