X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2FSalomeApp%2FSalomeApp_Study.cxx;h=70bd944cbdf7458bfc2b35f49957c6cbf107c4e3;hb=02904c3728214667f919cfe06072a91e1687b12f;hp=f5b0f58c4f7036aae73788072ad596576b0be768;hpb=4adf9af4286dfeecdfe033ace1c2341d1ca1139b;p=modules%2Fgui.git diff --git a/src/SalomeApp/SalomeApp_Study.cxx b/src/SalomeApp/SalomeApp_Study.cxx index f5b0f58c4..70bd944cb 100644 --- a/src/SalomeApp/SalomeApp_Study.cxx +++ b/src/SalomeApp/SalomeApp_Study.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2014 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -6,7 +6,7 @@ // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either -// version 2.1 of the License. +// version 2.1 of the License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -41,6 +41,9 @@ #include #include #include +#include +#include +#include #include @@ -334,11 +337,13 @@ public: } break; } +#ifndef DISABLE_PYCONSOLE case 6: //NoteBook variables were modified { myStudy->onNoteBookVarUpdate( QString( theID.c_str() ) ); break; } +#endif default:MESSAGE("Unknown event: " << event);break; } //switch } //notifyObserverID_real @@ -402,10 +407,12 @@ SalomeApp_Study::~SalomeApp_Study() } } +#ifndef DISABLE_PYCONSOLE void SalomeApp_Study::onNoteBookVarUpdate( QString theVarName) { emit notebookVarUpdated( theVarName ); } +#endif /*! Gets study id. @@ -454,7 +461,22 @@ bool SalomeApp_Study::createDocument( const QString& theStr ) // initialize myStudyDS, read HDF file QString aName = newStudyName(); - _PTR(Study) study ( SalomeApp_Application::studyMgr()->NewStudy( aName.toUtf8().data() ) ); + + _PTR(Study) study; + try { + study = _PTR(Study)( SalomeApp_Application::studyMgr()->NewStudy( aName.toUtf8().data() ) ); + } + catch(const SALOME_Exception& ex) { + SUIT_MessageBox::critical( SUIT_Session::session()->activeApplication()->desktop(), + tr("ERR_ERROR"), tr(ex.what())); + return false; + } + catch(...) { + SUIT_MessageBox::critical( SUIT_Session::session()->activeApplication()->desktop(), + tr("ERR_ERROR"), tr("CREATE_DOCUMENT_PROBLEM")); + return false; + } + if ( !study ) return false; @@ -490,7 +512,21 @@ bool SalomeApp_Study::openDocument( const QString& theFileName ) MESSAGE( "openDocument" ); // initialize myStudyDS, read HDF file - _PTR(Study) study ( SalomeApp_Application::studyMgr()->Open( theFileName.toUtf8().data() ) ); + _PTR(Study) study; + try { + study = _PTR(Study) ( SalomeApp_Application::studyMgr()->Open( theFileName.toUtf8().data() ) ); + } + catch(const SALOME_Exception& ex) { + SUIT_MessageBox::critical( SUIT_Session::session()->activeApplication()->desktop(), + tr("ERR_ERROR"), tr(ex.what())); + return false; + } + catch(...) { + SUIT_MessageBox::critical( SUIT_Session::session()->activeApplication()->desktop(), + tr("ERR_ERROR"), tr("OPEN_DOCUMENT_PROBLEM")); + return false; + } + if ( !study ) return false; @@ -690,7 +726,9 @@ void SalomeApp_Study::closeDocument(bool permanently) _PTR(Study) studyPtr = studyDS(); if ( studyPtr ) { - if(permanently) { + if ( myObserver ) + myStudyDS->detach( myObserver->_this() ); + if ( permanently ) { SalomeApp_Application::studyMgr()->Close( studyPtr ); } SALOMEDSClient_Study* aStudy = 0; @@ -1150,6 +1188,7 @@ void SalomeApp_Study::RemoveTemporaryFiles ( const char* theModuleName, const bo } } +#ifndef DISABLE_PYCONSOLE /*! Mark the study as saved in the file \param theFileName - the name of file @@ -1160,6 +1199,7 @@ void SalomeApp_Study::updateFromNotebook( const QString& theFileName, bool isSav studyDS()->Name(theFileName.toStdString()); setIsSaved( isSaved ); } +#endif LightApp_DataObject* SalomeApp_Study::findObjectByEntry( const QString& theEntry ) {