digiKam
Loading...
Searching...
No Matches
tagspopupmenu.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 : 2004-09-07
7 * Description : a pop-up menu implementation to display a
8 * hierarchical view of digiKam tags.
9 *
10 * SPDX-FileCopyrightText: 2004-2005 by Renchi Raju <renchi dot raju at gmail dot com>
11 * SPDX-FileCopyrightText: 2006-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
12 * SPDX-FileCopyrightText: 2006-2011 by Marcel Wiesweg <marcel dot wiesweg at gmx dot de>
13 *
14 * SPDX-License-Identifier: GPL-2.0-or-later
15 *
16 * ============================================================ */
17
18#pragma once
19
20// Qt includes
21
22#include <QList>
23#include <QMenu>
24
25namespace Digikam
26{
27
28class Album;
29class TAlbum;
30
31class TagsPopupMenu : public QMenu
32{
33 Q_OBJECT
34
35public:
36
44
45public:
46
47 TagsPopupMenu(qlonglong selectedImageId, Mode mode, QWidget* const parent = nullptr);
48 TagsPopupMenu(const QList<qlonglong>& selectedImageIDs, Mode mode, QWidget* const parent = nullptr);
49 ~TagsPopupMenu() override;
50
51Q_SIGNALS:
52
53 void signalTagActivated(int id);
55
56private Q_SLOTS:
57
58 void slotAboutToShow();
59 void slotToggleTag(QAction*);
60 void slotAddTag(QAction*);
61 void slotTagThumbnail(Album*, const QPixmap&);
62
63private:
64
65 void setup(Mode mode);
66 void clearPopup();
67 QMenu* buildSubMenu(int tagid);
68 void iterateAndBuildMenu(QMenu* menu, TAlbum* album);
69 void buildFlatMenu(QMenu* menu);
70 void setAlbumIcon(QAction* action, TAlbum* album);
71
72private:
73
74 class Private;
75 Private* const d = nullptr;
76};
77
78} // namespace Digikam
Abstract base class for all album types.
Definition album.h:57
Definition album.h:421
Definition tagspopupmenu.h:32
Mode
Definition tagspopupmenu.h:38
@ REMOVE
Definition tagspopupmenu.h:40
@ RECENTLYASSIGNED
Definition tagspopupmenu.h:42
@ DISPLAY
Used by "GoTo Tag" feature.
Definition tagspopupmenu.h:41
@ ASSIGN
Definition tagspopupmenu.h:39
void signalTagActivated(int id)
~TagsPopupMenu() override
Definition tagspopupmenu.cpp:464
@ Album
Definition coredbfields.h:48
Definition datefolderview.cpp:34