X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/e348bc58267b3dc06f2fc044f9e5ce5a5dfcd087..f65b0899c3666561cafac14f67ab0bb8a5bfa00a:/src/search/dolphinfacetswidget.h diff --git a/src/search/dolphinfacetswidget.h b/src/search/dolphinfacetswidget.h index 57bed9e68..83345b344 100644 --- a/src/search/dolphinfacetswidget.h +++ b/src/search/dolphinfacetswidget.h @@ -1,35 +1,19 @@ -/*************************************************************************** - * Copyright (C) 2012 by Peter Penz * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * - ***************************************************************************/ +/* + * SPDX-FileCopyrightText: 2012 Peter Penz + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ #ifndef DOLPHINFACETSWIDGET_H #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 +36,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(); -signals: + void setFacetType(const QString& type); + +Q_SIGNALS: void facetChanged(); +protected: + void changeEvent(QEvent* event) override; + +private Q_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