From ecc56d25bdfa4226c99bedac91d53ffc7feb9eec Mon Sep 17 00:00:00 2001 From: xiaoming <2014500726@smail.xtu.edu.cn> Date: Wed, 8 Nov 2023 16:08:47 +0800 Subject: [PATCH] src:Fix working directory path check Signed-off-by: xiaoming <2014500726@smail.xtu.edu.cn> --- src/mainwindow.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 8270cb01..55cbd3da 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -2310,9 +2310,12 @@ QString MainWindow::startLocalShellSession(MainWidgetGroup *group, const QString QString workDir = getDirAndcheckeSysName(newTitle); if(!workDir.isEmpty()) { sessionsWindow->setShortTitle(workDir); - QFileInfo fileInfo(workDir.replace("~",QDir::homePath())); + if(workDir.startsWith("~/")) { + workDir = workDir.replace(0,1,QDir::homePath()); + } + QFileInfo fileInfo(workDir); if(fileInfo.isDir()) { - sessionsWindow->setWorkingDirectory(workDir.replace("~",QDir::homePath())); + sessionsWindow->setWorkingDirectory(workDir); } } else { sessionsWindow->setShortTitle(newTitle); @@ -2435,9 +2438,12 @@ int MainWindow::cloneCurrentSession(MainWidgetGroup *group, QString name) QString workDir = getDirAndcheckeSysName(newTitle); if(!workDir.isEmpty()) { sessionsWindowClone->setShortTitle(workDir); - QFileInfo fileInfo(workDir.replace("~",QDir::homePath())); + if(workDir.startsWith("~/")) { + workDir = workDir.replace(0,1,QDir::homePath()); + } + QFileInfo fileInfo(workDir); if(fileInfo.isDir()) { - sessionsWindowClone->setWorkingDirectory(workDir.replace("~",QDir::homePath())); + sessionsWindowClone->setWorkingDirectory(workDir); } } else { sessionsWindowClone->setShortTitle(newTitle);