}
if (KProtocolManager::supportsListing(url)) {
- setSearchModeEnabled(isSearchUrl(url));
+ const bool searchBoxInitialized = isSearchModeEnabled() && m_searchBox->text().isEmpty();
+ setSearchModeEnabled(isSearchUrl(url) || searchBoxInitialized);
+
m_view->setUrl(url);
tryRestoreViewState();
- if (m_autoGrabFocus && isActive() && !isSearchUrl(url)) {
+ if (m_autoGrabFocus && isActive() && !isSearchModeEnabled()) {
// When an URL has been entered, the view should get the focus.
// The focus must be requested asynchronously, as changing the URL might create
// a new view widget.
QDesktopServices::openUrl(url);
redirect(QUrl(), m_urlNavigator->locationUrl(1));
} else {
- showMessage(i18nc("@info:status", "Invalid protocol"), Error);
+ if (!url.scheme().isEmpty()) {
+ showMessage(i18nc("@info:status", "Invalid protocol '%1'", url.scheme()), Error);
+ } else {
+ showMessage(i18nc("@info:status", "Invalid protocol"), Error);
+ }
m_urlNavigator->goBack();
}
}