#include "dolphinfacetswidget.h"
-#include <KLocale>
+#include <KLocalizedString>
#include <QButtonGroup>
#include <QCheckBox>
#include <QDate>
DolphinFacetsWidget::DolphinFacetsWidget(QWidget* parent) :
QWidget(parent),
- m_documents(0),
- m_images(0),
- m_audio(0),
- m_videos(0),
- m_anytime(0),
- m_today(0),
- m_yesterday(0),
- m_thisWeek(0),
- m_thisMonth(0),
- m_thisYear(0),
- m_anyRating(0),
- m_oneOrMore(0),
- m_twoOrMore(0),
- m_threeOrMore(0),
- m_fourOrMore(0),
- m_maxRating(0)
+ m_folders(nullptr),
+ m_documents(nullptr),
+ m_images(nullptr),
+ m_audio(nullptr),
+ m_videos(nullptr),
+ m_anytime(nullptr),
+ m_today(nullptr),
+ m_yesterday(nullptr),
+ m_thisWeek(nullptr),
+ m_thisMonth(nullptr),
+ m_thisYear(nullptr),
+ m_anyRating(nullptr),
+ m_oneOrMore(nullptr),
+ m_twoOrMore(nullptr),
+ m_threeOrMore(nullptr),
+ m_fourOrMore(nullptr),
+ m_maxRating(nullptr)
{
QButtonGroup* filetypeGroup = new QButtonGroup(this);
m_anyType = createRadioButton(i18nc("@option:check", "Any"), filetypeGroup);
+ m_folders = createRadioButton(i18nc("@option:check", "Folders"), filetypeGroup);
m_documents = createRadioButton(i18nc("@option:check", "Documents"), filetypeGroup);
m_images = createRadioButton(i18nc("@option:check", "Images"), filetypeGroup);
m_audio = createRadioButton(i18nc("@option:check", "Audio Files"), filetypeGroup);
QVBoxLayout* typeLayout = new QVBoxLayout();
typeLayout->setSpacing(0);
typeLayout->addWidget(m_anyType);
+ typeLayout->addWidget(m_folders);
typeLayout->addWidget(m_documents);
typeLayout->addWidget(m_images);
typeLayout->addWidget(m_audio);
{
}
-#ifdef HAVE_BALOO
-Baloo::Term DolphinFacetsWidget::ratingTerm() const
+QString DolphinFacetsWidget::ratingTerm() const
{
- Baloo::Term ratingTerm;
- Baloo::Term modifiedTerm;
+ QStringList terms;
if (!m_anyRating->isChecked()) {
int stars = 1; // represents m_oneOrMore
}
const int rating = stars * 2;
- ratingTerm = Baloo::Term("rating", rating, Baloo::Term::GreaterEqual);
+ terms << QStringLiteral("rating>=%1").arg(rating);
}
if (!m_anytime->isChecked()) {
date = date.addDays(1 - date.dayOfYear());
}
- modifiedTerm = Baloo::Term("modified", date, Baloo::Term::GreaterEqual);
+ terms << QStringLiteral("modified>=%1").arg(date.toString(Qt::ISODate));
}
- if (ratingTerm.isValid() && modifiedTerm.isValid()) {
- Baloo::Term term(Baloo::Term::And);
- term.addSubTerm(ratingTerm);
- term.addSubTerm(modifiedTerm);
-
- return term;
- } else if (modifiedTerm.isValid()) {
- return modifiedTerm;
- } else if (ratingTerm.isValid()) {
- return ratingTerm;
- }
-
- return Baloo::Term();
+ return terms.join(QStringLiteral(" AND "));
}
QString DolphinFacetsWidget::facetType() const
{
- if (m_documents->isChecked()) {
- return QLatin1String("Document");
+ if (m_folders->isChecked()) {
+ return QStringLiteral("Folder");
+ } else if (m_documents->isChecked()) {
+ return QStringLiteral("Document");
} else if (m_images->isChecked()) {
- return QLatin1String("Image");
+ return QStringLiteral("Image");
} else if (m_audio->isChecked()) {
- return QLatin1String("Audio");
+ return QStringLiteral("Audio");
} else if (m_videos->isChecked()) {
- return QLatin1String("Video");
+ return QStringLiteral("Video");
}
return QString();
}
-bool DolphinFacetsWidget::isRatingTerm(const Baloo::Term& term) const
+bool DolphinFacetsWidget::isRatingTerm(const QString& term) const
{
- const QList<Baloo::Term> subTerms = term.subTerms();
- if (subTerms.isEmpty()) {
- // If term has no sub terms, then the term itself is either a "rating" term
- // or a "modified" term.
- return term.property() == QLatin1String("modified") ||
- term.property() == QLatin1String("rating");
-
- } else if (subTerms.size() == 2) {
- // If term has sub terms, then the sub terms are always "rating" and "modified" terms.
-
- QStringList properties;
- foreach (const Baloo::Term& subTerm, subTerms) {
- properties << subTerm.property();
- }
+ const QStringList subTerms = term.split(' ', QString::SkipEmptyParts);
+
+ // If term has sub terms, then sone of the sub terms are always "rating" and "modified" terms.
+ bool containsRating = false;
+ bool containsModified = false;
- return properties.contains(QLatin1String("modified")) &&
- properties.contains(QLatin1String("rating"));
+ foreach (const QString& subTerm, subTerms) {
+ if (subTerm.startsWith(QLatin1String("rating>="))) {
+ containsRating = true;
+ } else if (subTerm.startsWith(QLatin1String("modified>="))) {
+ containsModified = true;
+ }
}
- return false;
+ return containsModified || containsRating;
}
-void DolphinFacetsWidget::setRatingTerm(const Baloo::Term& term)
+void DolphinFacetsWidget::setRatingTerm(const QString& term)
{
// If term has sub terms, then the sub terms are always "rating" and "modified" terms.
// If term has no sub terms, then the term itself is either a "rating" term or a "modified"
// term. To avoid code duplication we add term to subTerms list, if the list is empty.
- QList<Baloo::Term> subTerms = term.subTerms();
- if (subTerms.isEmpty()) {
- subTerms << term;
- }
+ QStringList subTerms = term.split(' ', QString::SkipEmptyParts);
- foreach (const Baloo::Term& subTerm, subTerms) {
- const QString property = subTerm.property();
-
- if (property == QLatin1String("modified")) {
- const QDate date = subTerm.value().toDate();
+ foreach (const QString& subTerm, subTerms) {
+ if (subTerm.startsWith(QLatin1String("modified>="))) {
+ const QString value = subTerm.mid(10);
+ const QDate date = QDate::fromString(value, Qt::ISODate);
setTimespan(date);
- } else if (property == QLatin1String("rating")) {
- const int stars = subTerm.value().toInt() / 2;
+ } else if (subTerm.startsWith(QLatin1String("rating>="))) {
+ const QString value = subTerm.mid(8);
+ const int stars = value.toInt() / 2;
setRating(stars);
}
}
}
-#endif
-
void DolphinFacetsWidget::setFacetType(const QString& type)
{
if (type == QLatin1String("Document")) {
QButtonGroup* group)
{
QRadioButton* button = new QRadioButton(text);
- connect(button, SIGNAL(clicked()), this, SIGNAL(facetChanged()));
+ connect(button, &QRadioButton::clicked, this, &DolphinFacetsWidget::facetChanged);
group->addButton(button);
return button;
}
-#include "dolphinfacetswidget.moc"