]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/search/dolphinfacetswidget.h
Add support to tags: scheme in DolphinQuery
[dolphin.git] / src / search / dolphinfacetswidget.h
index 757dcd4825df4f176045edac3daef2640b23546c..2e91bcc9676a8165973607aace4e96cc285ebd96 100644 (file)
 #define DOLPHINFACETSWIDGET_H
 
 #include <QWidget>
+#include <KCoreDirLister>
 
-#include <config-baloo.h>
-#ifdef HAVE_BALOO
-    #include <baloo/term.h>
-#endif
-
-class QButtonGroup;
-class QCheckBox;
+class QComboBox;
 class QDate;
-class QRadioButton;
+class QEvent;
+class QToolButton;
 
 /**
  * @brief Allows to filter search-queries by facets.
@@ -53,54 +49,45 @@ class DolphinFacetsWidget : public QWidget
     Q_OBJECT
 
 public:
-    explicit DolphinFacetsWidget(QWidget* parent = 0);
-    virtual ~DolphinFacetsWidget();
+    explicit DolphinFacetsWidget(QWidget* parent = nullptr);
+    ~DolphinFacetsWidget() override;
 
-#ifdef HAVE_BALOO
-    Baloo::Term ratingTerm() const;
+    QStringList searchTerms() const;
     QString facetType() const;
 
-    bool isRatingTerm(const Baloo::Term& term) const;
-    void setRatingTerm(const Baloo::Term& term);
-#endif
+    bool isSearchTerm(const QString& term) const;
+    void setSearchTerm(const QString& term);
+    void resetSearchTerms();
 
     void setFacetType(const QString& type);
 
 signals:
     void facetChanged();
 
+protected:
+    void changeEvent(QEvent* event) override;
+
+private slots:
+    void updateTagsMenu();
+    void updateTagsMenuItems(const QUrl&, const KFileItemList& items);
+
 private:
     void setRating(const int stars);
     void setTimespan(const QDate& date);
+    void addSearchTag(const QString& tag);
+    void removeSearchTag(const QString& tag);
 
-    /**
-     * @return New radiobutton which is connected to the
-     *         slotFacedChanged() slot whenever it has
-     *         been toggled.
-     */
-    QRadioButton* createRadioButton(const QString& text,
-                                    QButtonGroup* group);
+    void initComboBox(QComboBox* combo);
+    void updateTagsSelector();
 
 private:
-    QRadioButton* m_anyType;
-    QRadioButton* m_documents;
-    QRadioButton* m_images;
-    QRadioButton* m_audio;
-    QRadioButton* m_videos;
-
-    QRadioButton* m_anytime;
-    QRadioButton* m_today;
-    QRadioButton* m_yesterday;
-    QRadioButton* m_thisWeek;
-    QRadioButton* m_thisMonth;
-    QRadioButton* m_thisYear;
-
-    QRadioButton* m_anyRating;
-    QRadioButton* m_oneOrMore;
-    QRadioButton* m_twoOrMore;
-    QRadioButton* m_threeOrMore;
-    QRadioButton* m_fourOrMore;
-    QRadioButton* m_maxRating;
+    QComboBox* m_typeSelector;
+    QComboBox* m_dateSelector;
+    QComboBox* m_ratingSelector;
+    QToolButton* m_tagsSelector;
+
+    QStringList m_searchTags;
+    KCoreDirLister m_tagsLister;
 };
 
 #endif