mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-10-30 07:20:30 +01:00
fix(editor): the templates of the signals swapped or placed without a track changed are a step of the history of their own: they went into the step before, the block signals set say, undone with it, and the SRK tool, missing a new step, kept showing the lights as they were
This commit is contained in:
@@ -1077,7 +1077,17 @@ std::size_t editor_mode::signal_batch(signal_changes const &Changes, std::vector
|
|||||||
auto const count{instances.size()};
|
auto const count{instances.size()};
|
||||||
if (step.tracks.empty() && Created.empty() && instances.empty() && directives.empty())
|
if (step.tracks.empty() && Created.empty() && instances.empty() && directives.empty())
|
||||||
return 0;
|
return 0;
|
||||||
push_track_snapshot(std::move(step.tracks), std::move(Created));
|
if (step.tracks.empty() && Created.empty())
|
||||||
|
{
|
||||||
|
EditorSnapshot only;
|
||||||
|
auto const *file{scene::Layers.instance(directives.empty() ? instances.front() : directives.front().first).file};
|
||||||
|
only.node_name = file != nullptr ? *file : std::string{};
|
||||||
|
trim_history();
|
||||||
|
m_history.push_back(std::move(only));
|
||||||
|
g_redo.clear();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
push_track_snapshot(std::move(step.tracks), std::move(Created));
|
||||||
auto &pushed{m_history.back()};
|
auto &pushed{m_history.back()};
|
||||||
pushed.instances = std::move(instances);
|
pushed.instances = std::move(instances);
|
||||||
pushed.directives.insert(pushed.directives.end(), directives.begin(), directives.end());
|
pushed.directives.insert(pushed.directives.end(), directives.begin(), directives.end());
|
||||||
|
|||||||
Reference in New Issue
Block a user