]> 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 916e056081e98a44130a0937884084fec00813b0..c7358e2125fe869ed6985a505e013b326b246ca0 100644 (file)
@@ -1,35 +1,25 @@
-/***************************************************************************
- *   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 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 +36,49 @@ 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);
+
+    QSize minimumSizeHint() const override;
+
+Q_SIGNALS:
+    void facetChanged();
+
+protected:
+    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 addSearchTag(const QString &tag);
+    void removeSearchTag(const QString &tag);
+    void resetSearchTags();
+
+    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;
+    QAction *m_clearTagsAction;
 };
 
 #endif