Forward port of SVN commit 1147596: Skip redirection URLs when going back or forward in history (otherwise going

back won't be possible for the user, as a redirection will occur again).

CCBUG: 212293

svn path=/trunk/KDE/kdebase/apps/; revision=1147597
This commit is contained in:
Peter Penz 2010-07-08 19:46:56 +00:00
parent c5157d36ba
commit 42ba5dfd4b
2 changed files with 15 additions and 1 deletions

View file

@ -830,7 +830,15 @@ void DolphinMainWindow::replaceLocation()
void DolphinMainWindow::goBack()
{
clearStatusBar();
m_activeViewContainer->urlNavigator()->goBack();
KUrlNavigator* urlNavigator = m_activeViewContainer->urlNavigator();
urlNavigator->goBack();
if (urlNavigator->locationState().isEmpty()) {
// An empty location state indicates a redirection URL,
// which must be skipped too
urlNavigator->goBack();
}
}
void DolphinMainWindow::goForward()

View file

@ -433,7 +433,13 @@ void DolphinViewContainer::redirect(const KUrl& oldUrl, const KUrl& newUrl)
Q_UNUSED(oldUrl);
const bool block = m_urlNavigator->signalsBlocked();
m_urlNavigator->blockSignals(true);
// Assure that the location state is reset for redirection URLs. This
// allows to skip redirection URLs when going back or forward in the
// URL history.
m_urlNavigator->saveLocationState(QByteArray());
m_urlNavigator->setLocationUrl(newUrl);
m_urlNavigator->blockSignals(block);
}