]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/panels/terminal/terminalpanel.cpp
GIT_SILENT Sync po/docbooks with svn
[dolphin.git] / src / panels / terminal / terminalpanel.cpp
index 0e79a475d4a9b8db4058bc1305f3a69b135e5564..5b17023a39240558142a796474a40a6a9d8420ae 100644 (file)
@@ -8,7 +8,7 @@
 
 #include <KActionCollection>
 #include <KIO/DesktopExecParser>
-#include <KIO/Job>
+#include <KIO/StatJob>
 #include <KJobWidgets>
 #include <KLocalizedString>
 #include <KMessageWidget>
@@ -70,6 +70,7 @@ bool TerminalPanel::currentWorkingDirectoryIsChildOf(const QString &path) const
 void TerminalPanel::terminalExited()
 {
     m_terminal = nullptr;
+    m_konsolePart = nullptr;
     Q_EMIT hideTerminalPanel();
 }
 
@@ -184,6 +185,7 @@ void TerminalPanel::showEvent(QShowEvent *event)
                     "Terminal cannot be shown because Konsole is not installed. "
                     "Please install it and then reopen the panel.");
                 m_konsolePartMissingMessage = new KMessageWidget(konsoleNotInstalledText, this);
+                m_konsolePartMissingMessage->setPosition(KMessageWidget::Footer);
                 m_konsolePartMissingMessage->setCloseButtonVisible(false);
                 m_konsolePartMissingMessage->hide();
                 if (KIO::DesktopExecParser::hasSchemeHandler(konsoleInstallUrl)) {
@@ -217,6 +219,10 @@ void TerminalPanel::changeDir(const QUrl &url)
     delete m_mostLocalUrlJob;
     m_mostLocalUrlJob = nullptr;
 
+    if (url.isEmpty()) {
+        return;
+    }
+
     if (url.isLocalFile()) {
         sendCdToTerminal(url.toLocalFile());
         return;