Move settings dialog to checked overlay lifetime

This commit is contained in:
2026-06-15 19:51:07 +02:00
parent 54fbf900fc
commit 8db859cb2c
6 changed files with 60 additions and 8 deletions

View File

@@ -8,6 +8,7 @@
#include "legacy_canvas_view_services.h"
#include "legacy_document_canvas_services.h"
#include "legacy_history_services.h"
#include "legacy_ui_overlay_services.h"
namespace pp::panopainter {
namespace {
@@ -198,10 +199,7 @@ public:
void show_settings_dialog() override
{
app_.settings = new NodeSettings();
app_.settings->set_manager(&app_.layout);
app_.settings->init();
app_.layout[app_.main_id]->add_child(app_.settings);
app_.settings = pp::panopainter::create_legacy_settings_dialog_overlay(app_).get();
}
private:

View File

@@ -7,6 +7,7 @@
#include "node_message_box.h"
#include "node_popup_menu.h"
#include "node_progress_bar.h"
#include "node_settings.h"
#include <memory>
#include <unordered_map>
@@ -371,4 +372,12 @@ std::shared_ptr<NodeInputBox> create_legacy_input_dialog_overlay(
return input;
}
std::shared_ptr<NodeSettings> create_legacy_settings_dialog_overlay(
App& app)
{
auto settings = make_legacy_overlay_node<NodeSettings>(app);
attach_legacy_app_overlay_with_handle_or_fallback(app, settings);
return settings;
}
} // namespace pp::panopainter

View File

@@ -15,6 +15,7 @@ class NodeInputBox;
class NodeMessageBox;
class NodePopupMenu;
class NodeProgressBar;
class NodeSettings;
namespace pp::panopainter {
@@ -154,6 +155,9 @@ void close_legacy_popup_panel(
App& app,
const pp::app::AppInputDialogPlan& plan);
[[nodiscard]] std::shared_ptr<NodeSettings> create_legacy_settings_dialog_overlay(
App& app);
template <class T>
std::shared_ptr<T> make_legacy_overlay_node(App& app)
{