digiKam
Loading...
Searching...
No Matches
versionstreeview.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-12-26
7 * Description : images versions QTreeView
8 *
9 * SPDX-FileCopyrightText: 2010 by Martin Klapetek <martin dot klapetek at gmail dot com>
10 * SPDX-FileCopyrightText: 2010 by Marcel Wiesweg <marcel dot wiesweg at gmx dot de>
11 *
12 * SPDX-License-Identifier: GPL-2.0-or-later
13 *
14 * ============================================================ */
15
16#pragma once
17
18// Qt includes
19
20#include <QTreeView>
21
22// Local includes
23
24#include "digikam_export.h"
26
27namespace Digikam
28{
29
30class VersionsDelegate;
31class ItemDelegateOverlay;
32
33class VersionsTreeView : public QTreeView,
35{
36 Q_OBJECT
37
38public:
39
40 explicit VersionsTreeView(QWidget* const parent = nullptr);
41 ~VersionsTreeView() override;
42
43 void setToolTipEnabled(bool on);
44
45 void addOverlay(ItemDelegateOverlay* overlay);
47
49
50protected:
51
52 void paintEvent(QPaintEvent* e) override;
53 void mouseMoveEvent(QMouseEvent* event) override;
54 bool viewportEvent(QEvent* event) override;
55 QModelIndex moveCursor(CursorAction cursorAction,
56 Qt::KeyboardModifiers modifiers) override;
57
59 QModelIndex mapIndexForDragDrop(const QModelIndex& index) const override;
60 QPixmap pixmapForDrag(const QList<QModelIndex>& indexes) const override;
63
64protected:
65
66 class ToolTip;
67
70 bool m_showToolTip = false;
71 ToolTip* m_toolTip = nullptr;
72
73private:
74
75 // Disable
76 VersionsTreeView(const VersionsTreeView&) = delete;
77 VersionsTreeView& operator=(const VersionsTreeView&) = delete;
78};
79
80} // namespace Digikam
Definition abstractitemdragdrophandler.h:32
Definition dragdropimplementations.h:103
Definition itemdelegateoverlay.h:31
Definition versionsdelegate.h:31
Definition versionstreeview.h:35
void setToolTipEnabled(bool on)
Definition versionstreeview.cpp:133
VersionsDelegate * m_delegate
Definition versionstreeview.h:68
void paintEvent(QPaintEvent *e) override
Definition versionstreeview.cpp:148
ToolTip * m_toolTip
Definition versionstreeview.h:71
AbstractItemDragDropHandler * m_dragDropHandler
Definition versionstreeview.h:69
void addOverlay(ItemDelegateOverlay *overlay)
Definition versionstreeview.cpp:120
~VersionsTreeView() override
NOTE: All overlay management code in a sophisticated form can be studied in ItemCategorizedView.
Definition versionstreeview.cpp:110
bool m_showToolTip
Definition versionstreeview.h:70
VersionsDelegate * delegate() const
Definition versionstreeview.cpp:115
void mouseMoveEvent(QMouseEvent *event) override
Definition versionstreeview.cpp:162
QPixmap pixmapForDrag(const QList< QModelIndex > &indexes) const override
Definition versionstreeview.cpp:192
void removeOverlay(ItemDelegateOverlay *overlay)
Definition versionstreeview.cpp:127
QModelIndex mapIndexForDragDrop(const QModelIndex &index) const override
Definition versionstreeview.cpp:187
bool viewportEvent(QEvent *event) override
Definition versionstreeview.cpp:217
QModelIndex moveCursor(CursorAction cursorAction, Qt::KeyboardModifiers modifiers) override
Definition versionstreeview.cpp:155
AbstractItemDragDropHandler * dragDropHandler() const override
Definition versionstreeview.cpp:182
virtual void setDragDropHandler(AbstractItemDragDropHandler *handler)
Definition versionstreeview.cpp:177
#define DECLARE_VIEW_DRAG_DROP_METHODS(ParentViewClass)
Definition dragdropimplementations.h:145
Definition datefolderview.cpp:34