TerminalPanel: better check if terminal needs to change its currentWorkingDirectory when unmounting

CCBUG: 467403
This commit is contained in:
Méven Car 2023-04-20 18:15:56 +02:00
parent 7a7215a948
commit a654b8dae6
3 changed files with 6 additions and 6 deletions

View file

@ -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();
}

View file

@ -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()

View file

@ -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;