X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/67f58d5082cbab3a1a4a83926e77ade299ec07ea..405dd624fb:/src/search/dolphinfacetswidget.h diff --git a/src/search/dolphinfacetswidget.h b/src/search/dolphinfacetswidget.h index 916e05608..2e91bcc96 100644 --- a/src/search/dolphinfacetswidget.h +++ b/src/search/dolphinfacetswidget.h @@ -21,15 +21,18 @@ #define DOLPHINFACETSWIDGET_H #include +#include -class QCheckBox; -class QRadioButton; +class QComboBox; +class QDate; +class QEvent; +class QToolButton; /** * @brief Allows to filter search-queries by facets. * * TODO: The current implementation is a temporary - * workaround for the 4.10 release and represents no + * workaround for the 4.9 release and represents no * real facets-implementation yet: There have been * some Dolphin specific user-interface and interaction * issues since 4.6 by embedding the Nepomuk facet-widget @@ -46,28 +49,45 @@ class DolphinFacetsWidget : public QWidget Q_OBJECT public: - explicit DolphinFacetsWidget(QWidget* parent = 0); - virtual ~DolphinFacetsWidget(); + explicit DolphinFacetsWidget(QWidget* parent = nullptr); + ~DolphinFacetsWidget() override; + + 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: - 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; + 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: + QComboBox* m_typeSelector; + QComboBox* m_dateSelector; + QComboBox* m_ratingSelector; + QToolButton* m_tagsSelector; + + QStringList m_searchTags; + KCoreDirLister m_tagsLister; }; #endif