if (isGrantedOperation(theOperation->id()))
return true;
if (theOperation && theOperation->isModified()) {
+ QString aTitle = theOperation->getDescription()->description();
if (theMessageKind == XGUI_AbortOperationMessage) {
- QString aMessage = tr("%1 operation will be aborted.").arg(theOperation->id());
+ QString aMessage = tr("%1 operation will be aborted.").arg(aTitle);
myActiveMessageBox = createMessageBox(aMessage);
bool aResult = myActiveMessageBox->exec() == QMessageBox::Ok;
myActiveMessageBox = 0;
return aResult;
}
else if (theMessageKind == XGUI_InformationMessage) {
- QString aMessage = tr("Please validate your %1 before saving.").arg(theOperation->id());
+ QString aMessage = tr("Please validate your %1 before saving.").arg(aTitle);
myActiveMessageBox = createInformationBox(aMessage);
myActiveMessageBox->exec();
myActiveMessageBox = 0;
void XGUI_OperationMgr::stopOperation(ModuleBase_Operation* theOperation, bool& isCommitted)
{
- if (XGUI_Tools::workshop(myWorkshop)->errorMgr()->isApplyEnabled() && theOperation->isModified())
+ if (XGUI_Tools::workshop(myWorkshop)->errorMgr()->isApplyEnabled() &&
+ theOperation->isModified()) {
isCommitted = theOperation->commit();
- else {
+ } else {
isCommitted = false;
abortOperation(theOperation);
}
void XGUI_OperationMgr::onOperationAborted()
{
ModuleBase_Operation* aSenderOperation = dynamic_cast<ModuleBase_Operation*>(sender());
+ XGUI_Workshop* aWorkshop = XGUI_Tools::workshop(myWorkshop);
+ aWorkshop->setStatusBarMessage("");
emit operationAborted(aSenderOperation);
}
bool XGUI_OperationMgr::onKeyReleased(QObject *theObject, QKeyEvent* theEvent)
{
+ bool isAccepted = false;
+
// Let the manager decide what to do with the given key combination.
ModuleBase_Operation* anOperation = currentOperation();
- bool isAccepted = false;
switch (theEvent->key()) {
case Qt::Key_Tab:
case Qt::Key_Backtab:
aContext->HilightNextDetected(aView);
else if ((theEvent->key() == Qt::Key_P))
aContext->HilightPreviousDetected(aView);
+ aViewer->updateHighlight();
+ isAccepted = true;
}
}
}
ModuleBase_IPropertyPanel* aPanel = aOperation->propertyPanel();
ModuleBase_ModelWidget* anActiveWgt = aPanel->activeWidget();
if (anActiveWgt)
+ {
isAccepted = anActiveWgt && anActiveWgt->processAction(ActionEscape);
+ if (isAccepted) {
+ ModuleBase_OperationFeature* aFOperation =
+ dynamic_cast<ModuleBase_OperationFeature*>(currentOperation());
+ if (aFOperation)
+ aFOperation->setNeedToBeAborted(true);
+ }
+ }
}
if (!isAccepted)
{