]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/search/dolphinfacetswidget.h
Build with QT_NO_KEYWORDS
[dolphin.git] / src / search / dolphinfacetswidget.h
index 57bed9e6868caa4b19856949fdd5eb7766099886..83345b34444fcd36b7988e40068be03521fb5045 100644 (file)
@@ -1,35 +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 <QWidget>
+#include <KCoreDirLister>
 
-#include <config-nepomuk.h>
-#ifdef HAVE_NEPOMUK
-    #include <Nepomuk2/Query/Term>
-#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