digiKam
Loading...
Searching...
No Matches
itemiconview_p.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 : 2002-16-10
7 * Description : implementation of item icon view interface.
8 *
9 * SPDX-FileCopyrightText: 2002-2005 by Renchi Raju <renchi dot raju at gmail dot com>
10 * SPDX-FileCopyrightText: 2002-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
11 * SPDX-FileCopyrightText: 2009-2011 by Johannes Wienke <languitar at semipol dot de>
12 * SPDX-FileCopyrightText: 2010-2011 by Andi Clemens <andi dot clemens at gmail dot com>
13 * SPDX-FileCopyrightText: 2011-2013 by Michael G. Hansen <mike at mghansen dot de>
14 * SPDX-FileCopyrightText: 2014-2015 by Mohamed_Anwer <m_dot_anwer at gmx dot com>
15 * SPDX-FileCopyrightText: 2017 by Simon Frei <freisim93 at gmail dot com>
16 *
17 * SPDX-License-Identifier: GPL-2.0-or-later
18 *
19 * ============================================================ */
20
21#pragma once
22
23#include "itemiconview.h"
24
25// Qt includes
26
27#include <QTimer>
28#include <QShortcut>
29#include <QApplication>
30
31// KDE includes
32
33#include <klocalizedstring.h>
34#include <kconfiggroup.h>
35#include <ksharedconfig.h>
36
37// Local includes
38
39#include "digikam_config.h"
40#include "digikam_debug.h"
41#include "digikam_globals.h"
42#include "albumhistory.h"
43#include "labelstreeview.h"
44#include "albumpointer.h"
45#include "coredbsearchxml.h"
46#include "dbinfoiface.h"
47#include "digikamapp.h"
48#include "digikamitemview.h"
49#include "dfileoperations.h"
50#include "dmessagebox.h"
51#include "dzoombar.h"
52#include "dtrashitemmodel.h"
53#include "facescansettings.h"
54#include "facesdetector.h"
55#include "fileactionmngr.h"
56#include "fileactionprogress.h"
57#include "filtersidebarwidget.h"
58#include "filterstatusbar.h"
59#include "itemalbummodel.h"
60#include "itemdescedittab.h"
61#include "itempreviewview.h"
64#include "itemthumbnailbar.h"
65#include "itemviewutilities.h"
69#include "searchsidebarwidget.h"
71#include "labelssidebarwidget.h"
72#include "peoplesidebarwidget.h"
75#include "metadatahub.h"
76#include "metaenginesettings.h"
78#include "metadataremover.h"
79#include "metadatahubmngr.h"
80#include "newitemsfinder.h"
81#include "queuemgrwindow.h"
82#include "scancontroller.h"
83#include "setup.h"
84#include "sidebar.h"
85#include "statusprogressbar.h"
86#include "tableview.h"
88#include "tagsactionmngr.h"
89#include "tagscache.h"
90#include "tagsmanager.h"
91#include "thumbsgenerator.h"
92#include "trashview.h"
94#include "contextmenuhelper.h"
96#include "dnotificationwidget.h"
97#include "coredb.h"
98#include "coredbaccess.h"
99#include "addtagslineedit.h"
100#include "tagfolderview.h"
101
102#ifdef HAVE_MEDIAPLAYER
103# include "mediaplayerview.h"
104#endif //HAVE_MEDIAPLAYER
105
106#ifdef HAVE_GEOLOCATION
107# include "gpssearchsidebarwidget.h"
108# include "mapwidgetview.h"
109#endif // HAVE_GEOLOCATION
110
111namespace Digikam
112{
113
114class Q_DECL_HIDDEN ItemIconView::Private
115{
116public:
117
118 Private() = default;
119
120public:
121
122 QString userPresentableAlbumTitle(const QString& title) const
123 {
124 if (title == SAlbum::getTemporaryHaarTitle(DatabaseSearch::HaarSketchSearch))
125 {
126 return i18n("Fuzzy Sketch Search");
127 }
128 else if (title == SAlbum::getTemporaryHaarTitle(DatabaseSearch::HaarImageSearch))
129 {
130 return i18n("Fuzzy Image Search");
131 }
132 else if (title == SAlbum::getTemporaryTitle(DatabaseSearch::MapSearch))
133 {
134 return i18n("Map Search");
135 }
136 else if (
137 (title == SAlbum::getTemporaryTitle(DatabaseSearch::AdvancedSearch)) ||
138 (title == SAlbum::getTemporaryTitle(DatabaseSearch::KeywordSearch))
139 )
140 {
141 return i18n("Last Search");
142 }
143 else if (title == SAlbum::getTemporaryTitle(DatabaseSearch::TimeLineSearch))
144 {
145 return i18n("Timeline");
146 }
147
148 return title;
149 }
150
151 void addPageUpDownActions(const ItemIconView* const q, QWidget* const w)
152 {
153 defineShortcut(w, Qt::Key_PageDown, q, SLOT(slotNextItem()));
154 defineShortcut(w, Qt::Key_Down, q, SLOT(slotNextItem()));
155 defineShortcut(w, Qt::Key_Right, q, SLOT(slotNextItem()));
156
157 defineShortcut(w, Qt::Key_PageUp, q, SLOT(slotPrevItem()));
158 defineShortcut(w, Qt::Key_Up, q, SLOT(slotPrevItem()));
159 defineShortcut(w, Qt::Key_Left, q, SLOT(slotPrevItem()));
160 }
161
162public:
163
164 bool useAlbumHistory = false;
165
166 int initialAlbumID = 0;
167 int thumbSize = ThumbnailSize::Medium;
168
169 QMainWindow* dockArea = nullptr;
170
171 SidebarSplitter* splitter = nullptr;
172
173 QTimer* selectionTimer = nullptr;
174 QTimer* thumbSizeTimer = nullptr;
175 QTimer* msgNotifyTimer = nullptr;
176
177 // left side bar
178
179 AlbumFolderViewSideBarWidget* albumFolderSideBar = nullptr;
180 TagViewSideBarWidget* tagViewSideBar = nullptr;
181 LabelsSideBarWidget* labelsSideBar = nullptr;
182 DateFolderViewSideBarWidget* dateViewSideBar = nullptr;
183 TimelineSideBarWidget* timelineSideBar = nullptr;
184 SearchSideBarWidget* searchSideBar = nullptr;
185 FuzzySearchSideBarWidget* fuzzySearchSideBar = nullptr;
186
187#ifdef HAVE_GEOLOCATION
188
189 GPSSearchSideBarWidget* gpsSearchSideBar = nullptr;
190 MapWidgetView* mapView = nullptr;
191
192#endif // HAVE_GEOLOCATION
193
194 PeopleSideBarWidget* peopleSideBar = nullptr;
195 DigikamApp* parent = nullptr;
196 DigikamItemView* iconView = nullptr;
197 TableView* tableView = nullptr;
198 TrashView* trashView = nullptr;
199 ItemViewUtilities* utilities = nullptr;
200 AlbumManager* albumManager = nullptr;
201 AlbumHistory* albumHistory = nullptr;
202 StackedView* stackedView = nullptr;
203 StackedView::StackedViewMode lastViewMode = StackedView::IconViewMode;
204
205 AlbumModificationHelper* albumModificationHelper = nullptr;
206 TagModificationHelper* tagModificationHelper = nullptr;
207 SearchModificationHelper* searchModificationHelper = nullptr;
208
209 Sidebar* leftSideBar = nullptr;
210 ItemPropertiesSideBarDB* rightSideBar = nullptr;
211
212 FilterSideBarWidget* filterWidget = nullptr;
213
214 QList<SidebarWidget*> leftSideBarWidgets;
215
216 DModelFactory* modelCollection = nullptr;
217 AlbumLabelsSearchHandler* labelsSearchHandler = nullptr;
218 DNotificationWidget* errorWidget = nullptr;
219};
220
221} // namespace Digikam
Definition albumfolderviewsidebarwidget.h:33
Definition albumhistory.h:44
Definition albumlabelssearchhandler.h:24
Definition albummanager.h:63
Definition albummodificationhelper.h:36
Definition dmodelfactory.h:39
Definition dnotificationwidget.h:38
Definition datefolderviewsidebarwidget.h:33
Definition digikamapp.h:46
Definition digikamitemview.h:34
Definition filtersidebarwidget.h:54
Definition fuzzysearchsidebarwidget.h:31
Definition gpssearchsidebarwidget.h:33
Definition itemiconview_p.h:115
QString userPresentableAlbumTitle(const QString &title) const
Definition itemiconview_p.h:122
void addPageUpDownActions(const ItemIconView *const q, QWidget *const w)
Definition itemiconview_p.h:151
QList< SidebarWidget * > leftSideBarWidgets
Definition itemiconview_p.h:214
Definition itemiconview.h:51
Definition itempropertiessidebardb.h:45
Definition itemviewutilities.h:34
Definition labelssidebarwidget.h:30
Class containing digiKam's central map view.
Definition mapwidgetview.h:42
Definition peoplesidebarwidget.h:32
Definition searchmodificationhelper.h:49
Definition searchsidebarwidget.h:31
Definition sidebar.h:471
Definition sidebar.h:324
Definition stackedview.h:54
StackedViewMode
Definition stackedview.h:60
Definition tableview.h:49
Definition tagmodificationhelper.h:43
Definition tagviewsidebarwidget.h:33
Definition timelinesidebarwidget.h:33
Definition trashview.h:29
Definition datefolderview.cpp:34
QShortcut * defineShortcut(QWidget *const w, const QKeySequence &key, const QObject *receiver, const char *slot)
Definition digikam_globals.cpp:20