From: Sebastian Trueg Date: Mon, 8 Nov 2010 23:23:09 +0000 (+0000) Subject: * Adjusted to the small API changes in libnepomuk X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/45503c3d3d26ebe8f0f98d951c2bb37a1641b86b?ds=sidebyside * Adjusted to the small API changes in libnepomuk * Fancy facets. svn path=/trunk/KDE/kdebase/apps/; revision=1194431 --- 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 #include #include +#include +#include +#include #include -#include +#include +#include +#include +#include +#include #include #include @@ -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 {