diff --git a/VECTOAux/VectoAuxiliaries/UI/FB_Global.vb b/VECTOAux/VectoAuxiliaries/UI/FB_Global.vb index a0031d06066785e4847a70309510562f7c9098bc..233171f225beca90aff566f8f02877adc01f6e43 100644 --- a/VECTOAux/VectoAuxiliaries/UI/FB_Global.vb +++ b/VECTOAux/VectoAuxiliaries/UI/FB_Global.vb @@ -8,6 +8,7 @@ ' WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ' ' See the LICENSE.txt for the specific language governing permissions and limitations. +Imports System.IO ''' <summary> ''' Global File Brower properties and cFilebrowser instances. @@ -58,6 +59,18 @@ Module FB_Global #Region "File path functions" + + Public Function GetRelativePath(filePath As String, basePath As String) As String + If (String.IsNullOrEmpty(filePath) OrElse String.IsNullOrEmpty(basePath)) Then + Return "" + End If + If (Path.GetDirectoryName(filePath).StartsWith(basePath, StringComparison.OrdinalIgnoreCase)) Then + Return Path.GetFullPath(filePath).Substring(basePath.Length + If(basePath.EndsWith("\"), 0, 1)) + End If + Return filePath + End Function + + 'When no path is specified, then insert either HomeDir or MainDir Special-folders Public Function fFileRepl(ByVal file As String, Optional ByVal MainDir As String = "") As String diff --git a/VECTOAux/VectoAuxiliaries/UI/frmAuxiliaryConfig.vb b/VECTOAux/VectoAuxiliaries/UI/frmAuxiliaryConfig.vb index cdcf283270fb5e21eb8808ef4dd341e6905aa6d5..be7c1ae774d011beb51c67e40f695b1b63eca026 100644 --- a/VECTOAux/VectoAuxiliaries/UI/frmAuxiliaryConfig.vb +++ b/VECTOAux/VectoAuxiliaries/UI/frmAuxiliaryConfig.vb @@ -844,7 +844,7 @@ Public Class frmAuxiliaryConfig fbAux.Extensions = New String() {"AALT"} Dim suppliedAALTPath As String = txtAlternatorMapPath.Text - Dim absoluteAALTPath As String = FilePathUtils.ResolveFilePath(fPATH(vectoFile), suppliedAALTPath) + Dim absoluteAALTPath As String = FilePathUtils.ResolveFilePath(aauxPath, suppliedAALTPath) Dim message As String = String.Empty Dim newFile As Boolean = False @@ -923,9 +923,9 @@ Public Class frmAuxiliaryConfig Dim fname As String = fFILE(vectoFile, True) fbAux.Extensions = New String() {"ACMP"} - If fbAux.OpenDialog(fPATH(vectoFile)) Then + If fbAux.OpenDialog(Path.Combine(aauxPath, txtCompressorMap.Text)) Then - txtCompressorMap.Text = fFileWoDir(fbAux.Files(0), fPATH(vectoFile)) + txtCompressorMap.Text = GetRelativePath(fbAux.Files(0), aauxPath) End If @@ -947,9 +947,9 @@ Public Class frmAuxiliaryConfig Dim fname As String = fFILE(vectoFile, True) fbAux.Extensions = New String() {"APAC"} - If fbAux.OpenDialog(fPATH(vectoFile)) Then + If fbAux.OpenDialog(Path.Combine(aauxPath, txtActuationsMap.Text)) Then - txtActuationsMap.Text = fFileWoDir(fbAux.Files(0), fPATH(vectoFile)) + txtActuationsMap.Text = GetRelativePath(fbAux.Files(0), aauxPath) End If @@ -974,10 +974,10 @@ Public Class frmAuxiliaryConfig fbAux.Extensions = New String() {"abdb"} - If fbAux.OpenDialog(fPATH(vectoFile)) Then + If fbAux.OpenDialog(Path.Combine(Path.GetDirectoryName(auxFile), txtBusDatabaseFilePath.Text)) Then txtBusDatabaseFilePath.Focus() - txtBusDatabaseFilePath.Text = fFileWoDir(fbAux.Files(0), fPATH(vectoFile)) + txtBusDatabaseFilePath.Text = GetRelativePath(fbAux.Files(0), Path.GetDirectoryName(auxFile)) Dim busDB As New BusDatabase() @@ -1001,8 +1001,8 @@ Public Class frmAuxiliaryConfig fbAux.Extensions = New String() {"AHSM"} Dim suppliedSSMPath As String = txtSSMFilePath.Text.Trim() - Dim absoluteSSMPath As String = FilePathUtils.ResolveFilePath(fPATH(vectoFile), suppliedSSMPath) - Dim absoluteBusDatabasePath As String = FilePathUtils.ResolveFilePath(fPATH(vectoFile), + Dim absoluteSSMPath As String = FilePathUtils.ResolveFilePath(aauxPath, suppliedSSMPath) + Dim absoluteBusDatabasePath As String = FilePathUtils.ResolveFilePath(aauxPath, Me.txtBusDatabaseFilePath.Text.Trim()) Dim message As String = String.Empty Dim newFile As Boolean = False @@ -1035,9 +1035,9 @@ Public Class frmAuxiliaryConfig 'Find / Create file and configure. If fbAux.CustomDialog(absoluteSSMPath, False, False, tFbExtMode.ForceExt, False, String.Empty) Then - txtSSMFilePath.Text = fFileWoDir(fbAux.Files(0), fPATH(vectoFile)) + txtSSMFilePath.Text = GetRelativePath(fbAux.Files(0), aauxPath) suppliedSSMPath = txtSSMFilePath.Text - absoluteSSMPath = FilePathUtils.ResolveFilePath(fPATH(vectoFile), suppliedSSMPath) + absoluteSSMPath = FilePathUtils.ResolveFilePath(aauxPath, suppliedSSMPath) If _ IO.File.Exists(absoluteSSMPath) OrElse MsgBox("Do you want to create a new .AHSM file?", MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then