digiKam
Loading...
Searching...
No Matches
tableview_treeview.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 : 2013-03-02
7 * Description : Table view: Tree view subelement
8 *
9 * SPDX-FileCopyrightText: 2017-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
10 * SPDX-FileCopyrightText: 2013 by Michael G. Hansen <mike at mghansen 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#include <QWidget>
22
23// Local includes
24
25#include "digikam_export.h"
27#include "itemalbummodel.h"
28#include "itemfiltermodel.h"
29#include "statesavingobject.h"
31#include "tableview_shared.h"
32#include "thumbnailloadthread.h"
34
35class QMenu;
36class QContextMenuEvent;
37
38namespace Digikam
39{
40
47class TableViewTreeView : public QTreeView,
50{
51 Q_OBJECT
52
53public:
54
55 explicit TableViewTreeView(TableViewShared* const tableViewShared, QWidget* const parent = nullptr);
56 ~TableViewTreeView() override;
57
58 Album* albumAt(const QPoint& pos) const;
59
60protected:
61
62 bool eventFilter(QObject* watched, QEvent* event) override;
63
65
67 QModelIndex mapIndexForDragDrop(const QModelIndex& index) const override;
68 QPixmap pixmapForDrag(const QList<QModelIndex>& indexes) const override;
69 void wheelEvent(QWheelEvent* event) override;
70
71 bool hasHiddenGroupedImages(const ItemInfo& info) const override;
72
73private:
74
75 void addColumnDescriptionsToMenu(const QList<TableViewColumnDescription>& columnDescriptions, QMenu* const menu);
76 void showHeaderContextMenu(QEvent* const event);
77
78private Q_SLOTS:
79
80 void slotHeaderContextMenuAddColumn();
81 void slotHeaderContextMenuConfigureColumn();
82 void slotHeaderContextMenuActionRemoveColumnTriggered();
83 void slotModelGroupingModeChanged();
84
85Q_SIGNALS:
86
89
90private:
91
92 class Private;
93 const QScopedPointer<Private> d;
94
95 TableViewShared* const s = nullptr;
96};
97
98} // namespace Digikam
Definition abstractitemdragdrophandler.h:32
Abstract base class for all album types.
Definition album.h:57
Definition dragdropimplementations.h:103
Definition groupingviewimplementation.h:30
Definition iteminfo.h:68
Definition tableview_shared.h:35
Definition tableview_treeview.h:50
~TableViewTreeView() override
Definition tableview_treeview.cpp:97
AbstractItemDragDropHandler * dragDropHandler() const override
Definition tableview_treeview.cpp:235
void wheelEvent(QWheelEvent *event) override
Definition tableview_treeview.cpp:317
QModelIndex mapIndexForDragDrop(const QModelIndex &index) const override
Definition tableview_treeview.cpp:242
Album * albumAt(const QPoint &pos) const
Definition tableview_treeview.cpp:300
bool hasHiddenGroupedImages(const ItemInfo &info) const override
must be implemented by parent view
Definition tableview_treeview.cpp:340
QPixmap pixmapForDrag(const QList< QModelIndex > &indexes) const override
Definition tableview_treeview.cpp:255
bool eventFilter(QObject *watched, QEvent *event) override
Definition tableview_treeview.cpp:101
#define DECLARE_VIEW_DRAG_DROP_METHODS(ParentViewClass)
Definition dragdropimplementations.h:145
Definition datefolderview.cpp:34