digiKam
Loading...
Searching...
No Matches
colorlabelwidget.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-01-28
7 * Description : color 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 ColorLabelWidget : public DVBox
36{
37 Q_OBJECT
38
39public:
40
41 explicit ColorLabelWidget(QWidget* const parent = nullptr);
42 ~ColorLabelWidget() override;
43
47 void setDescriptionBoxVisible(bool b);
48
53 void setButtonsExclusive(bool b);
54
58 void setColorLabels(const QList<ColorLabel>& list);
59
63 QList<ColorLabel> colorLabels() const;
64
65 static QColor labelColor(ColorLabel label);
66 static QString labelColorName(ColorLabel label);
67
68 static QIcon buildIcon(ColorLabel label, int size = 12);
69
70Q_SIGNALS:
71
73
74protected:
75
76 bool eventFilter(QObject* obj, QEvent* ev) override;
77
78private:
79
80 void updateDescription(ColorLabel label);
81
82private:
83
84 class Private;
85 Private* const d = nullptr;
86};
87
88// ------------------------------------------------------------------------------
89
90class DIGIKAM_EXPORT ColorLabelSelector : public QPushButton
91{
92 Q_OBJECT
93
94public:
95
96 explicit ColorLabelSelector(QWidget* const parent = nullptr);
97 ~ColorLabelSelector() override;
98
99 void setColorLabel(ColorLabel label);
100 ColorLabel colorLabel();
101
102 ColorLabelWidget* colorLabelWidget() const;
103
104Q_SIGNALS:
105
107
108private Q_SLOTS:
109
110 void slotColorLabelChanged(int);
111
112private:
113
114 class Private;
115 Private* const d = nullptr;
116};
117
118// ------------------------------------------------------------------------------
119
120class DIGIKAM_EXPORT ColorLabelMenuAction : public QMenu
121{
122 Q_OBJECT
123
124public:
125
126 explicit ColorLabelMenuAction(QMenu* const parent = nullptr);
127 ~ColorLabelMenuAction() override;
128
129Q_SIGNALS:
130
132};
133
134} // namespace Digikam
135
136Q_DECLARE_METATYPE(QList<Digikam::ColorLabel>)
Definition colorlabelwidget.h:121
Definition colorlabelwidget.h:91
Definition colorlabelwidget.h:36
Definition dlayoutbox.h:65
Definition datefolderview.cpp:34
ColorLabel
Definition digikam_globals.h:90