]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/search/dolphinfacetswidget.h
Apply 1 suggestion(s) to 1 file(s)
[dolphin.git] / src / search / dolphinfacetswidget.h
index 9d875f0aeaaa5dee6cc3345a84453e4335a8bf14..c7358e2125fe869ed6985a505e013b326b246ca0 100644 (file)
@@ -1,31 +1,19 @@
-/***************************************************************************
- *   Copyright (C) 2012 by Peter Penz <peter.penz19@gmail.com>             *
- *                                                                         *
- *   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 <peter.penz19@gmail.com>
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
 
 #ifndef DOLPHINFACETSWIDGET_H
 #define DOLPHINFACETSWIDGET_H
 
+#include <KCoreDirLister>
 #include <QWidget>
 
-class QButtonGroup;
+class QComboBox;
 class QDate;
 class QEvent;
-class QRadioButton;
+class QToolButton;
 
 /**
  * @brief Allows to filter search-queries by facets.
@@ -48,58 +36,49 @@ class DolphinFacetsWidget : public QWidget
     Q_OBJECT
 
 public:
-    explicit DolphinFacetsWidget(QWidgetparent = nullptr);
+    explicit DolphinFacetsWidget(QWidget *parent = nullptr);
     ~DolphinFacetsWidget() override;
 
-    void resetOptions();
-
-    QString ratingTerm() const;
+    QStringList searchTerms() const;
     QString facetType() const;
 
-    bool isRatingTerm(const QString& term) const;
-    void setRatingTerm(const QString& term);
+    bool isSearchTerm(const QString &term) const;
+    void setSearchTerm(const QString &term);
+    void resetSearchTerms();
 
-    void setFacetType(const QStringtype);
+    void setFacetType(const QString &type);
 
-signals:
+    QSize minimumSizeHint() const override;
+
+Q_SIGNALS:
     void facetChanged();
 
 protected:
-    void changeEvent(QEvent* event) override;
+    void changeEvent(QEvent *event) override;
+
+private Q_SLOTS:
+    void updateTagsMenu();
+    void updateTagsMenuItems(const QUrl &, const KFileItemList &items);
 
 private:
     void setRating(const int stars);
-    void setTimespan(const QDate& date);
+    void setTimespan(const QDate &date);
+    void addSearchTag(const QString &tag);
+    void removeSearchTag(const QString &tag);
+    void resetSearchTags();
 
-    /**
-     * @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_folders;
-    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;
+    QAction *m_clearTagsAction;
 };
 
 #endif