digiKam
Loading...
Searching...
No Matches
tableview.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-02-11
7 * Description : Table view
8 *
9 * SPDX-FileCopyrightText: 2013 by Michael G. Hansen <mike at mghansen dot de>
10 * SPDX-FileCopyrightText: 2017 by Simon Frei <freisim93 at gmail dot com>
11 * SPDX-FileCopyrightText: 2017-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
12 *
13 * SPDX-License-Identifier: GPL-2.0-or-later
14 *
15 * ============================================================ */
16
17#pragma once
18
19// Qt includes
20
21#include <QWidget>
22
23// Local includes
24
25#include "applicationsettings.h"
27#include "digikam_export.h"
28#include "digikam_globals.h"
29#include "itemviewutilities.h"
30#include "iteminfo.h"
31#include "statesavingobject.h"
32
33class QMenu;
34class QContextMenuEvent;
35class QItemDelegate;
36class QItemSelectionModel;
37class QTreeView;
38
39namespace Digikam
40{
41
42class Album;
43class ItemFilterModel;
44class ThumbnailSize;
45class TableViewShared;
46
47class TableView : public QWidget,
49{
50 Q_OBJECT
51
52public:
53
54 explicit TableView(QItemSelectionModel* const selectionModel,
55 DCategorizedSortFilterProxyModel* const imageFilterModel,
56 QWidget* const parent);
57
58 ~TableView() override;
59
60 void setThumbnailSize(const ThumbnailSize& size);
62 ItemInfo currentInfo() const;
63 Album* currentAlbum() const;
64 int numberOfSelectedItems() const;
65 ItemInfo nextInfo() const;
66 ItemInfo previousInfo() const;
67 ItemInfo deepRowItemInfo(const int rowNumber, const bool relative) const;
68
69 void selectAll();
70 void clearSelection();
71 void invertSelection();
72
73 ItemInfoList allItemInfos(bool grouping = false) const;
74 ItemInfoList selectedItemInfos(bool grouping = false) const;
75 ItemInfoList selectedItemInfosCurrentFirst(bool grouping = false) const;
76 bool allNeedGroupResolving(const OperationType type) const;
77 bool selectedNeedGroupResolving(const OperationType type) const;
78
79protected:
80
81 void doLoadState() override;
82 void doSaveState() override;
83
84 bool eventFilter(QObject* watched, QEvent* event) override;
85 QList<QAction*> getExtraGroupingActions();
86
87public Q_SLOTS:
88
89 void slotGoToRow(const int rowNumber, const bool relativeMove);
90 void slotSetCurrentUrlWhenAvailable(const QUrl& url);
91 void slotSetCurrentWhenAvailable(const qlonglong id);
95 void slotSetActive(const bool isActive);
96 void slotPaste();
97 void rename();
98
99protected Q_SLOTS:
100
101 void slotItemActivated(const QModelIndex& tableViewIndex);
103
104Q_SIGNALS:
105
112 void signalShowContextMenu(QContextMenuEvent* event,
113 const QList<QAction*>& actions);
114 void signalShowContextMenuOnInfo(QContextMenuEvent* event, const ItemInfo& info,
115 const QList<QAction*>& actions,
116 ItemFilterModel* filterModel = nullptr);
117
118private:
119
120 class Private;
121
122 const QScopedPointer<Private> d;
123 const QScopedPointer<TableViewShared> s;
124};
125
126} // namespace Digikam
Abstract base class for all album types.
Definition album.h:57
Definition dcategorizedsortfilterproxymodel.h:43
Definition itemfiltermodel.h:115
Definition iteminfolist.h:37
Definition iteminfo.h:68
DeleteMode
Definition itemviewutilities.h:40
@ DeleteUseTrash
Definition itemviewutilities.h:42
Definition statesavingobject.h:66
Definition tableview.h:49
void slotGroupingModeActionTriggered()
Definition tableview.cpp:355
void slotSetCurrentWhenAvailable(const qlonglong id)
Definition tableview.cpp:462
void signalPreviewRequested(const ItemInfo &info)
void signalShowContextMenu(QContextMenuEvent *event, const QList< QAction * > &actions)
void slotGoToRow(const int rowNumber, const bool relativeMove)
Definition tableview.cpp:373
void slotPaste()
Definition tableview.cpp:263
void doLoadState() override
Definition tableview.cpp:132
void setThumbnailSize(const ThumbnailSize &size)
Definition tableview.cpp:230
void slotSetActive(const bool isActive)
Definition tableview.cpp:587
void slotDeleteSelectedWithoutConfirmation(const ItemViewUtilities::DeleteMode deleteMode=ItemViewUtilities::DeleteUseTrash)
Definition tableview.cpp:307
ItemInfo previousInfo() const
Definition tableview.cpp:432
void signalShowContextMenuOnInfo(QContextMenuEvent *event, const ItemInfo &info, const QList< QAction * > &actions, ItemFilterModel *filterModel=nullptr)
ThumbnailSize getThumbnailSize() const
Definition tableview.cpp:241
void invertSelection()
Definition tableview.cpp:536
int numberOfSelectedItems() const
Definition tableview.cpp:368
QList< QAction * > getExtraGroupingActions()
Definition tableview.cpp:316
void signalInsertSelectedToExistingQueue(int queue)
ItemInfo currentInfo() const
Definition tableview.cpp:269
void slotItemActivated(const QModelIndex &tableViewIndex)
Definition tableview.cpp:162
~TableView() override
Definition tableview.cpp:128
void doSaveState() override
Definition tableview.cpp:151
bool allNeedGroupResolving(const OperationType type) const
Definition tableview.cpp:284
ItemInfoList allItemInfos(bool grouping=false) const
Definition tableview.cpp:274
void clearSelection()
Definition tableview.cpp:531
void selectAll()
Definition tableview.cpp:580
void slotSetCurrentUrlWhenAvailable(const QUrl &url)
Definition tableview.cpp:448
void rename()
Definition tableview.cpp:633
Album * currentAlbum() const
Definition tableview.cpp:246
void slotAwayFromSelection()
Unselects the current selection and changes the current item.
Definition tableview.cpp:481
bool eventFilter(QObject *watched, QEvent *event) override
Definition tableview.cpp:200
ItemInfo deepRowItemInfo(const int rowNumber, const bool relative) const
Definition tableview.cpp:394
void signalPopupTagsView()
ItemInfoList selectedItemInfosCurrentFirst(bool grouping=false) const
Definition tableview.cpp:609
ItemInfo nextInfo() const
Definition tableview.cpp:416
bool selectedNeedGroupResolving(const OperationType type) const
Definition tableview.cpp:289
ItemInfoList selectedItemInfos(bool grouping=false) const
Definition tableview.cpp:597
void slotDeleteSelected(const ItemViewUtilities::DeleteMode deleteMode=ItemViewUtilities::DeleteUseTrash)
Definition tableview.cpp:294
Definition thumbnailsize.h:32
@ Album
Definition coredbfields.h:48
Definition datefolderview.cpp:34
OperationType
Definition digikam_globals.h:161