Salome HOME
projects
/
modules
/
shaper.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
7d78ee4
)
Issue #2371: Fatal error when undo/redo delete folder
author
azv
<azv@opencascade.com>
Fri, 15 Dec 2017 11:20:55 +0000
(14:20 +0300)
committer
azv
<azv@opencascade.com>
Fri, 15 Dec 2017 11:20:55 +0000
(14:20 +0300)
src/XGUI/XGUI_DataModel.cpp
patch
|
blob
|
history
diff --git
a/src/XGUI/XGUI_DataModel.cpp
b/src/XGUI/XGUI_DataModel.cpp
index baf49e20b1b0b40ee3618ac2cb2208b12a1795d1..b4ee3b011269487627067cdc6dbefabf2ac6ac97 100644
(file)
--- a/
src/XGUI/XGUI_DataModel.cpp
+++ b/
src/XGUI/XGUI_DataModel.cpp
@@
-376,8
+376,11
@@
ObjectPtr XGUI_DataModel::object(const QModelIndex& theIndex) const
{
if (theIndex.internalId() == 0) // this is a folder
return ObjectPtr();
{
if (theIndex.internalId() == 0) // this is a folder
return ObjectPtr();
- ModelAPI_Object* aObj =
- dynamic_cast<ModelAPI_Object*>((ModelAPI_Entity*)theIndex.internalPointer());
+ ModelAPI_Object* aObj = 0;
+ try {
+ aObj = dynamic_cast<ModelAPI_Object*>((ModelAPI_Entity*)theIndex.internalPointer());
+ } catch(...) {}
+
if (!aObj)
return ObjectPtr();
if (getSubDocument(aObj)) // the selected index is a folder of sub-document
if (!aObj)
return ObjectPtr();
if (getSubDocument(aObj)) // the selected index is a folder of sub-document
@@
-760,9
+763,12
@@
QModelIndex XGUI_DataModel::parent(const QModelIndex& theIndex) const
ObjectPtr aObj = object(theIndex);
if (!aObj.get()) {
// It can be a step of a field
ObjectPtr aObj = object(theIndex);
if (!aObj.get()) {
// It can be a step of a field
- ModelAPI_ResultField::ModelAPI_FieldStep* aStep =
- dynamic_cast<ModelAPI_ResultField::ModelAPI_FieldStep*>
- ((ModelAPI_Entity*)theIndex.internalPointer());
+ ModelAPI_ResultField::ModelAPI_FieldStep* aStep = 0;
+ try {
+ aStep = dynamic_cast<ModelAPI_ResultField::ModelAPI_FieldStep*>
+ ((ModelAPI_Entity*)theIndex.internalPointer());
+ } catch(...) {}
+
if (aStep) {
ModelAPI_ResultField* aField = aStep->field();
DocumentPtr aDoc = aSession->activeDocument();
if (aStep) {
ModelAPI_ResultField* aField = aStep->field();
DocumentPtr aDoc = aSession->activeDocument();