disconnect(myPropertyPanel, 0, this, 0);
stopOperation();
- ModelAPI_Session::get()->finishOperation();
+ // check whether there are modifications performed during the current operation
+ // in the model
+ // in case if there are no modifications, do not increase the undo/redo stack
+ if (ModelAPI_Session::get()->isModified())
+ ModelAPI_Session::get()->finishOperation();
+ else
+ ModelAPI_Session::get()->abortOperation();
emit stopped();
if (aWidgets.empty())
return false;
- ModuleBase_ModelWidget* aWgt;
+ ModuleBase_ModelWidget* aWgt, *aFilledWgt = 0;
ModuleBase_ViewerPrs aPrs;
QList<ModuleBase_ModelWidget*>::const_iterator aWIt;
QList<ModuleBase_ViewerPrs>::const_iterator aPIt;
if (!aWgt->setValue(&aValue)) {
isSet = false;
break;
- } else
+ } else {
isSet = true;
+ aFilledWgt = aWgt;
+ }
}
if (isSet && canBeCommitted()) {
// if all widgets are filled with selection
commit();
return true;
}
+ else {
+ //activate next widget
+ if (aFilledWgt) {
+ myPropertyPanel->activateNextWidget(aFilledWgt);
+ return true;
+ }
+ }
//ModuleBase_ModelWidget* aActiveWgt = myPropertyPanel->activeWidget();
//if ((myPreSelection.size() > 0) && aActiveWgt) {