Salome HOME
untabify
[modules/geom.git] / src / Material / Material_ResourceMgr.cxx
index 59ca3b65fa3532e0d3d5155a5c81ca3d9d9c51dc..12cb467905eb5339a7e08070f210946e9df659a1 100644 (file)
@@ -22,6 +22,7 @@
 
 #include "Material_ResourceMgr.h"
 
+#include <QFileInfo>
 #include <QFileSystemWatcher>
 #include <QThread>
 
@@ -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