]> cloud.milkyroute.net Git - dolphin.git/commitdiff
* Show the search options as soon as the search bar gains focus.
authorPeter Penz <peter.penz19@gmail.com>
Tue, 10 Nov 2009 21:44:24 +0000 (21:44 +0000)
committerPeter Penz <peter.penz19@gmail.com>
Tue, 10 Nov 2009 21:44:24 +0000 (21:44 +0000)
* Allow the user to manually close the options.
* Added tooltip descriptions.

svn path=/trunk/KDE/kdebase/apps/; revision=1047281

src/dolphinmainwindow.cpp
src/dolphinmainwindow.h
src/search/dolphinsearchbox.cpp
src/search/dolphinsearchbox.h
src/search/dolphinsearchoptionsconfigurator.cpp
src/search/dolphinsearchoptionsconfigurator.h

index 5c89b77e0d474ab56ba367f6980e9a0b7145121f..474c65cd70025c7f5f1661c39c6b3c2752f06b5b 100644 (file)
@@ -1012,9 +1012,9 @@ 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());
+    m_searchOptionsConfigurator->show();
 }
 
 void DolphinMainWindow::init()
@@ -1098,8 +1098,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");
 
index d72c6b93828168d214cfcc1ff73c991a9ff78cfa..f87e70dc4585dc71b83cc237bc0d2a7d1623ee9e 100644 (file)
@@ -401,11 +401,10 @@ private slots:
     void slotTabMoved(int from, int to);
 
     /**
-     * Is connected to the searchbox signal 'textChanged' and
-     * takes care to make the search options configurator visible
-     * if a search text has been entered.
+     * Is connected to the searchbox signal 'requestSearchOptions' and
+     * takes care to show the search options.
      */
-    void slotSearchBoxTextChanged(const QString& text);
+    void showSearchOptions();
 
 private:
     DolphinMainWindow(int id);
index d1a97d9a2a95472331c28e97bc6ef3108463ad70..e2fd81a6f7aec004591062f3289ce8e2c368ce27 100644 (file)
@@ -284,9 +284,10 @@ bool DolphinSearchBox::eventFilter(QObject* watched, QEvent* event)
         // Postpone the creation of the search completer until
         // the search box is used. This decreases the startup time
         // of Dolphin.
-        Q_ASSERT(m_completer == 0);
-        m_completer = new DolphinSearchCompleter(m_searchInput);
-        m_searchInput->removeEventFilter(this);
+        if (m_completer == 0) {
+            m_completer = new DolphinSearchCompleter(m_searchInput);
+        }
+        emit requestSearchOptions();
     }
 
     return QWidget::eventFilter(watched, event);
index e3f07a265cc178f89f03b1fc839ee1a56fb7daa2..81c412aa05076201ec8d042acede74ceb119d794 100644 (file)
@@ -82,10 +82,7 @@ signals:
      */
     void search(const KUrl& url);
 
-    /**
-     * Is emitted if the text of the searchbox has been changed.
-     */
-    void textChanged(const QString& text);
+    void requestSearchOptions();
 
 private slots:
     void emitSearchSignal();
index dc1ad681388a6d5ceebce881b2f49fe6d95a3e8f..cebf71cdb7250de143771dd8e0e35ca84c621e10 100644 (file)
@@ -22,7 +22,9 @@
 #include "searchcriterionselector.h"
 
 #include <kcombobox.h>
+#include <kdialog.h>
 #include <kicon.h>
+#include <klineedit.h>
 #include <klocale.h>
 #include <kseparator.h>
 
@@ -61,11 +63,22 @@ DolphinSearchOptionsConfigurator::DolphinSearchOptionsConfigurator(QWidget* pare
 
     // add button "Save"
     QPushButton* saveButton = new QPushButton(this);
+    saveButton->setIcon(KIcon("document-save"));
     saveButton->setText(i18nc("@action:button", "Save"));
+    saveButton->setToolTip(i18nc("@info", "Save search options"));
+    connect(saveButton, SIGNAL(clicked()), this, SLOT(saveQuery()));
+
+    // add button "Close"
+    QPushButton* closeButton = new QPushButton(this);
+    closeButton->setIcon(KIcon("dialog-close"));
+    closeButton->setText(i18nc("@action:button", "Close"));
+    closeButton->setToolTip(i18nc("@info", "Close search options"));
+    connect(closeButton, SIGNAL(clicked()), this, SLOT(hide()));
 
     // add "Add selector" button
     m_addSelectorButton = new QPushButton(this);
     m_addSelectorButton->setIcon(KIcon("list-add"));
+    m_addSelectorButton->setToolTip(i18nc("@info", "Add search option"));
     m_addSelectorButton->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
     connect(m_addSelectorButton, SIGNAL(clicked()), this, SLOT(addSelector()));
 
@@ -76,6 +89,7 @@ DolphinSearchOptionsConfigurator::DolphinSearchOptionsConfigurator(QWidget* pare
     hBoxLayout->addWidget(m_searchWhatBox);
     hBoxLayout->addWidget(filler, 1);
     hBoxLayout->addWidget(saveButton);
+    hBoxLayout->addWidget(closeButton);
     hBoxLayout->addWidget(m_addSelectorButton);
 
     m_vBoxLayout->addWidget(new KSeparator(this));
@@ -114,4 +128,30 @@ void DolphinSearchOptionsConfigurator::updateSelectorButton()
     m_addSelectorButton->setEnabled(selectors < 10);
 }
 
+void DolphinSearchOptionsConfigurator::saveQuery()
+{
+    KDialog dialog(0, Qt::Dialog);
+
+    QWidget* container = new QWidget(&dialog);
+
+    QLabel* label = new QLabel(i18nc("@label", "Name:"), container);
+    KLineEdit* lineEdit = new KLineEdit(container);
+    lineEdit->setMinimumWidth(250);
+
+    QHBoxLayout* layout = new QHBoxLayout(container);
+    layout->addWidget(label, Qt::AlignRight);
+    layout->addWidget(lineEdit);
+
+    dialog.setMainWidget(container);
+    dialog.setCaption(i18nc("@title:window", "Save Search Options"));
+    dialog.setButtons(KDialog::Ok | KDialog::Cancel);
+    dialog.setDefaultButton(KDialog::Ok);
+    dialog.setButtonText(KDialog::Ok, i18nc("@action:button", "Save"));
+
+    KConfigGroup dialogConfig(KSharedConfig::openConfig("dolphinrc"),
+                              "SaveSearchOptionsDialog");
+    dialog.restoreDialogSize(dialogConfig);
+    dialog.exec(); // TODO...
+}
+
 #include "dolphinsearchoptionsconfigurator.moc"
index 1fcb8cb19b055477b58ee9a6b267cc561bcf310c..b66ab340d1a91bcbbf56caa9382033c8340a26d0 100644 (file)
@@ -52,6 +52,11 @@ private slots:
      */
     void updateSelectorButton();
 
+    /**
+     * Saves the current query by adding it as Places entry.
+     */
+    void saveQuery();
+
 private:
     KComboBox* m_searchFromBox;
     KComboBox* m_searchWhatBox;