X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2FXGUI%2FXGUI_FacesPanel.cpp;h=e3a649bc65470ad39d872ad2dff353ac463baa34;hb=1fd15bed1c62f994a3438bc4a12f44d0361f98c9;hp=71617d829f61d055423549eca3ef456910f1e03a;hpb=705e996afb24502508b3c273987e84630f905628;p=modules%2Fshaper.git diff --git a/src/XGUI/XGUI_FacesPanel.cpp b/src/XGUI/XGUI_FacesPanel.cpp index 71617d829..e3a649bc6 100644 --- a/src/XGUI/XGUI_FacesPanel.cpp +++ b/src/XGUI/XGUI_FacesPanel.cpp @@ -44,6 +44,10 @@ #include #include +#include +#include +#include + #include #include #include @@ -207,8 +211,10 @@ void XGUI_FacesPanel::setActivePanel(const bool theIsActive) // the selection is cleared by activating selection control myWorkshop->selector()->clearSelection(); } - else + else{ emit deactivated(); + myUndoList.clear(); + } } //******************************************************************** @@ -413,6 +419,8 @@ void XGUI_FacesPanel::processSelection() myItems.insert(myLastItemIndex, aPrs); myListView->addItem(aItemName, myLastItemIndex); + // add in undo list + myUndoList.push_back(myLastItemIndex); myLastItemIndex++; isModified = true; } @@ -462,7 +470,7 @@ void XGUI_FacesPanel::processSelection() bool XGUI_FacesPanel::processDelete() { //appendFirstSelectionInHistory(); - QModelIndexList anIndices = myListView->getControl()->selectionModel()->selectedIndexes(); + //QModelIndexList anIndices = myListView->getControl()->selectionModel()->selectedIndexes(); std::set aSelectedIds; myListView->getSelectedIndices(aSelectedIds); @@ -604,6 +612,18 @@ void XGUI_FacesPanel::onClosed() reset(true); } +//******************************************************************** + +void XGUI_FacesPanel::processUndo() +{ + if(!myUndoList.size()) + return; + + myListView->selectIndices({myUndoList.back()}); + processDelete(); + myUndoList.pop_back(); +} + //******************************************************************** void XGUI_FacesPanel::flushRedisplay() const {