Implemented world.edit property

Dieser Commit ist enthalten in:
reinder 2020-04-03 23:31:54 +02:00
Ursprung a205559045
Commit e8172078d6
3 geänderte Dateien mit 25 neuen und 0 gelöschten Zeilen

Datei anzeigen

@ -225,6 +225,13 @@ void MainWindow::connectToServer()
[this]() [this]()
{ {
m_world = m_connection->world(); m_world = m_connection->world();
if(m_world)
{
if(AbstractProperty* edit = m_world->getProperty("edit"))
connect(edit, &AbstractProperty::valueChangedBool, m_actionEdit, &QAction::setChecked);
}
updateActions(); updateActions();
}); });
clientStateChanged(); clientStateChanged();

Datei anzeigen

@ -97,6 +97,22 @@ World::World() :
state.setValueInternal(state.value() - WorldState::TrackPowerOff); state.setValueInternal(state.value() - WorldState::TrackPowerOff);
event(WorldEvent::TrackPowerOn); event(WorldEvent::TrackPowerOn);
}}, }},
edit{this, "edit", false, PropertyFlags::ReadWrite,
[this](bool value)
{
if(value)
{
Traintastic::instance->console->notice(classId, "Edit mode: enabled");
state.setValueInternal(state.value() + WorldState::Edit);
event(WorldEvent::EditEnabled);
}
else
{
Traintastic::instance->console->notice(classId, "Edit mode: disabled");
state.setValueInternal(state.value() - WorldState::Edit);
event(WorldEvent::EditDisabled);
}
}},
save{*this, "save", save{*this, "save",
[this]() [this]()
{ {
@ -133,6 +149,7 @@ World::World() :
m_interfaceItems.add(emergencyStop); m_interfaceItems.add(emergencyStop);
m_interfaceItems.add(trackPowerOff); m_interfaceItems.add(trackPowerOff);
m_interfaceItems.add(trackPowerOn); m_interfaceItems.add(trackPowerOn);
m_interfaceItems.add(edit);
m_interfaceItems.add(save); m_interfaceItems.add(save);
} }

Datei anzeigen

@ -77,6 +77,7 @@ class World : public Object
Method<void()> emergencyStop; Method<void()> emergencyStop;
Method<void()> trackPowerOff; Method<void()> trackPowerOff;
Method<void()> trackPowerOn; Method<void()> trackPowerOn;
Property<bool> edit;
Method<void()> save; Method<void()> save;