digiKam
Loading...
Searching...
No Matches
groupindicatoroverlay.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-02-28
7 * Description : overlay for extra functionality of the group indicator
8 *
9 * SPDX-FileCopyrightText: 2011 by Marcel Wiesweg <marcel dot wiesweg at gmx dot de>
10 * SPDX-FileCopyrightText: 2009-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 <QAbstractButton>
21#include <QAbstractItemView>
22
23// Local includes
24
25#include "itemdelegateoverlay.h"
26#include "itemviewdelegate.h"
27
28namespace Digikam
29{
30
31class GroupIndicatorOverlayWidget : public QAbstractButton
32{
33 Q_OBJECT
34
35public:
36
37 explicit GroupIndicatorOverlayWidget(QWidget* const parent = nullptr);
38 void contextMenuEvent(QContextMenuEvent* event) override;
39
40protected:
41
42 void paintEvent(QPaintEvent*) override;
43
44Q_SIGNALS:
45
46 void contextMenu(QContextMenuEvent* event);
47};
48
49// ----------------------------------------------------------------------------------
50
52{
53 Q_OBJECT
55
56public:
57
58 explicit GroupIndicatorOverlay(QObject* const parent);
59
61
62Q_SIGNALS:
63
64 void toggleGroupOpen(const QModelIndex& index);
65 void showButtonContextMenu(const QModelIndex& index, QContextMenuEvent* event);
66
67protected Q_SLOTS:
68
69 void slotButtonClicked();
70 void slotButtonContextMenu(QContextMenuEvent* event);
71
72protected:
73
74 void updatePosition();
76
77 QWidget* createWidget() override;
78 void setActive(bool) override;
79 void visualChange() override;
80 void slotEntered(const QModelIndex& index) override;
81 bool checkIndex(const QModelIndex& index) const override;
82
83protected:
84
85 QPersistentModelIndex m_index;
86};
87
88} // namespace Digikam
Definition itemdelegateoverlay.h:115
Definition groupindicatoroverlay.h:32
void contextMenu(QContextMenuEvent *event)
void contextMenuEvent(QContextMenuEvent *event) override
Definition groupindicatoroverlay.cpp:39
void paintEvent(QPaintEvent *) override
Definition groupindicatoroverlay.cpp:44
Definition groupindicatoroverlay.h:52
GroupIndicatorOverlayWidget * buttonWidget() const
Definition groupindicatoroverlay.cpp:55
void slotEntered(const QModelIndex &index) override
Definition groupindicatoroverlay.cpp:148
QPersistentModelIndex m_index
Definition groupindicatoroverlay.h:85
void showButtonContextMenu(const QModelIndex &index, QContextMenuEvent *event)
bool checkIndex(const QModelIndex &index) const override
Definition groupindicatoroverlay.cpp:109
void visualChange() override
Definition groupindicatoroverlay.cpp:86
QWidget * createWidget() override
Definition groupindicatoroverlay.cpp:60
void slotButtonContextMenu(QContextMenuEvent *event)
Definition groupindicatoroverlay.cpp:143
void setActive(bool) override
Definition groupindicatoroverlay.cpp:68
void toggleGroupOpen(const QModelIndex &index)
void slotButtonClicked()
Definition groupindicatoroverlay.cpp:138
void updatePosition()
Definition groupindicatoroverlay.cpp:94
Definition itemviewdelegate.h:32
#define REQUIRE_DELEGATE(Delegate)
Definition itemdelegateoverlay.h:102
Definition datefolderview.cpp:34