X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/e54e6a9cdbc0e37e7c81abcea4e69838cddabaa3..13b2fc55704fbc734cd4f9cbae56cfc2ef3ec0ce:/src/dolphinview.cpp diff --git a/src/dolphinview.cpp b/src/dolphinview.cpp index ae6ea5ec7..bfca285cf 100644 --- a/src/dolphinview.cpp +++ b/src/dolphinview.cpp @@ -95,14 +95,10 @@ DolphinView::DolphinView(QWidget* parent, m_controller = new DolphinController(this); m_controller->setUrl(url); - // Receiver of the DolphinView signal 'urlChanged()' don't need - // to care whether the internal controller changed the URL already or whether - // the controller just requested an URL change and will be updated later. - // In both cases the URL has been changed: connect(m_controller, SIGNAL(urlChanged(const KUrl&)), this, SIGNAL(urlChanged(const KUrl&))); connect(m_controller, SIGNAL(requestUrlChange(const KUrl&)), - this, SIGNAL(urlChanged(const KUrl&))); + this, SLOT(slotRequestUrlChange(const KUrl&))); connect(m_controller, SIGNAL(requestContextMenu(const QPoint&)), this, SLOT(openContextMenu(const QPoint&))); @@ -125,6 +121,8 @@ DolphinView::DolphinView(QWidget* parent, connect(m_controller, SIGNAL(viewportEntered()), this, SLOT(clearHoverInformation())); + connect(m_dirLister, SIGNAL(redirection(KUrl, KUrl)), + this, SLOT(slotRedirection(KUrl, KUrl))); connect(m_dirLister, SIGNAL(completed()), this, SLOT(restoreCurrentItem())); @@ -153,7 +151,6 @@ void DolphinView::setActive(bool active) } m_active = active; - m_selectionModel->clearSelection(); QColor color = KColorScheme(QPalette::Active, KColorScheme::View).background().color(); if (active) { @@ -174,6 +171,7 @@ void DolphinView::setActive(bool active) update(); if (active) { + itemView()->setFocus(); emit activated(); } @@ -1203,4 +1201,17 @@ void DolphinView::pasteToUrl(const KUrl& url) } } +void DolphinView::slotRequestUrlChange(const KUrl& url) +{ + emit requestUrlChange(url); + m_controller->setUrl(url); +} + +void DolphinView::slotRedirection(const KUrl& oldUrl, const KUrl& newUrl) +{ + if (oldUrl == m_controller->url()) { + m_controller->setUrl(newUrl); + } +} + #include "dolphinview.moc"