From c1c18adf8e100adc973397d3a61b3dfead95b0d5 Mon Sep 17 00:00:00 2001 From: Nat Quayle Nelson Date: Tue, 13 May 2025 12:30:07 -0500 Subject: [PATCH] small refactor to allow for 'preview all node dialogs' later --- src/scenedit/scen.keydlgs.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/scenedit/scen.keydlgs.cpp b/src/scenedit/scen.keydlgs.cpp index f5cfa785..67401d51 100644 --- a/src/scenedit/scen.keydlgs.cpp +++ b/src/scenedit/scen.keydlgs.cpp @@ -823,10 +823,7 @@ static void save_spec_enc(cDialog& me, node_stack_t& edit_stack) { the_node.jumpto = me["jump"].getTextAsNum(); } -static bool preview_spec_enc_dlog(cDialog& me, std::string item_hit, node_stack_t& edit_stack, short mode) { - save_spec_enc(me, edit_stack); - cSpecial& special = edit_stack.top().node; - +static bool preview_spec_enc_dlog(cDialog& me, std::string item_hit, cSpecial& special, short mode) { eSpecCtxType cur_type = static_cast(mode); // Not pretty, but works: @@ -856,6 +853,12 @@ static bool preview_spec_enc_dlog(cDialog& me, std::string item_hit, node_stack_ return true; } +static bool preview_spec_enc_dlog_stack(cDialog& me, std::string item_hit, node_stack_t& edit_stack, short mode) { + save_spec_enc(me, edit_stack); + cSpecial& special = edit_stack.top().node; + return preview_spec_enc_dlog(me, item_hit, special, mode); +} + static bool commit_spec_enc(cDialog& me, std::string item_hit, node_stack_t& edit_stack) { if(item_hit != "unwind") save_spec_enc(me, edit_stack); @@ -1432,7 +1435,7 @@ bool edit_spec_enc(short which_node,short mode,cDialog* parent) { special["back"].hide(); edit_stack.push({which_node,mode,the_node}); - special["preview-dialog"].attachClickHandler(std::bind(preview_spec_enc_dlog, _1, _2, std::ref(edit_stack), mode)); + special["preview-dialog"].attachClickHandler(std::bind(preview_spec_enc_dlog_stack, _1, _2, std::ref(edit_stack), mode)); put_spec_enc_in_dlog(special, edit_stack);