]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
MTN: Realtive mode was added to QtxPathEdit
authorsbh <sbh@opencascade.com>
Wed, 10 Oct 2012 07:10:49 +0000 (07:10 +0000)
committersbh <sbh@opencascade.com>
Wed, 10 Oct 2012 07:10:49 +0000 (07:10 +0000)
src/Qtx/Qtx.cxx
src/Qtx/QtxPathEdit.cxx

index 89f7e729cbd852a003d3cd86c90785956c39b44a..4867d76f00d46053692921b35a94ba1e8988fbf2 100755 (executable)
@@ -388,6 +388,42 @@ QString Qtx::extension( const QString& path, const bool full )
   return full ? QFileInfo( path ).completeSuffix() : QFileInfo( path ).suffix();
 }
 
+/*!
+  \brief Return path to file relative to theBase directory.
+
+  \param theBase path to base directory
+  \param theFileName  the file name
+  \return relative file path
+*/
+QString Qtx::relativePath( const QString& theBase, const QString& theFileName )
+{
+  QString aCanBase;
+  QFileInfo aBaseFInfo( theBase );
+  if( aBaseFInfo.exists() )
+    aCanBase = aBaseFInfo.canonicalFilePath();
+  else
+    aCanBase = QDir::cleanPath(theBase);
+  QFileInfo aFInfo(theFileName);
+  QString aCanFileName = QDir::cleanPath(theFileName);
+  QDir aDir(aCanBase);
+  return aDir.relativeFilePath( aCanFileName );
+}
+
+/*!
+  \brief Return avsolute path.
+
+  \param theBase path to base directory
+  \param theFile  the file name
+  \return absolute file path
+*/
+QString Qtx::absolutePath( const QString& theBase, const QString& theFile )
+{
+  QFileInfo aFInfo( theBase, theFile );
+  QString aPath = QDir::cleanPath( aFInfo.filePath() );
+  QFileInfo aCleanFInfo(aPath);
+  return aCleanFInfo.canonicalFilePath();  
+}
+
 /*!
   \brief Convert the given parameter to the platform-specific library name.
 
index 8e06601f89b03e11651193f7e70ac5c099028463..a9f8497e9bc7e667970d39c86a7f5500bb383c5e 100644 (file)
@@ -205,21 +205,6 @@ void QtxPathEdit::setValidator( QValidator* v )
 */
 void QtxPathEdit::setBasePath( const QString& theBasePath )
 {
-  if( myBasePath.isEmpty() && !theBasePath.isEmpty() ){
-//Switch to relative path editor
-    QString aNewPath = Qtx::relativePath( theBasePath, myPath->text() );
-    myPath->setText( aNewPath );
-  }
-  if( !myBasePath.isEmpty() && theBasePath.isEmpty() ){
-//Switch to absolute path editor
-    QString aNewPath = Qtx::relativePath( theBasePath, myPath->text() );
-    myPath->setText( aNewPath );
-  }
-  if( !myBasePath.isEmpty() && !theBasePath.isEmpty() ){
-    QString anAbsPath = Qtx::absolutePath( myBasePath, myPath->text() );
-    QString aNewPath = Qtx::relativePath( theBasePath, anAbsPath );
-    myPath->setText( aNewPath );
-  }
   myBasePath = theBasePath;
 }