X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/e348bc58267b3dc06f2fc044f9e5ce5a5dfcd087..405dd624fb:/src/search/dolphinfacetswidget.h diff --git a/src/search/dolphinfacetswidget.h b/src/search/dolphinfacetswidget.h index 57bed9e68..2e91bcc96 100644 --- a/src/search/dolphinfacetswidget.h +++ b/src/search/dolphinfacetswidget.h @@ -21,15 +21,12 @@ #define DOLPHINFACETSWIDGET_H #include +#include -#include -#ifdef HAVE_NEPOMUK - #include -#endif - -class QButtonGroup; -class QCheckBox; -class QRadioButton; +class QComboBox; +class QDate; +class QEvent; +class QToolButton; /** * @brief Allows to filter search-queries by facets. @@ -52,51 +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_NEPOMUK - Nepomuk2::Query::Term facetsTerm() const; -#endif + QStringList searchTerms() const; + QString facetType() const; + + 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: - /** - * @return New checkbox which is connected to the - * slotFacedChanged() slot whenever it has - * been toggled. - */ - QCheckBox* createCheckBox(const QString& text); - - /** - * @return New radiobutton which is connected to the - * slotFacedChanged() slot whenever it has - * been toggled. - */ - QRadioButton* createRadioButton(const QString& text, - QButtonGroup* group); + void setRating(const int stars); + void setTimespan(const QDate& date); + void addSearchTag(const QString& tag); + void removeSearchTag(const QString& tag); + + void initComboBox(QComboBox* combo); + void updateTagsSelector(); private: - QCheckBox* m_documents; - QCheckBox* m_images; - QCheckBox* m_audio; - QCheckBox* 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