digiKam
Loading...
Searching...
No Matches
ratingfilter.h
Go to the documentation of this file.
1/* ============================================================
2 *
3 * This file is a part of digiKam project
4 * https://www.digikam.org
5 *
6 * Date : 2007-10-09
7 * Description : a widget to filter album contents by rating
8 *
9 * SPDX-FileCopyrightText: 2007-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
10 * SPDX-FileCopyrightText: 2007 by Arnd Baecker <arnd dot baecker at web dot de>
11 * SPDX-FileCopyrightText: 2014 by Mohamed_Anwer <m_dot_anwer at gmx dot com>
12 *
13 * SPDX-License-Identifier: GPL-2.0-or-later
14 *
15 * ============================================================ */
16
17#pragma once
18
19// Local includes
20
21#include "dlayoutbox.h"
22#include "itemfiltersettings.h"
23#include "ratingwidget.h"
24
25class QAction;
26
27namespace Digikam
28{
29
31{
32 Q_OBJECT
33
34public:
35
36 explicit RatingFilterWidget(QWidget* const parent);
37 ~RatingFilterWidget() override;
38
41
42 void setExcludeUnratedItems(bool excluded);
44
45Q_SIGNALS:
46
48
49protected:
50
51 void mousePressEvent(QMouseEvent*) override;
52 void mouseMoveEvent(QMouseEvent*) override;
53 void mouseReleaseEvent(QMouseEvent*) override;
54
55private:
56
57 void updateRatingTooltip();
58
59private Q_SLOTS:
60
61 void slotRatingChanged();
62
63private:
64
65 class Private;
66 Private* const d = nullptr;
67};
68
69// -----------------------------------------------------------------------------
70
71class RatingFilter : public DHBox
72{
73 Q_OBJECT
74
75public:
76
77 explicit RatingFilter(QWidget* const parent);
78 ~RatingFilter() override;
79
80 void reset();
81
82 void setRating(int val);
83 int rating() const;
84
87
88 void setExcludeUnratedItems(bool excluded);
90
91Q_SIGNALS:
92
94
95private Q_SLOTS:
96
97 void slotOptionsMenu();
98 void slotOptionsTriggered(QAction*);
99 void slotNoRatingToggled(bool checked);
100 void slotRatingFilterChanged(int, ItemFilterSettings::RatingCondition, bool);
101
102private:
103
104 class Private;
105 Private* const d = nullptr;
106};
107
108} // namespace Digikam
Definition dlayoutbox.h:35
RatingCondition
Possible conditions used to filter rating: >=, =, <=.
Definition itemfiltersettings.h:97
Definition ratingfilter.h:31
void signalRatingFilterChanged(int, ItemFilterSettings::RatingCondition, bool)
void setRatingFilterCondition(ItemFilterSettings::RatingCondition cond)
Definition ratingfilter.cpp:80
void mousePressEvent(QMouseEvent *) override
Definition ratingfilter.cpp:129
ItemFilterSettings::RatingCondition ratingFilterCondition()
Definition ratingfilter.cpp:87
~RatingFilterWidget() override
Definition ratingfilter.cpp:70
bool isUnratedItemsExcluded()
Definition ratingfilter.cpp:98
void setExcludeUnratedItems(bool excluded)
Definition ratingfilter.cpp:92
void mouseMoveEvent(QMouseEvent *) override
Definition ratingfilter.cpp:103
void mouseReleaseEvent(QMouseEvent *) override
Definition ratingfilter.cpp:164
Definition ratingfilter.h:72
ItemFilterSettings::RatingCondition ratingFilterCondition()
Definition ratingfilter.cpp:280
~RatingFilter() override
Definition ratingfilter.cpp:270
void setRating(int val)
Definition ratingfilter.cpp:370
void reset()
Definition ratingfilter.cpp:380
void setRatingFilterCondition(ItemFilterSettings::RatingCondition cond)
Definition ratingfilter.cpp:275
bool isUnratedItemsExcluded()
Definition ratingfilter.cpp:291
void setExcludeUnratedItems(bool excluded)
Definition ratingfilter.cpp:285
void signalRatingFilterChanged(int, ItemFilterSettings::RatingCondition, bool)
int rating() const
Definition ratingfilter.cpp:375
Definition ratingwidget.h:36
Definition datefolderview.cpp:34