fix: zone create/delete didn't require edit mode

see #144
Dieser Commit ist enthalten in:
Reinder Feenstra 2024-10-26 21:11:31 +02:00
Ursprung 63692354a8
Commit 9e180172b6
2 geänderte Dateien mit 15 neuen und 0 gelöschten Zeilen

Datei anzeigen

@ -43,10 +43,14 @@ ZoneList::ZoneList(Object& _parent, std::string_view parentPropertyName)
deleteMethodHandler(zone);
}}
{
const bool editable = contains(getWorld(parent()).state.value(), WorldState::Edit);
Attributes::addDisplayName(create, DisplayName::List::create);
Attributes::addEnabled(create, editable);
m_interfaceItems.add(create);
Attributes::addDisplayName(delete_, DisplayName::List::delete_);
Attributes::addEnabled(delete_, editable);
m_interfaceItems.add(delete_);
}
@ -55,6 +59,16 @@ TableModelPtr ZoneList::getModel()
return std::make_shared<ZoneListTableModel>(*this);
}
void ZoneList::worldEvent(WorldState state, WorldEvent event)
{
ObjectList<Zone>::worldEvent(state, event);
const bool editable = contains(state, WorldState::Edit);
Attributes::setEnabled(create, editable);
Attributes::setEnabled(delete_, editable);
}
bool ZoneList::isListedProperty(std::string_view name)
{
return ZoneListTableModel::isListedProperty(name);

Datei anzeigen

@ -33,6 +33,7 @@ class ZoneList : public ObjectList<Zone>
CLASS_ID("list.zone")
protected:
void worldEvent(WorldState state, WorldEvent event) final;
bool isListedProperty(std::string_view name) final;
public: