digiKam
Loading...
Searching...
No Matches
albumselectors.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 : 2010-10-09
7 * Description : A widget to select Physical or virtual albums with combo-box
8 *
9 * SPDX-FileCopyrightText: 2010-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 <QWidget>
21
22namespace Digikam
23{
24
25class Album;
26typedef QList<Album*> AlbumList;
27
28class AlbumSelectors : public QWidget
29{
30 Q_OBJECT
31
32public:
33
40
46
47public:
48
53 explicit AlbumSelectors(const QString& label,
54 const QString& configName,
55 QWidget* const parent = nullptr,
56 AlbumType albumType = All,
57 bool allowRecursive = false);
58 ~AlbumSelectors() override;
59
64
68 QList<int> selectedAlbumIds() const;
69
73 AlbumList selectedTags() const;
74
78 QList<int> selectedTagIds() const;
79
84
89
94
98 void resetSelection();
99
103 void setAlbumSelected(Album* const album, SelectionType type);
104
108 void setTagSelected(Album* const album, SelectionType type);
109
113 void setTypeSelection(int albumType);
114
118 int typeSelection() const;
119
123 bool wholeAlbumsChecked() const;
124
128 bool wholeTagsChecked() const;
129
130public Q_SLOTS:
131
135 void loadState();
136
140 void saveState();
141
142Q_SIGNALS:
143
145
146private Q_SLOTS:
147
148 void slotUpdateClearButtons();
149 void slotWholeAlbums(bool);
150 void slotWholeTags(bool);
151
152private:
153
154 void initAlbumWidget();
155 void initTagWidget();
156 void updateTabText();
157
158private:
159
160 class Private;
161 Private* const d = nullptr;
162};
163
164} // namespace Digikam
Definition albumselectors.h:29
~AlbumSelectors() override
Definition albumselectors.cpp:167
void saveState()
Definition albumselectors.cpp:522
void setAlbumSelected(Album *const album, SelectionType type)
Definition albumselectors.cpp:416
bool wholeTagsChecked() const
Definition albumselectors.cpp:373
QList< int > selectedAlbumIds() const
Definition albumselectors.cpp:360
bool wholeAlbumsChecked() const
Definition albumselectors.cpp:339
void setTagSelected(Album *const album, SelectionType type)
Definition albumselectors.cpp:430
void resetPAlbumSelection()
Definition albumselectors.cpp:464
AlbumType
Definition albumselectors.h:35
@ PhysAlbum
Definition albumselectors.h:36
@ All
Definition albumselectors.h:38
@ TagsAlbum
Definition albumselectors.h:37
void setTypeSelection(int albumType)
Definition albumselectors.cpp:444
AlbumList selectedAlbums() const
Definition albumselectors.cpp:344
int typeSelection() const
Definition albumselectors.cpp:452
SelectionType
Definition albumselectors.h:42
@ SingleSelection
Definition albumselectors.h:43
@ MultipleSelection
Definition albumselectors.h:44
void resetSelection()
Definition albumselectors.cpp:478
void resetTAlbumSelection()
Definition albumselectors.cpp:471
void loadState()
Definition albumselectors.cpp:491
QList< int > selectedTagIds() const
Definition albumselectors.cpp:394
AlbumList selectedAlbumsAndTags() const
Definition albumselectors.cpp:407
AlbumList selectedTags() const
Definition albumselectors.cpp:378
Abstract base class for all album types.
Definition album.h:57
@ Album
Definition coredbfields.h:48
Definition datefolderview.cpp:34
QList< Album * > AlbumList
Definition album.h:41