X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/1f5f7f0092871fec525773a6cce158413e18a265..ed0df8dc1fc9576e36c920882e7f4b00a2811113:/src/dolphinviewcontainer.cpp diff --git a/src/dolphinviewcontainer.cpp b/src/dolphinviewcontainer.cpp index 9da51a60c..9f61360d7 100644 --- a/src/dolphinviewcontainer.cpp +++ b/src/dolphinviewcontainer.cpp @@ -39,9 +39,11 @@ #include #include #include -#include +#include #include +#include #include +#include #include #include "dolphinmodel.h" @@ -87,11 +89,15 @@ DolphinViewContainer::DolphinViewContainer(DolphinMainWindow* mainWindow, this, SLOT(dropUrls(const KUrl&, QDropEvent*))); connect(m_urlNavigator, SIGNAL(activated()), this, SLOT(activate())); + connect(m_urlNavigator->editor(), SIGNAL(completionModeChanged(KGlobalSettings::Completion)), + this, SLOT(saveUrlCompletionMode(KGlobalSettings::Completion))); const GeneralSettings* settings = DolphinSettings::instance().generalSettings(); m_urlNavigator->setUrlEditable(settings->editableUrl()); m_urlNavigator->setShowFullPath(settings->showFullPath()); m_urlNavigator->setHomeUrl(settings->homeUrl()); + KUrlComboBox* editor = m_urlNavigator->editor(); + editor->setCompletionMode(KGlobalSettings::Completion(settings->urlCompletionMode())); m_dirLister = new DolphinDirLister(); m_dirLister->setAutoUpdate(true); @@ -276,7 +282,7 @@ void DolphinViewContainer::slotDirListerCompleted() // it is unclear whether writing is supported m_isFolderWritable = true; } else { - KonqFileItemCapabilities capabilities(KFileItemList() << item); + KFileItemListProperties capabilities(KFileItemList() << item); m_isFolderWritable = capabilities.supportsWriting(); } @@ -396,12 +402,18 @@ void DolphinViewContainer::restoreView(const KUrl& url) const QString browser = config.readEntry("BrowserApplication"); if (!browser.isEmpty()) { app = browser; + if (app.startsWith('!')) { + // a literal command has been configured, remove the '!' prefix + app = app.mid(1); + } } } else { showErrorMessage(i18nc("@info:status", "Protocol not supported by Dolphin, Konqueror has been launched")); } - const QString command = app + ' ' + url.pathOrUrl(); + + QString secureUrl = KShell::quoteArg(url.pathOrUrl()); + const QString command = app + ' ' + secureUrl; KRun::runCommand(command, app, app, this); } else { showErrorMessage(i18nc("@info:status", "Invalid protocol")); @@ -433,6 +445,13 @@ void DolphinViewContainer::requestFocus() m_view->setFocus(); } +void DolphinViewContainer::saveUrlCompletionMode(KGlobalSettings::Completion completion) +{ + DolphinSettings& settings = DolphinSettings::instance(); + settings.generalSettings()->setUrlCompletionMode(completion); + settings.save(); +} + void DolphinViewContainer::slotItemTriggered(const KFileItem& item) { KUrl url = item.targetUrl();