Added some default search criterions. A lot of fine tuning of the UI has to be made ASAP, but all in all I think it is more efficient to have some default criterions already instead of the need to press the (+) icon for each option.

svn path=/trunk/KDE/kdebase/apps/; revision=1047298
This commit is contained in:
Peter Penz 2009-11-10 22:18:45 +00:00
parent d9e3139e50
commit 0d448fc6f3
3 changed files with 49 additions and 11 deletions

View file

@ -92,8 +92,17 @@ DolphinSearchOptionsConfigurator::DolphinSearchOptionsConfigurator(QWidget* pare
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(dateCriterion);
m_vBoxLayout->addWidget(fileSizeCriterion);
m_vBoxLayout->addWidget(new KSeparator(this));
}
@ -103,7 +112,7 @@ DolphinSearchOptionsConfigurator::~DolphinSearchOptionsConfigurator()
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

View file

@ -30,7 +30,7 @@
#include <kicon.h>
#include <klocale.h>
SearchCriterionSelector::SearchCriterionSelector(QWidget* parent) :
SearchCriterionSelector::SearchCriterionSelector(Type type, QWidget* parent) :
QWidget(parent),
m_layout(0),
m_descriptionsBox(0),
@ -64,6 +64,20 @@ SearchCriterionSelector::SearchCriterionSelector(QWidget* parent) :
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()
@ -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
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
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",
comparators,
dateComps,
dateValue);
// add "File Size" description
@ -94,7 +116,7 @@ void SearchCriterionSelector::createDescriptions()
fileSizeValue->hide();
SearchCriterionDescription size(i18nc("@label", "File Size"),
"contentSize",
comparators,
comperators,
fileSizeValue);
m_descriptions.append(date);

View file

@ -45,7 +45,14 @@ class SearchCriterionSelector : public QWidget
Q_OBJECT
public:
SearchCriterionSelector(QWidget* parent = 0);
enum Type
{
Undefined,
Date,
FileSize
};
SearchCriterionSelector(Type type, QWidget* parent = 0);
virtual ~SearchCriterionSelector();
signals: