┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/panels
diff options
context:
space:
mode:
authorPeter Penz <[email protected]>2010-10-27 17:08:02 +0000
committerPeter Penz <[email protected]>2010-10-27 17:08:02 +0000
commit4383f4238ee61668d82e45f08935a9b99892f16e (patch)
tree3533b803dfb02f6a72157d1ded458fd684ec9a2f /src/panels
parente521e260b6c95242e87fad9f22a0faa696cfa948 (diff)
- Automatically show the filter-panel when a searching is done
- Remove filter-prototypes that conflict with the filterpanel svn path=/trunk/KDE/kdebase/apps/; revision=1190445
Diffstat (limited to 'src/panels')
-rw-r--r--src/panels/filter/filterpanel.cpp107
-rw-r--r--src/panels/filter/filterpanel.h24
2 files changed, 64 insertions, 67 deletions
diff --git a/src/panels/filter/filterpanel.cpp b/src/panels/filter/filterpanel.cpp
index 4410a5456..44cac7ecf 100644
--- a/src/panels/filter/filterpanel.cpp
+++ b/src/panels/filter/filterpanel.cpp
@@ -21,6 +21,7 @@
#include <nepomuk/filequery.h>
#include <nepomuk/facetwidget.h>
+#include <nepomuk/facet.h>
#include <Nepomuk/Query/FileQuery>
#include <Nepomuk/Query/Term>
@@ -31,98 +32,92 @@
#include <QtGui/QVBoxLayout>
#include <QtGui/QTreeView>
#include <QtGui/QPushButton>
-#include <kdebug.h>
-
-FilterPanel::FilterPanel(QWidget* parent)
- : Panel(parent)
+FilterPanel::FilterPanel(QWidget* parent) :
+ Panel(parent)
{
QVBoxLayout* layout = new QVBoxLayout(this);
- m_buttonRemoveFolderRestriction = new QPushButton( i18n( "Remove folder restriction" ), this );
- connect( m_buttonRemoveFolderRestriction, SIGNAL( clicked() ), SLOT( slotRemoveFolderRestrictionClicked() ) );
+ m_removeFolderRestrictionButton = new QPushButton(i18n("Remove folder restriction"), this);
+ connect(m_removeFolderRestrictionButton, SIGNAL(clicked()), SLOT(slotRemoveFolderRestrictionClicked()));
+
+ layout->addWidget(m_removeFolderRestrictionButton);
- layout->addWidget(m_buttonRemoveFolderRestriction);
+ m_facetWidget = new Nepomuk::Utils::FacetWidget(this);
+ layout->addWidget(m_facetWidget, 1);
+ connect(m_facetWidget, SIGNAL(facetsChanged()), this, SLOT(slotFacetsChanged()));
- m_facetWidget = new Nepomuk::Utils::FacetWidget( this );
- layout->addWidget( m_facetWidget, 1 );
- connect(m_facetWidget, SIGNAL(facetsChanged()), this, SLOT(slotFacetsChanged()) );
+ /*m_facetWidget->addFacet(Nepomuk::Utils::Facet::createFileTypeFacet());
+ m_facetWidget->addFacet(Nepomuk::Utils::Facet::createTypeFacet());
+ m_facetWidget->addFacet(Nepomuk::Utils::Facet::createDateFacet());
+ m_facetWidget->addFacet(Nepomuk::Utils::Facet::createPriorityFacet());
+ m_facetWidget->addFacet(Nepomuk::Utils::Facet::createRatingFacet());*/
- // init to empty panel
+ // Init to empty panel
setQuery(Nepomuk::Query::Query());
}
-
FilterPanel::~FilterPanel()
{
}
-void FilterPanel::setUrl(const KUrl& url)
+bool FilterPanel::urlChanged()
{
- kDebug() << url;
- Panel::setUrl(url);
+ if (!isVisible()) {
+ return true;
+ }
- // disable us
+ // Disable us
setQuery(Nepomuk::Query::Query());
- // get the query from the item
- m_lastSetUrlStatJob = KIO::stat(url, KIO::HideProgressInfo);
+ // Get the query from the item
+ m_lastSetUrlStatJob = KIO::stat(url(), KIO::HideProgressInfo);
connect(m_lastSetUrlStatJob, SIGNAL(result(KJob*)),
this, SLOT(slotSetUrlStatFinished(KJob*)));
-}
-
-
-void FilterPanel::setQuery(const Nepomuk::Query::Query& query)
-{
- kDebug() << query << query.isValid() << query.toSparqlQuery();
- if (query.isValid()) {
- m_buttonRemoveFolderRestriction->setVisible( query.isFileQuery() && !query.toFileQuery().includeFolders().isEmpty() );
- m_unfacetedRestQuery = query;
- m_unfacetedRestQuery.setTerm( m_facetWidget->extractFacetsFromTerm( query.term() ) );
- m_facetWidget->setClientQuery( query );
- kDebug() << "Rest query after facets:" << m_unfacetedRestQuery;
- setEnabled(true);
- }
- else {
- m_unfacetedRestQuery = Nepomuk::Query::Query();
- setEnabled(false);
- }
+ return true;
}
-
void FilterPanel::slotSetUrlStatFinished(KJob* job)
{
m_lastSetUrlStatJob = 0;
- kDebug() << url();
const KIO::UDSEntry uds = static_cast<KIO::StatJob*>(job)->statResult();
- const QString nepomukQueryStr = uds.stringValue( KIO::UDSEntry::UDS_NEPOMUK_QUERY );
- kDebug() << nepomukQueryStr;
+ const QString nepomukQueryStr = uds.stringValue(KIO::UDSEntry::UDS_NEPOMUK_QUERY);
Nepomuk::Query::FileQuery nepomukQuery;
- if ( !nepomukQueryStr.isEmpty() ) {
- nepomukQuery = Nepomuk::Query::Query::fromString( nepomukQueryStr );
- }
- else if ( url().isLocalFile() ) {
- // fallback query for local file URLs
+ if (!nepomukQueryStr.isEmpty()) {
+ nepomukQuery = Nepomuk::Query::Query::fromString(nepomukQueryStr);
+ } else if (url().isLocalFile()) {
+ // Fallback query for local file URLs
nepomukQuery.addIncludeFolder(url(), false);
}
- kDebug() << nepomukQuery;
setQuery(nepomukQuery);
}
-
void FilterPanel::slotFacetsChanged()
{
- Nepomuk::Query::Query query( m_unfacetedRestQuery && m_facetWidget->queryTerm() );
- kDebug() << query;
- emit urlActivated( query.toSearchUrl() );
+ Nepomuk::Query::Query query(m_unfacetedRestQuery && m_facetWidget->queryTerm());
+ emit urlActivated(query.toSearchUrl());
}
-
void FilterPanel::slotRemoveFolderRestrictionClicked()
{
- Nepomuk::Query::FileQuery query( m_unfacetedRestQuery && m_facetWidget->queryTerm() );
- query.setIncludeFolders( KUrl::List() );
- query.setExcludeFolders( KUrl::List() );
- m_facetWidget->setClientQuery( query );
- emit urlActivated( query.toSearchUrl() );
+ Nepomuk::Query::FileQuery query(m_unfacetedRestQuery && m_facetWidget->queryTerm());
+ query.setIncludeFolders(KUrl::List());
+ query.setExcludeFolders(KUrl::List());
+ m_facetWidget->setClientQuery(query);
+ emit urlActivated(query.toSearchUrl());
+}
+
+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_facetWidget->setClientQuery(query);
+ setEnabled(true);
+ }
+ else {
+ m_unfacetedRestQuery = Nepomuk::Query::Query();
+ setEnabled(false);
+ }
}
diff --git a/src/panels/filter/filterpanel.h b/src/panels/filter/filterpanel.h
index d42c2f0bd..9269bd21a 100644
--- a/src/panels/filter/filterpanel.h
+++ b/src/panels/filter/filterpanel.h
@@ -20,8 +20,8 @@
#ifndef FILTERPANEL_H
#define FILTERPANEL_H
-#include "../panel.h"
#include <nepomuk/query.h>
+#include <panels/panel.h>
class KJob;
class QPushButton;
@@ -32,20 +32,23 @@ namespace Nepomuk {
}
}
+/**
+ * @brief Allows the filtering of search results.
+ */
class FilterPanel : public Panel
{
Q_OBJECT
public:
FilterPanel(QWidget* parent = 0);
- ~FilterPanel();
-
-public slots:
- void setUrl(const KUrl& url);
- void setQuery(const Nepomuk::Query::Query& query);
+ virtual ~FilterPanel();
signals:
- void urlActivated( const KUrl& url );
+ void urlActivated(const KUrl& url);
+
+protected:
+ /** @see Panel::urlChanged() */
+ virtual bool urlChanged();
private slots:
void slotSetUrlStatFinished(KJob*);
@@ -53,13 +56,12 @@ private slots:
void slotRemoveFolderRestrictionClicked();
private:
- bool urlChanged() {
- return true;
- }
+ void setQuery(const Nepomuk::Query::Query& query);
+private:
KJob* m_lastSetUrlStatJob;
- QPushButton* m_buttonRemoveFolderRestriction;
+ QPushButton* m_removeFolderRestrictionButton;
Nepomuk::Utils::FacetWidget* m_facetWidget;
Nepomuk::Query::Query m_unfacetedRestQuery;
};