┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/search/dolphinsearchoptionsconfigurator.cpp
diff options
context:
space:
mode:
authorPeter Penz <[email protected]>2009-11-12 18:58:44 +0000
committerPeter Penz <[email protected]>2009-11-12 18:58:44 +0000
commit288c7db6a7ae804c79d9fe61dcaf7f494a194341 (patch)
tree15c409a826951d27e920f391b7849dfaf962e3dc /src/search/dolphinsearchoptionsconfigurator.cpp
parent408d94ac5766f543b433f492b37fb3ca1a6d8d84 (diff)
Show some default search configurations, so that the user is able to adjust queries in a faster way (similar to a defaceted interface).
svn path=/trunk/KDE/kdebase/apps/; revision=1048109
Diffstat (limited to 'src/search/dolphinsearchoptionsconfigurator.cpp')
-rw-r--r--src/search/dolphinsearchoptionsconfigurator.cpp73
1 files changed, 45 insertions, 28 deletions
diff --git a/src/search/dolphinsearchoptionsconfigurator.cpp b/src/search/dolphinsearchoptionsconfigurator.cpp
index 6f4d83460..112c55d82 100644
--- a/src/search/dolphinsearchoptionsconfigurator.cpp
+++ b/src/search/dolphinsearchoptionsconfigurator.cpp
@@ -32,10 +32,12 @@
#include <QHBoxLayout>
#include <QLabel>
#include <QPushButton>
+#include <QShowEvent>
#include <QVBoxLayout>
DolphinSearchOptionsConfigurator::DolphinSearchOptionsConfigurator(QWidget* parent) :
QWidget(parent),
+ m_initialized(false),
m_searchFromBox(0),
m_searchWhatBox(0),
m_addSelectorButton(0),
@@ -59,8 +61,6 @@ DolphinSearchOptionsConfigurator::DolphinSearchOptionsConfigurator(QWidget* pare
m_searchWhatBox->addItem(i18nc("@label", "Text"));
m_searchWhatBox->addItem(i18nc("@label", "Filenames"));
- QWidget* filler = new QWidget(this);
-
// add button "Save"
QPushButton* saveButton = new QPushButton(this);
saveButton->setIcon(KIcon("document-save"));
@@ -80,29 +80,24 @@ DolphinSearchOptionsConfigurator::DolphinSearchOptionsConfigurator(QWidget* pare
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()));
-
- QHBoxLayout* hBoxLayout = new QHBoxLayout(this);
- hBoxLayout->addWidget(searchLabel);
- hBoxLayout->addWidget(m_searchFromBox);
- hBoxLayout->addWidget(whatLabel);
- hBoxLayout->addWidget(m_searchWhatBox);
- hBoxLayout->addWidget(filler, 1);
- hBoxLayout->addWidget(saveButton);
- hBoxLayout->addWidget(closeButton);
- hBoxLayout->addWidget(m_addSelectorButton);
+ connect(m_addSelectorButton, SIGNAL(clicked()), this, SLOT(slotAddSelectorButtonClicked()));
- // add default search criterions
- SearchCriterionSelector* dateCriterion = new SearchCriterionSelector(SearchCriterionSelector::Date, this);
- connect(dateCriterion, SIGNAL(removeCriterion()), this, SLOT(removeCriterion()));
+ QHBoxLayout* firstLineLayout = new QHBoxLayout();
+ firstLineLayout->addWidget(searchLabel);
+ firstLineLayout->addWidget(m_searchFromBox);
+ firstLineLayout->addWidget(whatLabel);
+ firstLineLayout->addWidget(m_searchWhatBox);
+ firstLineLayout->addWidget(new QWidget(this), 1); // filler
+ firstLineLayout->addWidget(m_addSelectorButton);
- SearchCriterionSelector* fileSizeCriterion = new SearchCriterionSelector(SearchCriterionSelector::FileSize, this);
- connect(fileSizeCriterion, SIGNAL(removeCriterion()), this, SLOT(removeCriterion()));
+ QHBoxLayout* lastLineLayout = new QHBoxLayout();
+ lastLineLayout->addWidget(new QWidget(this), 1); // filler
+ lastLineLayout->addWidget(saveButton);
+ lastLineLayout->addWidget(closeButton);
m_vBoxLayout->addWidget(new KSeparator(this));
- m_vBoxLayout->addLayout(hBoxLayout);
- m_vBoxLayout->addWidget(dateCriterion);
- m_vBoxLayout->addWidget(fileSizeCriterion);
+ m_vBoxLayout->addLayout(firstLineLayout);
+ m_vBoxLayout->addLayout(lastLineLayout);
m_vBoxLayout->addWidget(new KSeparator(this));
}
@@ -110,15 +105,27 @@ DolphinSearchOptionsConfigurator::~DolphinSearchOptionsConfigurator()
{
}
-void DolphinSearchOptionsConfigurator::addSelector()
+void DolphinSearchOptionsConfigurator::showEvent(QShowEvent* event)
{
- SearchCriterionSelector* selector = new SearchCriterionSelector(SearchCriterionSelector::Undefined, this);
- connect(selector, SIGNAL(removeCriterion()), this, SLOT(removeCriterion()));
+ if (!event->spontaneous() && !m_initialized) {
+ // add default search criterions
+ SearchCriterionSelector* dateCriterion = new SearchCriterionSelector(SearchCriterionSelector::Date, this);
+ SearchCriterionSelector* tagCriterion = new SearchCriterionSelector(SearchCriterionSelector::Tag, this);
+ SearchCriterionSelector* sizeCriterion = new SearchCriterionSelector(SearchCriterionSelector::Size, this);
- // insert the new selector before the KSeparator at the bottom
- const int index = m_vBoxLayout->count() - 1;
- m_vBoxLayout->insertWidget(index, selector);
- updateSelectorButton();
+ addSelector(dateCriterion);
+ addSelector(tagCriterion);
+ addSelector(sizeCriterion);
+
+ m_initialized = true;
+ }
+ QWidget::showEvent(event);
+}
+
+void DolphinSearchOptionsConfigurator::slotAddSelectorButtonClicked()
+{
+ SearchCriterionSelector* selector = new SearchCriterionSelector(SearchCriterionSelector::Size, this);
+ addSelector(selector);
}
void DolphinSearchOptionsConfigurator::removeCriterion()
@@ -163,4 +170,14 @@ void DolphinSearchOptionsConfigurator::saveQuery()
dialog.exec(); // TODO...
}
+void DolphinSearchOptionsConfigurator::addSelector(SearchCriterionSelector* selector)
+{
+ connect(selector, SIGNAL(removeCriterion()), this, SLOT(removeCriterion()));
+
+ // insert the new selector before the lastLineLayout and the KSeparator at the bottom
+ const int index = m_vBoxLayout->count() - 2;
+ m_vBoxLayout->insertWidget(index, selector);
+ updateSelectorButton();
+}
+
#include "dolphinsearchoptionsconfigurator.moc"