┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMéven Car <[email protected]>2023-04-20 18:15:56 +0200
committerMéven Car <[email protected]>2023-04-21 15:32:58 +0200
commita654b8dae671140da73d70d80bb2f6e2b0282c18 (patch)
tree8dc8e3ab9e3e7ed53052d887bc3781fc96ce8f14 /src
parent7a7215a94840662e2583ec49836ea5a38a57e514 (diff)
TerminalPanel: better check if terminal needs to change its currentWorkingDirectory when unmounting
CCBUG: 467403
Diffstat (limited to 'src')
-rw-r--r--src/dolphinmainwindow.cpp4
-rw-r--r--src/panels/terminal/terminalpanel.cpp6
-rw-r--r--src/panels/terminal/terminalpanel.h2
3 files changed, 6 insertions, 6 deletions
diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp
index 76b8ded6f..f043df310 100644
--- a/src/dolphinmainwindow.cpp
+++ b/src/dolphinmainwindow.cpp
@@ -1504,7 +1504,7 @@ void DolphinMainWindow::slotStorageTearDownFromPlacesRequested(const QString &mo
setViewsToHomeIfMountPathOpen(mountPath);
});
- if (m_terminalPanel && m_terminalPanel->currentWorkingDirectory().startsWith(mountPath)) {
+ if (m_terminalPanel && m_terminalPanel->currentWorkingDirectoryIsParentOf(mountPath)) {
m_tearDownFromPlacesRequested = true;
m_terminalPanel->goHome();
// m_placesPanel->proceedWithTearDown() will be called in slotTerminalDirectoryChanged
@@ -1519,7 +1519,7 @@ void DolphinMainWindow::slotStorageTearDownExternallyRequested(const QString &mo
setViewsToHomeIfMountPathOpen(mountPath);
});
- if (m_terminalPanel && m_terminalPanel->currentWorkingDirectory().startsWith(mountPath)) {
+ if (m_terminalPanel && m_terminalPanel->currentWorkingDirectoryIsParentOf(mountPath)) {
m_tearDownFromPlacesRequested = false;
m_terminalPanel->goHome();
}
diff --git a/src/panels/terminal/terminalpanel.cpp b/src/panels/terminal/terminalpanel.cpp
index 53464e620..49eb42c1d 100644
--- a/src/panels/terminal/terminalpanel.cpp
+++ b/src/panels/terminal/terminalpanel.cpp
@@ -54,12 +54,12 @@ void TerminalPanel::goHome()
sendCdToTerminal(QDir::homePath(), HistoryPolicy::SkipHistory);
}
-QString TerminalPanel::currentWorkingDirectory()
+bool TerminalPanel::currentWorkingDirectoryIsParentOf(const QString &path) const
{
if (m_terminal) {
- return m_terminal->currentWorkingDirectory();
+ return m_terminal->currentWorkingDirectory().startsWith(path);
}
- return QString();
+ return false;
}
void TerminalPanel::terminalExited()
diff --git a/src/panels/terminal/terminalpanel.h b/src/panels/terminal/terminalpanel.h
index a1b7af03a..49fd1b70d 100644
--- a/src/panels/terminal/terminalpanel.h
+++ b/src/panels/terminal/terminalpanel.h
@@ -45,7 +45,7 @@ public:
* home when an unmounting request is received.
*/
void goHome();
- QString currentWorkingDirectory();
+ bool currentWorkingDirectoryIsParentOf(const QString &path) const;
bool isHiddenInVisibleWindow() const;
bool terminalHasFocus() const;
bool hasProgramRunning() const;