17
0
mirror of https://github.com/MaSzyna-EU07/maszyna.git synced 2026-11-08 18:50:34 +01:00

feat(editor): the panel of a signal picked swaps its template for another of its kind and mount, the name, the plate, the place and the read event kept, a head leaning to one side for its counterpart leaning towards the track; one step of undo, the selftest signalswap

This commit is contained in:
maj00r
2026-10-22 18:55:13 +02:00
parent 9c124b23bb
commit edb4f7c60d
4 changed files with 75 additions and 1 deletions

View File

@@ -50,7 +50,7 @@ http://mozilla.org/MPL/2.0/.
editor_mode::selftest_result editor_mode::selftest_signal(std::string const &command, std::istringstream &words)
{
if (command == "signal" || command == "signalmove" || command == "signaldelete" || command == "signalrename" || command == "signalprobe" || command == "signalflip" || command == "signalturn")
if (command == "signal" || command == "signalmove" || command == "signaldelete" || command == "signalrename" || command == "signalprobe" || command == "signalflip" || command == "signalturn" || command == "signalselect" || command == "signalswap")
{
auto values{selftest_values(words)};
show_track_tab(track_tab::signals);
@@ -141,6 +141,24 @@ editor_mode::selftest_result editor_mode::selftest_signal(std::string const &com
auto const done{standing != nullptr && (command == "signalflip" ? signal_flip(standing->include.instance) : signal_turn(standing->include.instance))};
WriteLog("SELFTEST " + command + " " + values["name"] + (done ? ": " : ": failed, ") + tool.status);
}
else if (command == "signalselect" || command == "signalswap")
{
auto const *standing{standing_named(values["name"])};
if (standing == nullptr)
{
WriteLog("SELFTEST " + command + ": no signal " + values["name"]);
return selftest_result::handled;
}
auto const instance{standing->include.instance};
signal_select(instance);
if (command == "signalswap")
{
auto const done{signal_swap(instance, values["file"])};
WriteLog("SELFTEST signalswap " + values["name"] + (done ? ": " : ": failed, ") + tool.status);
}
else
WriteLog("SELFTEST signalselect " + values["name"] + ": " + standing->include.file);
}
else if (command == "signaldelete")
{
auto const *standing{standing_named(values["name"])};