digiKam
Loading...
Searching...
No Matches
searchgroup.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: 2011-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 <QWidget>
21#include <QList>
22
23// Local includes
24
25#include "dexpanderbox.h"
26#include "searchview.h"
27#include "coredbsearchxml.h"
28
29class QVBoxLayout;
30
31namespace Digikam
32{
33
34class SearchGroupLabel;
35class SearchFieldGroup;
36class SearchFieldGroupLabel;
37
39{
40 Q_OBJECT
41
42public:
43
49
50public:
51
52 explicit SearchGroup(SearchView* const parent);
53
54 void setup(Type type = FirstGroup);
55
56 void read(SearchXmlCachingReader& reader);
57 void write(SearchXmlWriter& writer);
58 void reset();
59
60 Type groupType() const;
61
62 QList<QRect> startupAnimationArea() const;
63
64Q_SIGNALS:
65
67
68protected:
69
71 void addGroupToLayout(SearchGroup* group) override;
72
73protected:
74
75 SearchView* m_view = nullptr;
76
77 QList<SearchFieldGroup*> m_fieldGroups;
78 QList<SearchFieldGroupLabel*> m_fieldLabels;
79
80 QVBoxLayout* m_layout = nullptr;
82 QVBoxLayout* m_subgroupLayout = nullptr;
83
85};
86
87// -------------------------------------------------------------------------
88
89class SearchGroupLabel : public QWidget
90{
91 Q_OBJECT
92
93public:
94
97 QWidget* const parent = nullptr);
98 ~SearchGroupLabel() override;
99
102
105
106Q_SIGNALS:
107
109
110protected Q_SLOTS:
111
112 void toggleShowOptions();
113 void toggleGroupOperator();
114 void boxesToggled();
115
116protected:
117
118 void setExtended(bool extended);
120 void updateGroupLabel();
121
122 void paintEvent(QPaintEvent*) override;
123
124private:
125
126 class Private;
127 Private* const d = nullptr;
128};
129
130} // namespace Digikam
Definition searchview.h:52
Definition searchgroup.h:90
void boxesToggled()
Definition searchgroup_label.cpp:230
SearchXml::Operator defaultFieldOperator() const
Definition searchgroup_label.cpp:353
void updateGroupLabel()
Definition searchgroup_label.cpp:276
void toggleShowOptions()
Definition searchgroup_label.cpp:203
~SearchGroupLabel() override
Definition searchgroup_label.cpp:166
void setDefaultFieldOperator(SearchXml::Operator op)
Definition searchgroup_label.cpp:291
void toggleGroupOperator()
Definition searchgroup_label.cpp:208
void setExtended(bool extended)
Definition searchgroup_label.cpp:171
void adjustOperatorOptions()
Definition searchgroup_label.cpp:297
void paintEvent(QPaintEvent *) override
Definition searchgroup_label.cpp:365
SearchXml::Operator groupOperator() const
Definition searchgroup_label.cpp:348
void setGroupOperator(SearchXml::Operator op)
Definition searchgroup_label.cpp:269
Definition searchgroup.h:39
SearchGroup * createSearchGroup() override
Re-implement: create and setup a search group.
Definition searchgroup.cpp:314
void write(SearchXmlWriter &writer)
Definition searchgroup.cpp:331
Type m_groupType
Definition searchgroup.h:84
void reset()
Definition searchgroup.cpp:349
QVBoxLayout * m_layout
Definition searchgroup.h:80
QList< QRect > startupAnimationArea() const
Definition searchgroup.cpp:365
void addGroupToLayout(SearchGroup *group) override
Re-implement: Adds a newly created group to the layout structures.
Definition searchgroup.cpp:324
QList< SearchFieldGroupLabel * > m_fieldLabels
Definition searchgroup.h:78
void read(SearchXmlCachingReader &reader)
Definition searchgroup.cpp:251
SearchView * m_view
Definition searchgroup.h:75
void setup(Type type=FirstGroup)
Definition searchgroup.cpp:27
Type
Definition searchgroup.h:45
@ FirstGroup
Definition searchgroup.h:46
@ ChainGroup
Definition searchgroup.h:47
QVBoxLayout * m_subgroupLayout
Definition searchgroup.h:82
SearchGroupLabel * m_label
Definition searchgroup.h:81
Type groupType() const
Definition searchgroup.cpp:360
QList< SearchFieldGroup * > m_fieldGroups
Definition searchgroup.h:77
Definition searchview.h:37
Definition searchview.h:106
Definition coredbsearchxml.h:366
Definition coredbsearchxml.h:214
Operator
Definition coredbsearchxml.h:38
Definition datefolderview.cpp:34
Type
Definition gpsitemcontainer.h:36