digiKam
Loading...
Searching...
No Matches
digikamitemview.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 : 2009-04-24
7 * Description : Qt model-view for items
8 *
9 * SPDX-FileCopyrightText: 2009-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// Local includes
19
20#include "digikam_globals.h"
21#include "applicationsettings.h"
22#include "itemcategorizedview.h"
23#include "itemviewutilities.h"
25
26namespace Digikam
27{
28
29class ItemViewUtilities;
30class ItemInfoList;
31
34{
35 Q_OBJECT
36
37public:
38
39 explicit DigikamItemView(QWidget* const parent = nullptr);
40 ~DigikamItemView() override;
41
43
44 int fitToWidthIcons();
45 bool getFaceMode() const;
46 QList<int> getFaceIds(const QList<QModelIndex>& indexes) const;
47
48 void setThumbnailSize(const ThumbnailSize& size) override;
49
50 ItemInfoList allItemInfos(bool grouping = false) const;
51 ItemInfoList selectedItemInfos(bool grouping = false) const;
52 ItemInfoList selectedItemInfosCurrentFirst(bool grouping = false) const;
53 bool allNeedGroupResolving(const OperationType type) const;
54 bool selectedNeedGroupResolving(const OperationType type) const;
55
56public Q_SLOTS:
57
58 void openFile(const ItemInfo& info);
59
62
63 void rename();
64
65 void assignRating(const QList<QModelIndex>& index, int rating);
66
67 void setFaceMode(bool on);
68
72 void confirmFaces(const QList<QModelIndex>& indexes, int tagId);
73
79 void removeFaces(const QList<QModelIndex>& indexes);
80
84 void unknownFaces(const QList<QModelIndex>& indexes);
85
97 void rejectFaces(const QList<QModelIndex>& indexes);
98
102 void ignoreFaces(const QList<QModelIndex>& indexes);
103
104
105 void dragDropSort(const ItemInfo& pick, const QList<ItemInfo>& infos);
106
107Q_SIGNALS:
108
109 void previewRequested(const ItemInfo& info);
110 void signalSeparationModeChanged(int category);
111 void signalShowContextMenu(QContextMenuEvent* event,
112 const QList<QAction*>& actions = QList<QAction*>());
113
114 void signalShowContextMenuOnInfo(QContextMenuEvent* event, const ItemInfo& info,
115 const QList<QAction*>& actions,
117
118 void signalShowGroupContextMenu(QContextMenuEvent* event,
119 const QList<ItemInfo>& selectedInfos,
121
122protected Q_SLOTS:
123
124 void groupIndicatorClicked(const QModelIndex& index);
125 void showGroupContextMenu(const QModelIndex& index, QContextMenuEvent* event);
126
127protected:
128
131
132 void activated(const ItemInfo& info, Qt::KeyboardModifiers modifiers) override;
133 void showContextMenuOnInfo(QContextMenuEvent* event, const ItemInfo& info) override;
134 void showContextMenu(QContextMenuEvent* event) override;
135 void slotSetupChanged() override;
136
137 bool hasHiddenGroupedImages(const ItemInfo& info) const override;
138
139 ItemInfoList imageInfos(const QList<QModelIndex>& indexes,
140 OperationType type) const;
141
142private Q_SLOTS:
143
144 void slotRotateLeft(const QList<QModelIndex>&);
145 void slotRotateRight(const QList<QModelIndex>&);
146 void slotFullscreen(const QList<QModelIndex>&);
147 void slotInitProgressIndicator();
148 void scrollTo(const QModelIndex& index, ScrollHint hint = EnsureVisible) override;
149
150private:
151
152 class Private;
153 Private* const d = nullptr;
154};
155
156} // namespace Digikam
Definition digikamitemview_p.h:40
Definition digikamitemview.h:34
bool allNeedGroupResolving(const OperationType type) const
Definition digikamitemview.cpp:268
void showGroupContextMenu(const QModelIndex &index, QContextMenuEvent *event)
Definition digikamitemview.cpp:624
void setThumbnailSize(const ThumbnailSize &size) override
Definition digikamitemview.cpp:179
void setFaceMode(bool on)
Definition digikamitemview.cpp:320
void groupIndicatorClicked(const QModelIndex &index)
Definition digikamitemview.cpp:665
void signalShowContextMenu(QContextMenuEvent *event, const QList< QAction * > &actions=QList< QAction * >())
~DigikamItemView() override
Definition digikamitemview.cpp:169
void deleteSelectedDirectly(const ItemViewUtilities::DeleteMode deleteMode=ItemViewUtilities::DeleteUseTrash)
Definition digikamitemview.cpp:651
void confirmFaces(const QList< QModelIndex > &indexes, int tagId)
Definition digikamitemview.cpp:396
void assignRating(const QList< QModelIndex > &index, int rating)
Definition digikamitemview.cpp:659
void previewRequested(const ItemInfo &info)
void addRejectionOverlay(ItemDelegate *delegate=nullptr)
Definition digikamitemview.cpp:356
void signalSeparationModeChanged(int category)
void activated(const ItemInfo &info, Qt::KeyboardModifiers modifiers) override
Reimplement these in a subclass.
Definition digikamitemview.cpp:585
QList< int > getFaceIds(const QList< QModelIndex > &indexes) const
Definition digikamitemview.cpp:570
void showContextMenu(QContextMenuEvent *event) override
Definition digikamitemview.cpp:631
void rejectFaces(const QList< QModelIndex > &indexes)
Definition digikamitemview.cpp:500
void deleteSelected(const ItemViewUtilities::DeleteMode deleteMode=ItemViewUtilities::DeleteUseTrash)
Definition digikamitemview.cpp:641
void ignoreFaces(const QList< QModelIndex > &indexes)
Definition digikamitemview.cpp:543
void addAssignNameOverlay(ItemDelegate *delegate=nullptr)
Definition digikamitemview.cpp:378
void unknownFaces(const QList< QModelIndex > &indexes)
Definition digikamitemview.cpp:473
void signalShowGroupContextMenu(QContextMenuEvent *event, const QList< ItemInfo > &selectedInfos, ItemFilterModel *filterModel)
ItemInfoList imageInfos(const QList< QModelIndex > &indexes, OperationType type) const
Definition digikamitemview.cpp:302
bool selectedNeedGroupResolving(const OperationType type) const
Definition digikamitemview.cpp:273
void showContextMenuOnInfo(QContextMenuEvent *event, const ItemInfo &info) override
Definition digikamitemview.cpp:619
bool hasHiddenGroupedImages(const ItemInfo &info) const override
must be implemented by parent view
Definition digikamitemview.cpp:295
void dragDropSort(const ItemInfo &pick, const QList< ItemInfo > &infos)
Definition digikamitemview.cpp:215
void removeFaces(const QList< QModelIndex > &indexes)
Definition digikamitemview.cpp:447
void slotSetupChanged() override
Definition digikamitemview.cpp:283
void rename()
Definition digikamitemview.cpp:679
ItemViewUtilities * utilities() const
Definition digikamitemview.cpp:174
bool getFaceMode() const
Definition digikamitemview.cpp:315
void openFile(const ItemInfo &info)
Definition digikamitemview.cpp:636
int fitToWidthIcons()
Definition digikamitemview.cpp:278
void signalShowContextMenuOnInfo(QContextMenuEvent *event, const ItemInfo &info, const QList< QAction * > &actions, ItemFilterModel *filterModel)
Definition groupingviewimplementation.h:30
Definition itemcategorizedview.h:39
ItemInfoList selectedItemInfosCurrentFirst() const
Definition itemcategorizedview.cpp:316
ItemInfoList allItemInfos() const
Definition itemcategorizedview.cpp:301
ItemDelegate * delegate() const
Definition itemcategorizedview.cpp:220
ItemInfoList selectedItemInfos() const
Definition itemcategorizedview.cpp:311
QSortFilterProxyModel * filterModel() const override
Definition itemcategorizedview.cpp:215
Definition itemdelegate.h:34
Definition itemfiltermodel.h:115
Definition iteminfolist.h:37
Definition iteminfo.h:68
Definition itemviewutilities.h:34
DeleteMode
Definition itemviewutilities.h:40
@ DeleteUseTrash
Definition itemviewutilities.h:42
Definition thumbnailsize.h:32
Definition datefolderview.cpp:34
OperationType
Definition digikam_globals.h:161