From 3673e84ac12dd748b61f6ac1f8d5e6fdc2b86448 Mon Sep 17 00:00:00 2001 From: Tres Finocchiaro Date: Mon, 26 Mar 2018 21:51:55 -0400 Subject: [PATCH] Allow relative paths on non-existent directories (#4271) * Use cleanPath for calculating relative directories Closes #4267 --- src/core/ConfigManager.cpp | 2 +- src/core/SampleBuffer.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/core/ConfigManager.cpp b/src/core/ConfigManager.cpp index a99223a9d..2d89d76b1 100644 --- a/src/core/ConfigManager.cpp +++ b/src/core/ConfigManager.cpp @@ -227,7 +227,7 @@ bool ConfigManager::hasWorkingDir() const void ConfigManager::setWorkingDir( const QString & wd ) { - m_workingDir = ensureTrailingSlash( QFileInfo( wd ).canonicalFilePath() ); + m_workingDir = ensureTrailingSlash( QDir::cleanPath( wd ) ); } diff --git a/src/core/SampleBuffer.cpp b/src/core/SampleBuffer.cpp index 141085dd2..5fc640cb6 100644 --- a/src/core/SampleBuffer.cpp +++ b/src/core/SampleBuffer.cpp @@ -1416,7 +1416,7 @@ QString SampleBuffer::tryToMakeRelative( const QString & file ) if( QFileInfo( file ).isRelative() == false ) { // Normalize the path - QString f = QFileInfo( file ).canonicalFilePath().replace( QDir::separator(), '/' ); + QString f( QDir::cleanPath( file ) ); // First, look in factory samples // Isolate "samples/" from "data:/samples/" @@ -1425,7 +1425,7 @@ QString SampleBuffer::tryToMakeRelative( const QString & file ) // Iterate over all valid "data:/" searchPaths for ( const QString & path : QDir::searchPaths( "data" ) ) { - QString samplesPath = QString( path + samplesSuffix ).replace( QDir::separator(), '/' ); + QString samplesPath = QDir::cleanPath( path + samplesSuffix ) + "/"; if ( f.startsWith( samplesPath ) ) { return QString( f ).mid( samplesPath.length() );