digiKam
Loading...
Searching...
No Matches
picklabelwidget.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 : 2011-02-14
7 * Description : pick label widget
8 *
9 * SPDX-FileCopyrightText: 2011-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
10 *
11 * SPDX-License-Identifier: GPL-2.0-or-later
12 *
13 * ============================================================ */
14
15#pragma once
16
17// Qt includes
18
19#include <QColor>
20#include <QPushButton>
21#include <QEvent>
22#include <QList>
23#include <QMetaType>
24#include <QMenu>
25
26// Local includes
27
28#include "dlayoutbox.h"
29#include "digikam_globals.h"
30#include "digikam_export.h"
31
32namespace Digikam
33{
34
35class DIGIKAM_EXPORT PickLabelWidget : public DVBox
36{
37 Q_OBJECT
38
39public:
40
41 explicit PickLabelWidget(QWidget* const parent = nullptr);
42 ~PickLabelWidget() override;
43
47 void setDescriptionBoxVisible(bool b);
48
53 void setButtonsExclusive(bool b);
54
58 void setPickLabels(const QList<PickLabel>& list);
59
63 QList<PickLabel> pickLabels() const;
64
65 static QString labelPickName(PickLabel label);
66
67 static QIcon buildIcon(PickLabel label);
68
69Q_SIGNALS:
70
72
73protected:
74
75 bool eventFilter(QObject* obj, QEvent* ev) override;
76
77private:
78
79 void updateDescription(PickLabel label);
80
81private:
82
83 class Private;
84 Private* const d = nullptr;
85};
86
87// ------------------------------------------------------------------------------
88
89class DIGIKAM_EXPORT PickLabelSelector : public QPushButton
90{
91 Q_OBJECT
92
93public:
94
95 explicit PickLabelSelector(QWidget* const parent = nullptr);
96 ~PickLabelSelector() override;
97
98 void setPickLabel(PickLabel label);
99 PickLabel pickLabel();
100
101 PickLabelWidget* pickLabelWidget() const;
102
103Q_SIGNALS:
104
106
107private Q_SLOTS:
108
109 void slotPickLabelChanged(int);
110
111private:
112
113 class Private;
114 Private* const d = nullptr;
115};
116
117// ------------------------------------------------------------------------------
118
119class DIGIKAM_EXPORT PickLabelMenuAction : public QMenu
120{
121 Q_OBJECT
122
123public:
124
125 explicit PickLabelMenuAction(QMenu* const parent = nullptr);
126 ~PickLabelMenuAction() override = default;
127
128Q_SIGNALS:
129
131};
132
133} // namespace Digikam
134
135Q_DECLARE_METATYPE(QList<Digikam::PickLabel>)
Definition dlayoutbox.h:65
Definition picklabelwidget.h:120
~PickLabelMenuAction() override=default
Definition picklabelwidget.h:90
Definition picklabelwidget.h:36
void signalPickLabelChanged(int)
Definition datefolderview.cpp:34
PickLabel
Definition digikam_globals.h:109