]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Implement todo (create a dialog box when ok is enable/disable when text is empty...
authorLaurent Montel <montel@kde.org>
Mon, 25 Jan 2010 13:14:39 +0000 (13:14 +0000)
committerLaurent Montel <montel@kde.org>
Mon, 25 Jan 2010 13:14:39 +0000 (13:14 +0000)
(and fix restore size, in old version we didn't save size before to delete element)

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

src/CMakeLists.txt
src/search/dolphinsearchoptionsconfigurator.cpp
src/search/searchoptiondialogbox.cpp [new file with mode: 0644]
src/search/searchoptiondialogbox.h [new file with mode: 0644]

index 7585ad8e0ec2fbed65ecf8491f52dbb3bf6ce576..1fc017a45db5c04d5d6774d3c94583798d84f469 100644 (file)
@@ -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
index b24c36b8eb7553b0d735321c09e41d4d96863e34..93b7a589c7ddc3b1d27d42836b303ef7a3b2f9a2 100644 (file)
@@ -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);
-
-    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()) {
+    QPointer<SearchOptionDialogBox> dialog = new SearchOptionDialogBox( 0 );
+
+    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 (file)
index 0000000..487f24b
--- /dev/null
@@ -0,0 +1,69 @@
+/*****************************************************************************
+ * Copyright (C) 2010 by Laurent Montel <montel@kde.org>                     *
+ *                                                                           *
+ * 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 (file)
index 0000000..dd1c186
--- /dev/null
@@ -0,0 +1,40 @@
+/*****************************************************************************
+ * Copyright (C) 2010 by Laurent Montel <montel@kde.org>                     *
+ *                                                                           *
+ * 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