]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/dolphinmainwindow.cpp
search finetuning:
[dolphin.git] / src / dolphinmainwindow.cpp
index e55be1d3063d1a69aafc53a310abc7576a3c25ac..10275ce8c6457b43446db2df388b4afd40c2502b 100644 (file)
 #include "dolphinremoteencoding.h"
 
 #include <config-nepomuk.h>
+#ifdef HAVE_NEPOMUK
+    #include "search/dolphinsearchoptionsconfigurator.h"
+#endif
 
 #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"
@@ -756,7 +758,7 @@ void DolphinMainWindow::goUp()
 void DolphinMainWindow::goBack(Qt::MouseButtons buttons)
 {
     // The default case (left button pressed) is handled in goBack().
-    if(buttons == Qt::MidButton) {
+    if (buttons == Qt::MidButton) {
         KUrlNavigator* urlNavigator = activeViewContainer()->urlNavigator();
         openNewTab(urlNavigator->historyUrl(urlNavigator->historyIndex() + 1));
     }
@@ -765,7 +767,7 @@ void DolphinMainWindow::goBack(Qt::MouseButtons buttons)
 void DolphinMainWindow::goForward(Qt::MouseButtons buttons)
 {
     // The default case (left button pressed) is handled in goForward().
-    if(buttons == Qt::MidButton) {
+    if (buttons == Qt::MidButton) {
         KUrlNavigator* urlNavigator = activeViewContainer()->urlNavigator();
         openNewTab(urlNavigator->historyUrl(urlNavigator->historyIndex() - 1));
     }
@@ -774,7 +776,7 @@ void DolphinMainWindow::goForward(Qt::MouseButtons buttons)
 void DolphinMainWindow::goUp(Qt::MouseButtons buttons)
 {
     // The default case (left button pressed) is handled in goUp().
-    if(buttons == Qt::MidButton) {
+    if (buttons == Qt::MidButton) {
         openNewTab(activeViewContainer()->url().upUrl());
     }
 }
@@ -1001,9 +1003,20 @@ void DolphinMainWindow::slotTestCanDecode(const QDragMoveEvent* event, bool& can
     canDecode = KUrl::List::canDecode(event->mimeData());
 }
 
-void DolphinMainWindow::searchItems(const KUrl& url)
+void DolphinMainWindow::searchItems()
 {
-    m_activeViewContainer->setUrl(url);
+    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));
+    }
 }
 
 void DolphinMainWindow::slotTabMoved(int from, int to)
@@ -1012,9 +1025,11 @@ void DolphinMainWindow::slotTabMoved(int from, int to)
     m_tabIndex = m_tabBar->currentIndex();
 }
 
-void DolphinMainWindow::slotSearchBoxTextChanged(const QString& text)
+void DolphinMainWindow::showSearchOptions()
 {
-    m_searchOptionsConfigurator->setVisible(!text.isEmpty());
+#ifdef HAVE_NEPOMUK
+    m_searchOptionsConfigurator->show();
+#endif
 }
 
 void DolphinMainWindow::init()
@@ -1057,8 +1072,12 @@ void DolphinMainWindow::init()
     connect(this, SIGNAL(urlChanged(const KUrl&)),
             m_remoteEncoding, SLOT(slotAboutToOpenUrl()));
 
+#ifdef HAVE_NEPOMUK
     m_searchOptionsConfigurator = new DolphinSearchOptionsConfigurator(this);
     m_searchOptionsConfigurator->hide();
+    connect(m_searchOptionsConfigurator, SIGNAL(searchOptionsChanged(QString)),
+            this, SLOT(searchItems()));
+#endif
 
     m_tabBar = new KTabBar(this);
     m_tabBar->setMovable(true);
@@ -1086,7 +1105,9 @@ void DolphinMainWindow::init()
     m_centralWidgetLayout = new QVBoxLayout(centralWidget);
     m_centralWidgetLayout->setSpacing(0);
     m_centralWidgetLayout->setMargin(0);
+#ifdef HAVE_NEPOMUK
     m_centralWidgetLayout->addWidget(m_searchOptionsConfigurator);
+#endif
     m_centralWidgetLayout->addWidget(m_tabBar);
     m_centralWidgetLayout->addWidget(m_viewTab[m_tabIndex].splitter, 1);
 
@@ -1098,8 +1119,8 @@ void DolphinMainWindow::init()
 
     m_searchBox->setParent(toolBar("searchToolBar"));
     m_searchBox->show();
-    connect(m_searchBox, SIGNAL(textChanged(const QString&)),
-            this, SLOT(slotSearchBoxTextChanged(const QString&)));
+    connect(m_searchBox, SIGNAL(requestSearchOptions()),
+            this, SLOT(showSearchOptions()));
 
     stateChanged("new_file");
 
@@ -1332,7 +1353,7 @@ void DolphinMainWindow::setupActions()
 
     // 'Search' toolbar
     m_searchBox = new DolphinSearchBox(this);
-    connect(m_searchBox, SIGNAL(search(KUrl)), this, SLOT(searchItems(KUrl)));
+    connect(m_searchBox, SIGNAL(search(QString)), this, SLOT(searchItems()));
 
     KAction* search = new KAction(this);
     actionCollection()->addAction("search_bar", search);