Skip to content

Commit

Permalink
Fixed #10084
Browse files Browse the repository at this point in the history
  • Loading branch information
palvarezlopez committed Feb 28, 2022
1 parent b93f9b1 commit 3b3d50e
Show file tree
Hide file tree
Showing 4 changed files with 43 additions and 9 deletions.
39 changes: 36 additions & 3 deletions src/netedit/GNEApplicationWindow.cpp
Expand Up @@ -256,8 +256,8 @@ FXDEFMAP(GNEApplicationWindow) GNEApplicationWindowMap[] = {
FXMAPFUNC(SEL_UPDATE, MID_GNE_TOOLBAREDIT_LOADADDITIONALS, GNEApplicationWindow::onUpdNeedsNetwork),
FXMAPFUNC(SEL_COMMAND, MID_GNE_TOOLBAREDIT_LOADDEMAND, GNEApplicationWindow::onCmdLoadDemandInSUMOGUI),
FXMAPFUNC(SEL_UPDATE, MID_GNE_TOOLBAREDIT_LOADDEMAND, GNEApplicationWindow::onUpdNeedsNetwork),
FXMAPFUNC(SEL_COMMAND, MID_SIMPLIFY_NETWORK, GNEApplicationWindow::onCmdSimplifyNetwork),
FXMAPFUNC(SEL_UPDATE, MID_SIMPLIFY_NETWORK, GNEApplicationWindow::onUpdNeedsNetworkSelection),
FXMAPFUNC(SEL_COMMAND, MID_HOTKEY_SHIFT_F4_SIMPLIFY_NETWORK, GNEApplicationWindow::onCmdSimplifyNetwork),
FXMAPFUNC(SEL_UPDATE, MID_HOTKEY_SHIFT_F4_SIMPLIFY_NETWORK, GNEApplicationWindow::onUpdNeedsNetworkSelection),

FXMAPFUNC(SEL_COMMAND, MID_HOTKEY_CTRL_T_OPENSUMONETEDIT, GNEApplicationWindow::onCmdOpenSUMOGUI),
FXMAPFUNC(SEL_UPDATE, MID_HOTKEY_CTRL_T_OPENSUMONETEDIT, GNEApplicationWindow::onUpdNeedsNetwork),
Expand Down Expand Up @@ -2129,7 +2129,40 @@ GNEApplicationWindow::onCmdSetFrontElement(FXObject*, FXSelector, void*) {
long
GNEApplicationWindow::onCmdSimplifyNetwork(FXObject*, FXSelector, void*) {
if (myViewNet) {

// split edges and junctions in two groups depending of their selection
std::vector<GNEAttributeCarrier*> selected, unselected;
// reserve both
selected.reserve(myViewNet->getNet()->getAttributeCarriers()->getJunctions().size() + myViewNet->getNet()->getAttributeCarriers()->getEdges().size());
unselected.reserve(myViewNet->getNet()->getAttributeCarriers()->getJunctions().size() + myViewNet->getNet()->getAttributeCarriers()->getEdges().size());
// iterate over junction and edges
for (const auto &junction : myViewNet->getNet()->getAttributeCarriers()->getJunctions()) {
if (junction.second->isAttributeCarrierSelected()) {
selected.push_back(junction.second);
} else {
unselected.push_back(junction.second);
}
}
for (const auto &edges : myViewNet->getNet()->getAttributeCarriers()->getEdges()) {
if (edges.second->isAttributeCarrierSelected()) {
selected.push_back(edges.second);
} else {
unselected.push_back(edges.second);
}
}
// now unselect and delete elements
myUndoList->begin(Supermode::NETWORK, GUIIcon::SIMPLIFYNETWORK, "simplify network");
for (const auto &AC : selected) {
AC->setAttribute(GNE_ATTR_SELECTED, "false", myUndoList);
}
for (const auto &AC : unselected) {
if (AC->getTagProperty().getTag() == SUMO_TAG_JUNCTION) {
myViewNet->getNet()->deleteJunction(dynamic_cast<GNEJunction*>(AC), myUndoList);
} else if (myViewNet->getNet()->getAttributeCarriers()->retrieveEdge(AC->getID(), false)) {
myViewNet->getNet()->deleteEdge(dynamic_cast<GNEEdge*>(AC), myUndoList, false);
}
}
// end undoList operation
myUndoList->end();
}
return 1;
}
Expand Down
8 changes: 4 additions & 4 deletions src/netedit/GNEApplicationWindowHelper.cpp
Expand Up @@ -960,10 +960,10 @@ GNEApplicationWindowHelper::EditMenuCommands::buildFrontElementMenuCommand(FXMen

void
GNEApplicationWindowHelper::EditMenuCommands::buildNetworkReductionMenuCommand(FXMenuPane* editMenu) {
// add clear front element
networkReduction = GUIDesigns::buildFXMenuCommand(editMenu,
"Reduce network to selection", GUIIconSubSys::getIcon(GUIIcon::SIMPLIFYNETWORK),
myGNEApp, MID_SIMPLIFY_NETWORK);
// add network reduction
networkReduction = GUIDesigns::buildFXMenuCommandShortcut(editMenu,
"Reduce network to selection", "Shift+F4", "Reduce network to selection",
GUIIconSubSys::getIcon(GUIIcon::SIMPLIFYNETWORK), myGNEApp, MID_HOTKEY_SHIFT_F4_SIMPLIFY_NETWORK);
}


Expand Down
1 change: 1 addition & 0 deletions src/utils/gui/shortcuts/GUIShortcutsSubSys.cpp
Expand Up @@ -324,6 +324,7 @@ GUIShortcutsSubSys::buildNETEDITAccelerators(GNEApplicationWindow* GNEApp) {
GNEApp->getAccelTable()->addAccel(parseKey(KEY_F1, KEYMODIFIER_SHIFT), GNEApp, FXSEL(SEL_COMMAND, MID_HOTKEY_SHIFT_F1_TEMPLATE_SET));
GNEApp->getAccelTable()->addAccel(parseKey(KEY_F2, KEYMODIFIER_SHIFT), GNEApp, FXSEL(SEL_COMMAND, MID_HOTKEY_SHIFT_F2_TEMPLATE_COPY));
GNEApp->getAccelTable()->addAccel(parseKey(KEY_F3, KEYMODIFIER_SHIFT), GNEApp, FXSEL(SEL_COMMAND, MID_HOTKEY_SHIFT_F3_TEMPLATE_CLEAR));
GNEApp->getAccelTable()->addAccel(parseKey(KEY_F4, KEYMODIFIER_SHIFT), GNEApp, FXSEL(SEL_COMMAND, MID_HOTKEY_SHIFT_F4_SIMPLIFY_NETWORK));
GNEApp->getAccelTable()->addAccel(parseKey(KEY_F5, KEYMODIFIER_SHIFT), GNEApp, FXSEL(SEL_COMMAND, MID_HOTKEY_SHIFT_F5_COMPUTEJUNCTIONS_VOLATILE));
GNEApp->getAccelTable()->addAccel(parseKey(KEY_F7, KEYMODIFIER_SHIFT), GNEApp, FXSEL(SEL_COMMAND, MID_HOTKEY_SHIFT_F7_ADJUST_PERSON_PLANS));
GNEApp->getAccelTable()->addAccel(parseKey(KEY_F12, KEYMODIFIER_SHIFT), GNEApp, FXSEL(SEL_COMMAND, MID_HOTKEY_SHIFT_F12_FOCUSUPPERELEMENT));
Expand Down
4 changes: 2 additions & 2 deletions src/utils/gui/windows/GUIAppEnum.h
Expand Up @@ -218,6 +218,8 @@ enum {
MID_HOTKEY_SHIFT_F2_TEMPLATE_COPY,
/// @brief clear template
MID_HOTKEY_SHIFT_F3_TEMPLATE_CLEAR,
/// @brief simplify network reduction
MID_HOTKEY_SHIFT_F4_SIMPLIFY_NETWORK,
/// @brief compute junctions with volatile options
MID_HOTKEY_SHIFT_F5_COMPUTEJUNCTIONS_VOLATILE,
/// @brief Adjust person plans (start und end positions, arrival positions, etc.)
Expand Down Expand Up @@ -314,8 +316,6 @@ enum {
MID_EDITCHOSEN,
/// @brief Open in netedit
MID_NETEDIT,
/// @brief simplify network reduction
MID_SIMPLIFY_NETWORK,

/// @}

Expand Down

0 comments on commit 3b3d50e

Please sign in to comment.