digiKam
Loading...
Searching...
No Matches
searchfieldgroup.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 : 2008-01-20
7 * Description : User interface for searches
8 *
9 * SPDX-FileCopyrightText: 2008-2012 by Marcel Wiesweg <marcel dot wiesweg at gmx dot de>
10 * SPDX-FileCopyrightText: 2012-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
11 *
12 * SPDX-License-Identifier: GPL-2.0-or-later
13 *
14 * ============================================================ */
15
16#pragma once
17
18// Qt includes
19
20#include <QList>
21#include <QSet>
22#include <QWidget>
23
24// Local includes
25
26#include "dexpanderbox.h"
27#include "coredbsearchxml.h"
28
29class QGridLayout;
30class QLabel;
31class QVBoxLayout;
32
33namespace Digikam
34{
35
36class SearchFieldGroupLabel;
37class SearchGroup;
38class SearchField;
39class VisibilityController;
40
41class SearchFieldGroup : public QWidget
42{
43 Q_OBJECT
44
45public:
46
47 explicit SearchFieldGroup(SearchGroup* const parent);
48
49 void addField(SearchField* const field);
50 void setLabel(SearchFieldGroupLabel* const label);
51
52 SearchField* fieldForName(const QString& fieldName) const;
53 void write(SearchXmlWriter& writer);
54
55 void reset();
56
57 void markField(SearchField* const field);
58 void clearMarkedFields();
59 QList<QRect> areaOfMarkedFields() const;
60
61public Q_SLOTS:
62
63 void setFieldsVisible(bool visible);
64
65protected Q_SLOTS:
66
67 void slotLabelClicked();
68
69protected:
70
71 QList<SearchField*> m_fields;
72 QGridLayout* m_layout = nullptr;
75 QSet<SearchField*> m_markedFields;
76
77private:
78
79 // Disable
80 SearchFieldGroup(QWidget*) = delete;
81};
82
83// -----------------------------------------------------------------------
84
85class SearchFieldGroupLabel : public QWidget
86{
87 Q_OBJECT
88
89public:
90
91 explicit SearchFieldGroupLabel(QWidget* const parent);
92
93 void setTitle(const QString& title);
94
95public Q_SLOTS:
96
97 void displayExpanded();
98 void displayFolded();
99
100Q_SIGNALS:
101
102 void clicked();
103
104protected:
105
106 QString m_title;
108 QLabel* m_expandLabel = nullptr;
109};
110
111} // namespace Digikam
Definition dexpanderbox.h:95
Definition searchfieldgroup.h:86
QString m_title
Definition searchfieldgroup.h:106
void displayFolded()
Definition searchfieldgroup.cpp:193
DClickLabel * m_titleLabel
Definition searchfieldgroup.h:107
void displayExpanded()
Definition searchfieldgroup.cpp:189
QLabel * m_expandLabel
Definition searchfieldgroup.h:108
void setTitle(const QString &title)
Definition searchfieldgroup.cpp:183
Definition searchfieldgroup.h:42
QList< SearchField * > m_fields
Definition searchfieldgroup.h:71
QGridLayout * m_layout
Definition searchfieldgroup.h:72
QSet< SearchField * > m_markedFields
Definition searchfieldgroup.h:75
void slotLabelClicked()
Definition searchfieldgroup.cpp:116
void write(SearchXmlWriter &writer)
Definition searchfieldgroup.cpp:93
void markField(SearchField *const field)
Definition searchfieldgroup.cpp:121
VisibilityController * m_controller
Definition searchfieldgroup.h:74
SearchFieldGroupLabel * m_label
Definition searchfieldgroup.h:73
QList< QRect > areaOfMarkedFields() const
Definition searchfieldgroup.cpp:131
void clearMarkedFields()
Definition searchfieldgroup.cpp:126
void setLabel(SearchFieldGroupLabel *const label)
Definition searchfieldgroup.cpp:72
void reset()
Definition searchfieldgroup.cpp:101
void addField(SearchField *const field)
Definition searchfieldgroup.cpp:43
void setFieldsVisible(bool visible)
Definition searchfieldgroup.cpp:111
SearchField * fieldForName(const QString &fieldName) const
Definition searchfieldgroup.cpp:80
Definition searchfields.h:56
Definition searchgroup.h:39
Definition coredbsearchxml.h:214
Definition visibilitycontroller.h:46
Definition datefolderview.cpp:34