┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLaurent Montel <[email protected]>2010-01-25 13:14:39 +0000
committerLaurent Montel <[email protected]>2010-01-25 13:14:39 +0000
commit8dd3b9d3be28ab5b3faa851919cc794e3a338154 (patch)
tree8e206ab39e1720394fcdb52479c3cdc0964362a9 /src
parent11e1ee53bbd5fcce304c491a3bb0b1641cdef4f2 (diff)
Implement todo (create a dialog box when ok is enable/disable when text is empty or not)
(and fix restore size, in old version we didn't save size before to delete element) svn path=/trunk/KDE/kdebase/apps/; revision=1080045
Diffstat (limited to 'src')
-rw-r--r--src/CMakeLists.txt1
-rw-r--r--src/search/dolphinsearchoptionsconfigurator.cpp29
-rw-r--r--src/search/searchoptiondialogbox.cpp69
-rw-r--r--src/search/searchoptiondialogbox.h40
4 files changed, 114 insertions, 25 deletions
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 7585ad8e0..1fc017a45 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -137,6 +137,7 @@ set(dolphin_SRCS
panels/folders/folderspanel.cpp
panels/folders/paneltreeview.cpp
search/dolphinsearchbox.cpp
+ search/searchoptiondialogbox.cpp
settings/behaviorsettingspage.cpp
settings/columnviewsettingspage.cpp
settings/contextmenusettingspage.cpp
diff --git a/src/search/dolphinsearchoptionsconfigurator.cpp b/src/search/dolphinsearchoptionsconfigurator.cpp
index b24c36b8e..93b7a589c 100644
--- a/src/search/dolphinsearchoptionsconfigurator.cpp
+++ b/src/search/dolphinsearchoptionsconfigurator.cpp
@@ -41,6 +41,7 @@
#include <kseparator.h>
#include "searchcriterionselector.h"
+#include "searchoptiondialogbox.h"
#include <QButtonGroup>
#include <QHBoxLayout>
@@ -275,33 +276,11 @@ void DolphinSearchOptionsConfigurator::removeCriterion()
void DolphinSearchOptionsConfigurator::saveQuery()
{
- // TODO: provide a custom dialog class for KDE 4.5, which
- // enables/disables the OK button depend on whether a text
- // has been entered.
- QPointer<KDialog> dialog = new KDialog(0, Qt::Dialog);
+ QPointer<SearchOptionDialogBox> dialog = new SearchOptionDialogBox( 0 );
- 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);
- if ((dialog->exec() == QDialog::Accepted) && !lineEdit->text().isEmpty()) {
+ if (dialog->exec() == QDialog::Accepted) {
KFilePlacesModel* model = DolphinSettings::instance().placesModel();
- model->addPlace(lineEdit->text(), nepomukSearchUrl());
+ model->addPlace(dialog->text(), nepomukSearchUrl());
}
delete dialog;
}
diff --git a/src/search/searchoptiondialogbox.cpp b/src/search/searchoptiondialogbox.cpp
new file mode 100644
index 000000000..487f24bdc
--- /dev/null
+++ b/src/search/searchoptiondialogbox.cpp
@@ -0,0 +1,69 @@
+/*****************************************************************************
+ * Copyright (C) 2010 by Laurent Montel <[email protected]> *
+ * *
+ * This library is free software; you can redistribute it and/or *
+ * modify it under the terms of the GNU Library General Public *
+ * License version 2 as published by the Free Software Foundation. *
+ * *
+ * This library is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
+ * Library General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Library General Public License *
+ * along with this library; see the file COPYING.LIB. If not, write to *
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, *
+ * Boston, MA 02110-1301, USA. *
+ *****************************************************************************/
+#include "searchoptiondialogbox.h"
+
+#include <KConfigGroup>
+#include <KLineEdit>
+#include <KLocale>
+#include <QLabel>
+#include <QHBoxLayout>
+
+SearchOptionDialogBox::SearchOptionDialogBox( QWidget *parent )
+ :KDialog( parent, Qt::Dialog )
+{
+ QWidget* container = new QWidget(this);
+
+ QLabel* label = new QLabel(i18nc("@label", "Name:"), container);
+ KLineEdit* lineEdit = new KLineEdit(container);
+ lineEdit->setMinimumWidth(250);
+
+ connect( lineEdit, SIGNAL( textChanged ( const QString &) ), SLOT( slotTextChanged( const QString& ) ) );
+ QHBoxLayout* layout = new QHBoxLayout(container);
+ layout->addWidget(label, Qt::AlignRight);
+ layout->addWidget(lineEdit);
+
+ setMainWidget(container);
+ setCaption(i18nc("@title:window", "Save Search Options"));
+ setButtons(KDialog::Ok | KDialog::Cancel);
+ setDefaultButton(KDialog::Ok);
+ setButtonText(KDialog::Ok, i18nc("@action:button", "Save"));
+
+ KConfigGroup dialogConfig(KSharedConfig::openConfig("dolphinrc"),
+ "SaveSearchOptionsDialog");
+ restoreDialogSize(dialogConfig);
+ enableButtonOk( false );
+}
+
+SearchOptionDialogBox::~SearchOptionDialogBox()
+{
+ KConfigGroup dialogConfig(KSharedConfig::openConfig("dolphinrc"),
+ "SaveSearchOptionsDialog");
+ saveDialogSize(dialogConfig);
+}
+
+QString SearchOptionDialogBox::text() const
+{
+ return mLineEdit->text();
+}
+
+void SearchOptionDialogBox::slotTextChanged( const QString & text )
+{
+ enableButtonOk( !text.isEmpty() );
+}
+
+#include "searchoptiondialogbox.moc"
diff --git a/src/search/searchoptiondialogbox.h b/src/search/searchoptiondialogbox.h
new file mode 100644
index 000000000..dd1c18659
--- /dev/null
+++ b/src/search/searchoptiondialogbox.h
@@ -0,0 +1,40 @@
+/*****************************************************************************
+ * Copyright (C) 2010 by Laurent Montel <[email protected]> *
+ * *
+ * This library is free software; you can redistribute it and/or *
+ * modify it under the terms of the GNU Library General Public *
+ * License version 2 as published by the Free Software Foundation. *
+ * *
+ * This library is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
+ * Library General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Library General Public License *
+ * along with this library; see the file COPYING.LIB. If not, write to *
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, *
+ * Boston, MA 02110-1301, USA. *
+ *****************************************************************************/
+
+#ifndef SEARCH_OPTIONDIALOGBOX
+#define SEARCH_OPTIONDIALOGBOX
+
+#include <KDialog>
+
+class KLineEdit;
+
+class SearchOptionDialogBox : public KDialog
+{
+ Q_OBJECT
+public:
+ SearchOptionDialogBox( QWidget *widget);
+ ~SearchOptionDialogBox();
+
+ QString text() const;
+
+protected slots:
+ void slotTextChanged( const QString & );
+private:
+ KLineEdit *mLineEdit;
+};
+#endif