#include <kio/netaccess.h>
#include <kio/previewjob.h>
#include <kmenu.h>
-#include <kmimetyperesolver.h>
#include <knewmenu.h>
#include <konqmimedata.h>
#include <kfileitemlistproperties.h>
// initialize status bar
m_statusBar = new DolphinStatusBar(this, m_view);
+ connect(m_statusBar, SIGNAL(stopPressed()), this, SLOT(stopLoading()));
+
m_statusBarTimer = new QTimer(this);
m_statusBarTimer->setSingleShot(true);
m_statusBarTimer->setInterval(300);
void DolphinViewContainer::refresh()
{
+ GeneralSettings* settings = DolphinSettings::instance().generalSettings();
+ if (settings->modifiedStartupSettings()) {
+ // The startup settings should only get applied if they have been
+ // modified by the user. Otherwise keep the (possibly) different current
+ // settings of the URL navigator and the filterbar.
+ m_urlNavigator->setUrlEditable(settings->editableUrl());
+ m_urlNavigator->setShowFullPath(settings->showFullPath());
+ setFilterBarVisible(settings->filterBar());
+ }
+
m_view->refresh();
m_statusBar->refresh();
}
m_urlNavigator->setVisible(!enabled);
if (enabled) {
- // Remember the current URL, so that it can be restored
- // when switching back to the URL navigator
- const KUrl url = m_urlNavigator->locationUrl();
- m_searchBox->setSearchPath(url);
+ // Remember the most recent non-search URL as search path
+ // of the search-box, so that it can be restored
+ // when switching back to the URL navigator.
+ KUrl url = m_urlNavigator->locationUrl();
+
+ int index = m_urlNavigator->historyIndex();
+ const int historySize = m_urlNavigator->historySize();
+ while (isSearchUrl(url) && (index < historySize)) {
+ ++index;
+ url = m_urlNavigator->locationUrl(index);
+ }
+
+ if (!isSearchUrl(url)) {
+ m_searchBox->setSearchPath(url);
+ }
} else {
// Restore the URL for the URL navigator. If Dolphin has been
// started with a search-URL, the home URL is used as fallback.
{
if (newUrl != m_urlNavigator->locationUrl()) {
m_urlNavigator->setLocationUrl(newUrl);
+
// Temporary disable the 'File'->'Create New...' menu until
// the write permissions can be checked in a fast way at
// DolphinViewContainer::slotDirListerCompleted().
if (isActive()) {
emit writeStateChanged(false);
}
+
+ // Trigger an undetermined progress indication. The progress
+ // information in percent will be triggered by the percent() signal
+ // of the directory lister later.
+ updateProgress(-1);
}
}
-void DolphinViewContainer::showFilterBar(bool show)
+void DolphinViewContainer::setFilterBarVisible(bool visible)
{
Q_ASSERT(m_filterBar != 0);
- if (show) {
+ if (visible) {
m_filterBar->show();
+ m_filterBar->setFocus();
} else {
closeFilterBar();
}
void DolphinViewContainer::slotUrlNavigatorLocationChanged(const KUrl& url)
{
if (KProtocolManager::supportsListing(url)) {
- // Assure that the search box is shown instead of the URL navigator in case
- // that the URL \p url is a search URL (e. g. nepomuksearch:// or filenamesearch://).
- if (isSearchUrl(url)) {
- if (!m_searchBox->isVisible()) {
- m_searchBox->setVisible(true);
- m_urlNavigator->setVisible(false);
- emit searchModeChanged(true);
- }
- } else if (!m_urlNavigator->isVisible()) {
- m_urlNavigator->setVisible(true);
- m_searchBox->setVisible(false);
- emit searchModeChanged(false);
- }
+ setSearchModeEnabled(isSearchUrl(url));
m_view->setUrl(url);
if (isActive() && !isSearchUrl(url)) {
// URL history.
m_urlNavigator->saveLocationState(QByteArray());
m_urlNavigator->setLocationUrl(newUrl);
+ setSearchModeEnabled(isSearchUrl(newUrl));
m_urlNavigator->blockSignals(block);
}
setSearchModeEnabled(false);
}
+void DolphinViewContainer::stopLoading()
+{
+ m_view->stopLoading();
+}
+
bool DolphinViewContainer::isSearchUrl(const KUrl& url) const
{
- return url.protocol().contains("search");
+ const QString protocol = url.protocol();
+ return protocol.contains("search") || (protocol == QLatin1String("nepomuk"));
}
void DolphinViewContainer::slotItemTriggered(const KFileItem& item)