Skip to content

Commit

Permalink
Disabled reparent for GNEAccess. Refs #4018
Browse files Browse the repository at this point in the history
  • Loading branch information
Pablo Alvarez Lopez committed Jun 7, 2018
1 parent d93d864 commit a319399
Show file tree
Hide file tree
Showing 3 changed files with 51 additions and 16 deletions.
47 changes: 34 additions & 13 deletions src/netedit/GNEAttributeCarrier.cpp
Expand Up @@ -61,15 +61,17 @@ GNEAttributeCarrier::TagValues::TagValues() :
myTagProperty(TAGPROPERTY_NETELEMENT),
myIcon(ICON_EMPTY),
myPositionListed(0),
myParentTag(SUMO_TAG_NOTHING) {
myParentTag(SUMO_TAG_NOTHING),
myMaxNumberOfChilds(0) {
}


GNEAttributeCarrier::TagValues::TagValues(int tagProperty, int positionListed, GUIIcon icon, SumoXMLTag parentTag) :
GNEAttributeCarrier::TagValues::TagValues(int tagProperty, int positionListed, GUIIcon icon, SumoXMLTag parentTag, int maxNumberOfChilds) :
myTagProperty(tagProperty),
myIcon(icon),
myPositionListed(positionListed),
myParentTag(parentTag) {
myParentTag(parentTag),
myMaxNumberOfChilds(maxNumberOfChilds){
}


Expand All @@ -91,6 +93,12 @@ GNEAttributeCarrier::TagValues::getParentTag() const {
}


int
GNEAttributeCarrier::TagValues::getMaxNumberOfChilds() const {
return myMaxNumberOfChilds;
}


bool
GNEAttributeCarrier::TagValues::isNetElement() const {
return (myTagProperty & TAGPROPERTY_NETELEMENT) != 0;
Expand Down Expand Up @@ -162,11 +170,24 @@ GNEAttributeCarrier::TagValues::hasParent() const {
return (myTagProperty & TAGPROPERTY_PARENT) != 0;
}


bool
GNEAttributeCarrier::TagValues::hasDialog() const {
return (myTagProperty & TAGPROPERTY_DIALOG) != 0;
}


bool
GNEAttributeCarrier::TagValues::hasLimitedNumberOfCHilds() const {
return (myTagProperty & TAGPROPERTY_LIMITEDCHILDS) != 0;
}


bool
GNEAttributeCarrier::TagValues::canBeReparent() const {
return (myTagProperty & TAGPROPERTY_REPARENT) != 0;
}

// ---------------------------------------------------------------------------
// GNEAttributeCarrier::AttributeValues - methods
// ---------------------------------------------------------------------------
Expand Down Expand Up @@ -1080,7 +1101,7 @@ GNEAttributeCarrier::fillAttributeCarriers() {
currentTag = SUMO_TAG_BUS_STOP;
{
// set values of tag
myAllowedAttributes[currentTag].first = TagValues(TAGPROPERTY_ADDITIONAL | TAGPROPERTY_BLOCKMOVEMENT | TAGPROPERTY_STOPPINGPLACE, 10, ICON_BUSSTOP);
myAllowedAttributes[currentTag].first = TagValues(TAGPROPERTY_ADDITIONAL | TAGPROPERTY_STOPPINGPLACE | TAGPROPERTY_BLOCKMOVEMENT | TAGPROPERTY_LIMITEDCHILDS, 10, ICON_BUSSTOP, SUMO_TAG_NOTHING, 1);
// set values of attributes
myAllowedAttributes[currentTag].second[SUMO_ATTR_ID] = AttributeValues(
ATTRPROPERTY_STRING | ATTRPROPERTY_UNIQUE, 1,
Expand Down Expand Up @@ -1136,7 +1157,7 @@ GNEAttributeCarrier::fillAttributeCarriers() {
currentTag = SUMO_TAG_CONTAINER_STOP;
{
// set values of tag
myAllowedAttributes[currentTag].first = TagValues(TAGPROPERTY_ADDITIONAL | TAGPROPERTY_BLOCKMOVEMENT | TAGPROPERTY_STOPPINGPLACE, 12, ICON_CONTAINERSTOP);
myAllowedAttributes[currentTag].first = TagValues(TAGPROPERTY_ADDITIONAL | TAGPROPERTY_STOPPINGPLACE | TAGPROPERTY_BLOCKMOVEMENT, 12, ICON_CONTAINERSTOP);
// set values of attributes
myAllowedAttributes[currentTag].second[SUMO_ATTR_ID] = AttributeValues(
ATTRPROPERTY_STRING | ATTRPROPERTY_UNIQUE, 1,
Expand Down Expand Up @@ -1170,7 +1191,7 @@ GNEAttributeCarrier::fillAttributeCarriers() {
currentTag = SUMO_TAG_CHARGING_STATION;
{
// set values of tag
myAllowedAttributes[currentTag].first = TagValues(TAGPROPERTY_ADDITIONAL | TAGPROPERTY_BLOCKMOVEMENT | TAGPROPERTY_STOPPINGPLACE, 13, ICON_CHARGINGSTATION);
myAllowedAttributes[currentTag].first = TagValues(TAGPROPERTY_ADDITIONAL | TAGPROPERTY_STOPPINGPLACE | TAGPROPERTY_BLOCKMOVEMENT, 13, ICON_CHARGINGSTATION);
// set values of attributes
myAllowedAttributes[currentTag].second[SUMO_ATTR_ID] = AttributeValues(
ATTRPROPERTY_STRING | ATTRPROPERTY_UNIQUE, 1,
Expand Down Expand Up @@ -1216,7 +1237,7 @@ GNEAttributeCarrier::fillAttributeCarriers() {
currentTag = SUMO_TAG_PARKING_AREA;
{
// set values of tag
myAllowedAttributes[currentTag].first = TagValues(TAGPROPERTY_ADDITIONAL | TAGPROPERTY_BLOCKMOVEMENT | TAGPROPERTY_STOPPINGPLACE, 14, ICON_PARKINGAREA);
myAllowedAttributes[currentTag].first = TagValues(TAGPROPERTY_ADDITIONAL | TAGPROPERTY_STOPPINGPLACE | TAGPROPERTY_BLOCKMOVEMENT, 14, ICON_PARKINGAREA);
// set values of attributes
myAllowedAttributes[currentTag].second[SUMO_ATTR_ID] = AttributeValues(
ATTRPROPERTY_STRING | ATTRPROPERTY_UNIQUE, 1,
Expand Down Expand Up @@ -1292,7 +1313,7 @@ GNEAttributeCarrier::fillAttributeCarriers() {
currentTag = SUMO_TAG_E1DETECTOR;
{
// set values of tag
myAllowedAttributes[currentTag].first = TagValues(TAGPROPERTY_ADDITIONAL | TAGPROPERTY_BLOCKMOVEMENT | TAGPROPERTY_DETECTOR, 20, ICON_E1);
myAllowedAttributes[currentTag].first = TagValues(TAGPROPERTY_ADDITIONAL | TAGPROPERTY_DETECTOR | TAGPROPERTY_BLOCKMOVEMENT, 20, ICON_E1);
// set values of attributes
myAllowedAttributes[currentTag].second[SUMO_ATTR_ID] = AttributeValues(
ATTRPROPERTY_STRING | ATTRPROPERTY_UNIQUE, 1,
Expand Down Expand Up @@ -1326,7 +1347,7 @@ GNEAttributeCarrier::fillAttributeCarriers() {
currentTag = SUMO_TAG_E2DETECTOR;
{
// set values of tag
myAllowedAttributes[currentTag].first = TagValues(TAGPROPERTY_ADDITIONAL | TAGPROPERTY_BLOCKMOVEMENT | TAGPROPERTY_DETECTOR, 21, ICON_E2);
myAllowedAttributes[currentTag].first = TagValues(TAGPROPERTY_ADDITIONAL | TAGPROPERTY_DETECTOR | TAGPROPERTY_BLOCKMOVEMENT, 21, ICON_E2);
// set values of attributes
myAllowedAttributes[currentTag].second[SUMO_ATTR_ID] = AttributeValues(
ATTRPROPERTY_STRING | ATTRPROPERTY_UNIQUE, 1,
Expand Down Expand Up @@ -1376,7 +1397,7 @@ GNEAttributeCarrier::fillAttributeCarriers() {
currentTag = SUMO_TAG_E3DETECTOR;
{
// set values of tag
myAllowedAttributes[currentTag].first = TagValues(TAGPROPERTY_ADDITIONAL | TAGPROPERTY_BLOCKMOVEMENT | TAGPROPERTY_DETECTOR, 22, ICON_E3);
myAllowedAttributes[currentTag].first = TagValues(TAGPROPERTY_ADDITIONAL | TAGPROPERTY_DETECTOR | TAGPROPERTY_BLOCKMOVEMENT, 22, ICON_E3);
// set values of attributes
myAllowedAttributes[currentTag].second[SUMO_ATTR_ID] = AttributeValues(
ATTRPROPERTY_STRING | ATTRPROPERTY_UNIQUE, 1,
Expand Down Expand Up @@ -1406,7 +1427,7 @@ GNEAttributeCarrier::fillAttributeCarriers() {
currentTag = SUMO_TAG_DET_ENTRY;
{
// set values of tag
myAllowedAttributes[currentTag].first = TagValues(TAGPROPERTY_ADDITIONAL | TAGPROPERTY_PARENT | TAGPROPERTY_BLOCKMOVEMENT | TAGPROPERTY_DETECTOR, 23, ICON_E3ENTRY, SUMO_TAG_E3DETECTOR);
myAllowedAttributes[currentTag].first = TagValues(TAGPROPERTY_ADDITIONAL | TAGPROPERTY_DETECTOR | TAGPROPERTY_PARENT | TAGPROPERTY_REPARENT | TAGPROPERTY_BLOCKMOVEMENT, 23, ICON_E3ENTRY, SUMO_TAG_E3DETECTOR);
// set values of attributes
myAllowedAttributes[currentTag].second[SUMO_ATTR_LANE] = AttributeValues(
ATTRPROPERTY_STRING | ATTRPROPERTY_UNIQUE, 1,
Expand All @@ -1424,7 +1445,7 @@ GNEAttributeCarrier::fillAttributeCarriers() {
currentTag = SUMO_TAG_DET_EXIT;
{
// set values of tag
myAllowedAttributes[currentTag].first = TagValues(TAGPROPERTY_ADDITIONAL | TAGPROPERTY_PARENT | TAGPROPERTY_BLOCKMOVEMENT | TAGPROPERTY_DETECTOR, 24, ICON_E3EXIT, SUMO_TAG_E3DETECTOR);
myAllowedAttributes[currentTag].first = TagValues(TAGPROPERTY_ADDITIONAL | TAGPROPERTY_DETECTOR | TAGPROPERTY_PARENT | TAGPROPERTY_REPARENT | TAGPROPERTY_BLOCKMOVEMENT, 24, ICON_E3EXIT, SUMO_TAG_E3DETECTOR);
// set values of attributes
myAllowedAttributes[currentTag].second[SUMO_ATTR_LANE] = AttributeValues(
ATTRPROPERTY_STRING | ATTRPROPERTY_UNIQUE, 1,
Expand All @@ -1442,7 +1463,7 @@ GNEAttributeCarrier::fillAttributeCarriers() {
currentTag = SUMO_TAG_INSTANT_INDUCTION_LOOP;
{
// set values of tag
myAllowedAttributes[currentTag].first = TagValues(TAGPROPERTY_ADDITIONAL | TAGPROPERTY_BLOCKMOVEMENT | TAGPROPERTY_DETECTOR, 25, ICON_E1INSTANT);
myAllowedAttributes[currentTag].first = TagValues(TAGPROPERTY_ADDITIONAL | TAGPROPERTY_DETECTOR | TAGPROPERTY_BLOCKMOVEMENT, 25, ICON_E1INSTANT);
// set values of attributes
myAllowedAttributes[currentTag].second[SUMO_ATTR_ID] = AttributeValues(
ATTRPROPERTY_STRING | ATTRPROPERTY_UNIQUE, 1,
Expand Down
16 changes: 15 additions & 1 deletion src/netedit/GNEAttributeCarrier.h
Expand Up @@ -79,6 +79,8 @@ class GNEAttributeCarrier : public GNEReferenceCounter {
TAGPROPERTY_GEOSHAPE = 1 << 11, // Element's shape acn be defined using a GEO Shape
TAGPROPERTY_DIALOG = 1 << 12, // Element can be edited using a dialog (GNECalibratorDialog, GNERerouterDialog...)
TAGPROPERTY_PARENT = 1 << 13, // Element will be writed in XML as child of another element (E3Entry -> E3Detector...)
TAGPROPERTY_LIMITEDCHILDS = 1 << 14, // Element can only have a certain number of childs (0 -> unlimited)
TAGPROPERTY_REPARENT = 1 << 15, // Element can be reparent
};

/// @brief struct with the attribute Properties
Expand All @@ -88,7 +90,7 @@ class GNEAttributeCarrier : public GNEReferenceCounter {
TagValues();

/// @brief parameter constructor
TagValues(int tagProperty, int positionListed, GUIIcon icon, SumoXMLTag tagParent = SUMO_TAG_NOTHING);
TagValues(int tagProperty, int positionListed, GUIIcon icon, SumoXMLTag tagParent = SUMO_TAG_NOTHING, int maxNumberOfChilds = 0);

/// @brief get GUI icon associated to this Tag
GUIIcon getGUIIcon() const;
Expand All @@ -99,6 +101,9 @@ class GNEAttributeCarrier : public GNEReferenceCounter {
/// @brief if has a parent, return parent tag
SumoXMLTag getParentTag() const;

/// @brief get maximum number of childs
int getMaxNumberOfChilds() const;

/// @brief return true if tag correspond to a netElement
bool isNetElement() const;

Expand Down Expand Up @@ -138,6 +143,12 @@ class GNEAttributeCarrier : public GNEReferenceCounter {
/// @brief return true if tag correspond to an element that can be edited using a dialog
bool hasDialog() const;

/// @brief return true if tag correspond to an element that only have a limited number of childs
bool hasLimitedNumberOfCHilds() const;

/// @brief return true if tag correspond to an element that can be reparent
bool canBeReparent() const;

private:
/// @brief Property of attribute
int myTagProperty;
Expand All @@ -150,6 +161,9 @@ class GNEAttributeCarrier : public GNEReferenceCounter {

/// @brief parent tag
SumoXMLTag myParentTag;

/// @brief maximun number of childs (0 -> unlimited)
int myMaxNumberOfChilds;
};


Expand Down
4 changes: 2 additions & 2 deletions src/netedit/frames/GNEInspectorFrame.cpp
Expand Up @@ -949,8 +949,8 @@ GNEInspectorFrame::NeteditAttributesEditor::showNeteditAttributesEditor() {
myCheckBoxCloseShape->setText("false");
}
}
// Check if item has another item as parent
if (tagValue.hasParent()) {
// Check if item has another item as parent and can be reparemt
if (tagValue.hasParent() && tagValue.canBeReparent()) {
// show NeteditAttributesEditor
show();
// obtain additional Parent
Expand Down

0 comments on commit a319399

Please sign in to comment.