Centralize retained document session dialog closing

This commit is contained in:
2026-06-12 15:54:39 +02:00
parent 08f6515468
commit 6470c6a6a8
3 changed files with 15 additions and 9 deletions

View File

@@ -7,6 +7,7 @@
#include "legacy_document_canvas_services.h"
#include "legacy_canvas_view_services.h"
#include "legacy_history_services.h"
#include "legacy_ui_overlay_services.h"
#include "node_dialog_open.h"
#include <utility>
@@ -117,8 +118,7 @@ void create_legacy_new_document(
app.canvas->m_canvas->m_newdoc = false;
app.title_update();
dialog->destroy();
App::I->hideKeyboard();
pp::panopainter::close_legacy_dialog_and_hide_keyboard(app, *dialog);
}
class LegacyNewDocumentServices final : public pp::app::NewDocumentServices {
@@ -144,7 +144,7 @@ public:
auto dialog = dialog_;
msgbox->btn_ok->on_click = [app, msgbox, dialog, plan](Node*) {
create_legacy_new_document(*app, plan, dialog);
msgbox->destroy();
pp::panopainter::close_legacy_dialog_node(*msgbox);
};
}
@@ -163,8 +163,7 @@ void save_legacy_document_file(
app.doc_path = plan.target.path;
app.doc_dir = plan.target.directory;
app.title_update();
dialog->destroy();
App::I->hideKeyboard();
pp::panopainter::close_legacy_dialog_and_hide_keyboard(app, *dialog);
}
class LegacyDocumentFileSaveServices final : public pp::app::DocumentFileSaveServices {
@@ -191,7 +190,7 @@ public:
auto dialog = dialog_;
msgbox->btn_ok->on_click = [app, msgbox, dialog, plan](Node*) {
save_legacy_document_file(*app, plan, dialog);
msgbox->destroy();
pp::panopainter::close_legacy_dialog_node(*msgbox);
};
}
@@ -245,7 +244,7 @@ public:
Canvas::I->m_unsaved = false;
};
m->btn_cancel->on_click = [dialog_already_opened, m](Node*) {
m->destroy();
pp::panopainter::close_legacy_dialog_node(*m);
*dialog_already_opened = false;
};
dialog_already_opened_ = true;
@@ -313,11 +312,11 @@ public:
app->message_box(plan.title, plan.message, plan.show_cancel);
}
});
m->destroy();
pp::panopainter::close_legacy_dialog_node(*m);
};
m->btn_cancel->on_click = [m, action](Node*) {
action();
m->destroy();
pp::panopainter::close_legacy_dialog_node(*m);
};
}