X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/2b6cceb0f6a46c47ad55f36379e38cb143f28d36..d324e790d62c8a341abd06e845f8fe8d64aa8ef3:/src/dolphinmainwindow.cpp diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index bec451a09..ebc8dc268 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -31,6 +31,7 @@ #include "dolphinapplication.h" #include "dolphinnewmenu.h" #include "search/dolphinsearchbox.h" +#include "search/dolphinsearchoptionsconfigurator.h" #include "settings/dolphinsettings.h" #include "settings/dolphinsettingsdialog.h" #include "dolphinviewcontainer.h" @@ -1010,18 +1011,8 @@ void DolphinMainWindow::slotTestCanDecode(const QDragMoveEvent* event, bool& can void DolphinMainWindow::searchItems() { #ifdef HAVE_NEPOMUK - const QString searchOptions = m_searchOptionsConfigurator->options(); - - QString searchString = m_searchBox->text(); - if (!searchString.isEmpty() && !searchOptions.isEmpty()) { - searchString += ' ' + searchOptions; - } else if (!searchOptions.isEmpty()) { - searchString += searchOptions; - } - - if (!searchString.isEmpty()) { - m_activeViewContainer->setUrl(KUrl("nepomuksearch:/" + searchString)); - } + const KUrl nepomukUrl = m_searchOptionsConfigurator->nepomukUrl(); + m_activeViewContainer->setUrl(nepomukUrl); #endif } @@ -1081,7 +1072,7 @@ void DolphinMainWindow::init() #ifdef HAVE_NEPOMUK m_searchOptionsConfigurator = new DolphinSearchOptionsConfigurator(this); m_searchOptionsConfigurator->hide(); - connect(m_searchOptionsConfigurator, SIGNAL(searchOptionsChanged(QString)), + connect(m_searchOptionsConfigurator, SIGNAL(searchOptionsChanged()), this, SLOT(searchItems())); #endif @@ -1127,6 +1118,10 @@ void DolphinMainWindow::init() m_searchBox->show(); connect(m_searchBox, SIGNAL(requestSearchOptions()), this, SLOT(showSearchOptions())); +#ifdef HAVE_NEPOMUK + connect(m_searchBox, SIGNAL(searchTextChanged(QString)), + m_searchOptionsConfigurator, SLOT(setCustomSearchQuery(QString))); +#endif stateChanged("new_file"); @@ -1375,7 +1370,7 @@ void DolphinMainWindow::setupDockWidgets() infoDock->setObjectName("infoDock"); infoDock->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea); Panel* infoPanel = new InformationPanel(infoDock); - connect(infoPanel, SIGNAL(urlActivated(KUrl)), activeViewContainer(), SLOT(setUrl(KUrl))); + connect(infoPanel, SIGNAL(urlActivated(KUrl)), this, SLOT(handleUrl(KUrl))); infoDock->setWidget(infoPanel); QAction* infoAction = infoDock->toggleViewAction(); @@ -1665,6 +1660,16 @@ void DolphinMainWindow::setUrlAsCaption(const KUrl& url) setCaption(caption); } +void DolphinMainWindow::handleUrl(const KUrl& url) +{ + if (KProtocolManager::supportsListing(url)) { + activeViewContainer()->setUrl(url); + } + else { + new KRun(url, this); + } +} + QString DolphinMainWindow::squeezedText(const QString& text) const { const QFontMetrics fm = fontMetrics();