X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FMaterial%2FMaterial_ResourceMgr.cxx;h=02e3fabe78745b92b9bea8fc88dbf5190dc05e84;hb=33989517de8433bf2424a75aeba0b0d906eda520;hp=59ca3b65fa3532e0d3d5155a5c81ca3d9d9c51dc;hpb=5b3622aa2363853841fd5b4205c78a715bfee4a4;p=modules%2Fgeom.git diff --git a/src/Material/Material_ResourceMgr.cxx b/src/Material/Material_ResourceMgr.cxx index 59ca3b65f..02e3fabe7 100644 --- a/src/Material/Material_ResourceMgr.cxx +++ b/src/Material/Material_ResourceMgr.cxx @@ -1,9 +1,9 @@ -// Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE // // 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 @@ -22,6 +22,7 @@ #include "Material_ResourceMgr.h" +#include #include #include @@ -175,7 +176,10 @@ void Material_ResourceMgr::watchUserFile( bool on ) if ( on ) { if ( !myWatcher ) { myWatcher = new QFileSystemWatcher( this ); - myWatcher->addPath( userFileName( appName() ) ); + QFileInfo ufile = userFileName( appName() ); + if ( ufile.exists() ) { + myWatcher->addPath( ufile.filePath() ); + } connect( myWatcher, SIGNAL( fileChanged( QString ) ), this, SLOT( update() ) ); } } @@ -187,6 +191,25 @@ void Material_ResourceMgr::watchUserFile( bool on ) } } +/*! + \brief This function is called after user configuration file is saved. + \internal +*/ +void Material_ResourceMgr::saved() +{ + if ( resourceMgr() != this ) { + resourceMgr()->saved(); + } + else if ( myWatcher ) { + QStringList files = myWatcher->files(); + QFileInfo ufile = userFileName( appName() ); + if ( ufile.exists() && !files.contains( ufile.filePath() ) ) { + myWatcher->addPath( ufile.filePath() ); + update(); + } + } +} + /*! \brief Update user database slot \internal