]> SALOME platform Git repositories - modules/shaper.git/commitdiff
Salome HOME
Avoid crash on load document
authorvsv <vitaly.smetannikov@opencascade.com>
Fri, 22 May 2015 07:38:29 +0000 (10:38 +0300)
committervsv <vitaly.smetannikov@opencascade.com>
Fri, 22 May 2015 07:38:29 +0000 (10:38 +0300)
src/PartSet/PartSet_DocumentDataModel.cpp
src/XGUI/XGUI_Workshop.cpp

index cd12d6ed9871a9d295f7dc08d6ed28fa2b70df21..50bae54aca542801aae196094d339f3399e59d2e 100644 (file)
@@ -333,7 +333,10 @@ QVariant PartSet_DocumentDataModel::headerData(int theSection, Qt::Orientation t
 
 int PartSet_DocumentDataModel::rowCount(const QModelIndex& theParent) const
 {
-  DocumentPtr aRootDoc = ModelAPI_Session::get()->moduleDocument();
+  SessionPtr aSession = ModelAPI_Session::get();
+  if (!aSession->hasModuleDocument())
+    return 0;
+  DocumentPtr aRootDoc = aSession->moduleDocument();
   if (!theParent.isValid()) {
     // Size of external models
     int aVal = historyOffset();
index 9da339e98200157b890975108122c2b3517d9dbe..8774bbf917c3de5619be7cabed1909d1e41eaab7 100644 (file)
@@ -828,7 +828,6 @@ void XGUI_Workshop::onOpen()
     } else if (anAnswer == QMessageBox::Cancel) {
       return;
     }
-    aSession->closeAll();
     myCurrentDir = "";
   }
 
@@ -844,6 +843,7 @@ void XGUI_Workshop::onOpen()
   }
   QApplication::setOverrideCursor(Qt::WaitCursor);
   myIsLoadingData = true;
+  aSession->closeAll();
   aSession->load(myCurrentDir.toLatin1().constData());
   myObjectBrowser->rebuildDataTree();
   displayAllResults();