X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/ca0a0438eaebe7107bdf054b23c98478018d6fee..862ceee323ad3b474ce9de11eefbddd99c528fac:/src/terminalsidebarpage.cpp diff --git a/src/terminalsidebarpage.cpp b/src/terminalsidebarpage.cpp index 2d2b3a5bb..cfa55c0d8 100644 --- a/src/terminalsidebarpage.cpp +++ b/src/terminalsidebarpage.cpp @@ -22,9 +22,10 @@ #include #include #include -#include +#include -#include +#include +#include TerminalSidebarPage::TerminalSidebarPage(QWidget* parent) : SidebarPage(parent), @@ -44,24 +45,24 @@ void TerminalSidebarPage::setUrl(const KUrl& url) if (!SidebarPage::url().equals(url, KUrl::CompareWithoutTrailingSlash)) { SidebarPage::setUrl(url); if ((m_terminal != 0) && isVisible()) { - m_terminal->showShellInDir(url.path()); + m_terminal->sendInput("cd " + KShell::quoteArg(url.path()) + '\n'); } } } void TerminalSidebarPage::showEvent(QShowEvent* event) { + if (event->spontaneous()) { + SidebarPage::showEvent(event); + return; + } + if (m_terminal == 0) { KLibFactory* factory = KLibLoader::self()->factory("libkonsolepart"); - KParts::Part* part = static_cast(factory->create(this, "KParts::ReadOnlyPart")); + KParts::Part* part = factory ? static_cast(factory->create(this, "KParts::ReadOnlyPart")) : 0; if (part != 0) { m_layout->addWidget(part->widget()); - - // TODO: in KDE3 the following code worked: - // m_terminal = static_cast(part->qt_cast("TerminalInterface")); - // which does not work anymore in Qt4. As temporary workaround is - // included directly: - m_terminal = static_cast(reinterpret_cast(part)); + m_terminal = qobject_cast(part); } } if (m_terminal != 0) {