-// Copyright (C) 2014-2017 CEA/DEN, EDF R&D
+// Copyright (C) 2014-2019 CEA/DEN, EDF R&D
//
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
//
// You should have received a copy of the GNU Lesser General Public
// License along with this library; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
//
-// See http://www.salome-platform.org/ or
-// email : webmaster.salome@opencascade.com<mailto:webmaster.salome@opencascade.com>
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
//
#include "ModuleBase_OperationFeature.h"
#endif
ModuleBase_OperationFeature::ModuleBase_OperationFeature(const QString& theId, QObject* theParent)
-: ModuleBase_Operation(theId, theParent), myIsEditing(false), myNeedToBeAborted(false)
+: ModuleBase_Operation(theId, theParent), myIsEditing(false), myNeedToBeAborted(false),
+myRestartTransactionOnResume(false)
{
}
commitOperation();
stopOperation();
- emit stopped();
- emit committed();
- // finishOperation has to be after commited because in signal commited
- // there is a modification of attribures (color)
SessionPtr aMgr = ModelAPI_Session::get();
aMgr->finishOperation();
+ // Finish operation has to be before stopped because stopped caused update of Object browser
+ // If it will be done before of cleaning of obsolete objects it will cause crash
+ emit stopped();
+ emit committed();
afterCommitOperation();
#ifdef DEBUG_OPERATION_START
theProp->setFocusOnOkButton();
}
}
+
+void ModuleBase_OperationFeature::resumeOperation()
+{
+ if (myRestartTransactionOnResume) {
+ ModelAPI_Session::get()->startOperation(this->id().toStdString(), true);
+ myRestartTransactionOnResume = false;
+ }
+}