]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Added some default search criterions. A lot of fine tuning of the UI has to be made...
authorPeter Penz <peter.penz19@gmail.com>
Tue, 10 Nov 2009 22:18:45 +0000 (22:18 +0000)
committerPeter Penz <peter.penz19@gmail.com>
Tue, 10 Nov 2009 22:18:45 +0000 (22:18 +0000)
svn path=/trunk/KDE/kdebase/apps/; revision=1047298

src/search/dolphinsearchoptionsconfigurator.cpp
src/search/searchcriterionselector.cpp
src/search/searchcriterionselector.h

index cebf71cdb7250de143771dd8e0e35ca84c621e10..6f4d8346090328c76073df9f31349355a4cd1d7c 100644 (file)
@@ -92,8 +92,17 @@ DolphinSearchOptionsConfigurator::DolphinSearchOptionsConfigurator(QWidget* pare
     hBoxLayout->addWidget(closeButton);
     hBoxLayout->addWidget(m_addSelectorButton);
 
     hBoxLayout->addWidget(closeButton);
     hBoxLayout->addWidget(m_addSelectorButton);
 
+    // add default search criterions
+    SearchCriterionSelector* dateCriterion = new SearchCriterionSelector(SearchCriterionSelector::Date, this);
+    connect(dateCriterion, SIGNAL(removeCriterion()), this, SLOT(removeCriterion()));
+
+    SearchCriterionSelector* fileSizeCriterion = new SearchCriterionSelector(SearchCriterionSelector::FileSize, this);
+    connect(fileSizeCriterion, SIGNAL(removeCriterion()), this, SLOT(removeCriterion()));
+
     m_vBoxLayout->addWidget(new KSeparator(this));
     m_vBoxLayout->addLayout(hBoxLayout);
     m_vBoxLayout->addWidget(new KSeparator(this));
     m_vBoxLayout->addLayout(hBoxLayout);
+    m_vBoxLayout->addWidget(dateCriterion);
+    m_vBoxLayout->addWidget(fileSizeCriterion);
     m_vBoxLayout->addWidget(new KSeparator(this));
 }
 
     m_vBoxLayout->addWidget(new KSeparator(this));
 }
 
@@ -103,7 +112,7 @@ DolphinSearchOptionsConfigurator::~DolphinSearchOptionsConfigurator()
 
 void DolphinSearchOptionsConfigurator::addSelector()
 {
 
 void DolphinSearchOptionsConfigurator::addSelector()
 {
-    SearchCriterionSelector* selector = new SearchCriterionSelector(this);
+    SearchCriterionSelector* selector = new SearchCriterionSelector(SearchCriterionSelector::Undefined, this);
     connect(selector, SIGNAL(removeCriterion()), this, SLOT(removeCriterion()));
 
     // insert the new selector before the KSeparator at the bottom
     connect(selector, SIGNAL(removeCriterion()), this, SLOT(removeCriterion()));
 
     // insert the new selector before the KSeparator at the bottom
index 831e743e7d13b1396e7a648adc38c46ffc619855..34b8d0c51b9c587535d0c02b222f822a5b4b0fab 100644 (file)
@@ -30,7 +30,7 @@
 #include <kicon.h>
 #include <klocale.h>
 
 #include <kicon.h>
 #include <klocale.h>
 
-SearchCriterionSelector::SearchCriterionSelector(QWidget* parent) :
+SearchCriterionSelector::SearchCriterionSelector(Type type, QWidget* parent) :
     QWidget(parent),
     m_layout(0),
     m_descriptionsBox(0),
     QWidget(parent),
     m_layout(0),
     m_descriptionsBox(0),
@@ -64,6 +64,20 @@ SearchCriterionSelector::SearchCriterionSelector(QWidget* parent) :
     m_layout->addWidget(m_removeButton);
 
     setLayout(m_layout);
     m_layout->addWidget(m_removeButton);
 
     setLayout(m_layout);
+
+    // preselect the used criterion dependent on the type
+    switch (type) {
+    case Date:
+        m_descriptionsBox->setCurrentIndex(1);
+        m_comparatorBox->setCurrentIndex(1);
+        break;
+    case FileSize:
+        m_descriptionsBox->setCurrentIndex(2);
+        break;
+    case Undefined:
+    default:
+        break;
+    }
 }
 
 SearchCriterionSelector::~SearchCriterionSelector()
 }
 
 SearchCriterionSelector::~SearchCriterionSelector()
@@ -74,19 +88,27 @@ void SearchCriterionSelector::createDescriptions()
 {
     // TODO: maybe this creation should be forwarded to a factory if
     // the number of items increases in future
 {
     // TODO: maybe this creation should be forwarded to a factory if
     // the number of items increases in future
-
-    QList<SearchCriterionDescription::Comparator> comparators;
-    comparators.append(SearchCriterionDescription::Comparator(i18nc("@label", "greater than"), ">", "+"));
-    comparators.append(SearchCriterionDescription::Comparator(i18nc("@label", "greater than or equal to"), ">=", "+"));
-    comparators.append(SearchCriterionDescription::Comparator(i18nc("@label", "less than"), "<", "+"));
-    comparators.append(SearchCriterionDescription::Comparator(i18nc("@label", "less than or equal to"), "<=", "+"));
+    QList<SearchCriterionDescription::Comparator> comperators;
+    comperators.append(SearchCriterionDescription::Comparator(i18nc("@label", "Greater Than"), ">", "+"));
+    comperators.append(SearchCriterionDescription::Comparator(i18nc("@label", "Greater Than or Equal to"), ">=", "+"));
+    comperators.append(SearchCriterionDescription::Comparator(i18nc("@label", "Less Than"), "<", "+"));
+    comperators.append(SearchCriterionDescription::Comparator(i18nc("@label", "Less Than or Equal to"), "<=", "+"));
 
     // add "Date" description
 
     // add "Date" description
+    QList<SearchCriterionDescription::Comparator> dateComps;
+    dateComps.append(SearchCriterionDescription::Comparator(i18nc("@label", "Anytime"), "", "")); // TODO
+    dateComps.append(SearchCriterionDescription::Comparator(i18nc("@label", "Today"), ">", "+")); // TODO
+    dateComps.append(SearchCriterionDescription::Comparator(i18nc("@label", "This week"), ">", "+")); // TODO
+    dateComps.append(SearchCriterionDescription::Comparator(i18nc("@label", "This month"), ">", "+")); // TODO
+    foreach (const SearchCriterionDescription::Comparator& comp, comperators) {
+        dateComps.append(comp);
+    }
+
     DateValue* dateValue = new DateValue(this);
     dateValue->hide();
     SearchCriterionDescription date(i18nc("@label", "Date Modified"),
                                     "sourceModified",
     DateValue* dateValue = new DateValue(this);
     dateValue->hide();
     SearchCriterionDescription date(i18nc("@label", "Date Modified"),
                                     "sourceModified",
-                                    comparators,
+                                    dateComps,
                                     dateValue);
 
     // add "File Size" description
                                     dateValue);
 
     // add "File Size" description
@@ -94,7 +116,7 @@ void SearchCriterionSelector::createDescriptions()
     fileSizeValue->hide();
     SearchCriterionDescription size(i18nc("@label", "File Size"),
                                     "contentSize",
     fileSizeValue->hide();
     SearchCriterionDescription size(i18nc("@label", "File Size"),
                                     "contentSize",
-                                    comparators,
+                                    comperators,
                                     fileSizeValue);
 
     m_descriptions.append(date);
                                     fileSizeValue);
 
     m_descriptions.append(date);
index 3720b53fbc8c9d99bc8f6ccce8fe95df35f248b4..f83d28df8757d0d3e4c85b434c949e9679b59825 100644 (file)
@@ -45,7 +45,14 @@ class SearchCriterionSelector : public QWidget
     Q_OBJECT
 
 public:
     Q_OBJECT
 
 public:
-    SearchCriterionSelector(QWidget* parent = 0);
+    enum Type
+    {
+        Undefined,
+        Date,
+        FileSize
+    };
+
+    SearchCriterionSelector(Type type, QWidget* parent = 0);
     virtual ~SearchCriterionSelector();
 
 signals:
     virtual ~SearchCriterionSelector();
 
 signals: