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]()
{
m_world = m_connection->world();
if(m_world)
{
if(AbstractProperty* edit = m_world->getProperty("edit"))
connect(edit, &AbstractProperty::valueChangedBool, m_actionEdit, &QAction::setChecked);
}
updateActions();
});
clientStateChanged();

Datei anzeigen

@ -97,6 +97,22 @@ World::World() :
state.setValueInternal(state.value() - WorldState::TrackPowerOff);
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",
[this]()
{
@ -133,6 +149,7 @@ World::World() :
m_interfaceItems.add(emergencyStop);
m_interfaceItems.add(trackPowerOff);
m_interfaceItems.add(trackPowerOn);
m_interfaceItems.add(edit);
m_interfaceItems.add(save);
}

Datei anzeigen

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