┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/panels
diff options
context:
space:
mode:
authorSebastian Trueg <[email protected]>2010-11-08 23:23:09 +0000
committerSebastian Trueg <[email protected]>2010-11-08 23:23:09 +0000
commit45503c3d3d26ebe8f0f98d951c2bb37a1641b86b (patch)
tree027cd5f1392a2858e72be3675584a3a2ecf7ea5e /src/panels
parent1ae377cd6ced8477fe235ca6a8006fef91e1fc33 (diff)
* Adjusted to the small API changes in libnepomuk
* Fancy facets. svn path=/trunk/KDE/kdebase/apps/; revision=1194431
Diffstat (limited to 'src/panels')
-rw-r--r--src/panels/filter/filterpanel.cpp39
1 files changed, 36 insertions, 3 deletions
diff --git a/src/panels/filter/filterpanel.cpp b/src/panels/filter/filterpanel.cpp
index c0d7aeae3..6b813afa8 100644
--- a/src/panels/filter/filterpanel.cpp
+++ b/src/panels/filter/filterpanel.cpp
@@ -22,8 +22,15 @@
#include <nepomuk/filequery.h>
#include <nepomuk/facetwidget.h>
#include <nepomuk/facet.h>
+#include <Nepomuk/Utils/SimpleFacet>
+#include <Nepomuk/Utils/ProxyFacet>
+#include <Nepomuk/Utils/DynamicResourceFacet>
#include <Nepomuk/Query/FileQuery>
-#include <Nepomuk/Query/Term>
+#include <Nepomuk/Query/ResourceTypeTerm>
+#include <Nepomuk/Query/LiteralTerm>
+#include <Nepomuk/Query/ComparisonTerm>
+#include <Nepomuk/Vocabulary/NFO>
+#include <Nepomuk/Vocabulary/NMM>
#include <kfileitem.h>
#include <kio/jobclasses.h>
@@ -82,7 +89,34 @@ void FilterPanel::showEvent(QShowEvent* event)
m_facetWidget = new Nepomuk::Utils::FacetWidget(this);
layout->addWidget(m_facetWidget, 1);
+ // File Type
m_facetWidget->addFacet(Nepomuk::Utils::Facet::createFileTypeFacet());
+
+ // Image Size
+ Nepomuk::Utils::ProxyFacet* imageSizeProxy = new Nepomuk::Utils::ProxyFacet();
+ imageSizeProxy->setFacetCondition(Nepomuk::Query::ResourceTypeTerm(Nepomuk::Vocabulary::NFO::Image()));
+ Nepomuk::Utils::SimpleFacet* imageSizeFacet = new Nepomuk::Utils::SimpleFacet(imageSizeProxy);
+ imageSizeFacet->setSelectionMode(Nepomuk::Utils::Facet::MatchAny);
+ imageSizeFacet->addTerm( i18nc("option:check Refers to a filter on image size", "Small"),
+ Nepomuk::Vocabulary::NFO::width() <= Nepomuk::Query::LiteralTerm(300));
+ imageSizeFacet->addTerm( i18nc("option:check Refers to a filter on image size", "Medium"),
+ (Nepomuk::Vocabulary::NFO::width() > Nepomuk::Query::LiteralTerm(300)) &&
+ (Nepomuk::Vocabulary::NFO::width() <= Nepomuk::Query::LiteralTerm(800)));
+ imageSizeFacet->addTerm( i18nc("option:check Refers to a filter on image size", "Large"),
+ Nepomuk::Vocabulary::NFO::width() > Nepomuk::Query::LiteralTerm(800));
+ imageSizeProxy->setSourceFacet(imageSizeFacet);
+ m_facetWidget->addFacet(imageSizeProxy);
+
+ // Artists
+ Nepomuk::Utils::ProxyFacet* artistProxy = new Nepomuk::Utils::ProxyFacet();
+ artistProxy->setFacetCondition(Nepomuk::Query::ResourceTypeTerm(Nepomuk::Vocabulary::NFO::Audio()));
+ Nepomuk::Utils::DynamicResourceFacet* artistFacet = new Nepomuk::Utils::DynamicResourceFacet(artistProxy);
+ artistFacet->setSelectionMode(Nepomuk::Utils::Facet::MatchAny);
+ artistFacet->setRelation(Nepomuk::Vocabulary::NMM::performer());
+ artistProxy->setSourceFacet(artistFacet);
+ m_facetWidget->addFacet(artistProxy);
+
+ // Misc
m_facetWidget->addFacet(Nepomuk::Utils::Facet::createDateFacet());
m_facetWidget->addFacet(Nepomuk::Utils::Facet::createRatingFacet());
m_facetWidget->addFacet(Nepomuk::Utils::Facet::createTagFacet());
@@ -136,8 +170,7 @@ void FilterPanel::setQuery(const Nepomuk::Query::Query& query)
{
if (query.isValid()) {
m_removeFolderRestrictionButton->setVisible(query.isFileQuery() && !query.toFileQuery().includeFolders().isEmpty());
- m_unfacetedRestQuery = query;
- m_unfacetedRestQuery.setTerm(m_facetWidget->extractFacetsFromTerm(query.term()));
+ m_unfacetedRestQuery = m_facetWidget->extractFacetsFromQuery(query);
m_facetWidget->setClientQuery(query);
setEnabled(true);
} else {