digiKam
Loading...
Searching...
No Matches
importui.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 : 2004-09-16
7 * Description : Camera interface
8 *
9 * SPDX-FileCopyrightText: 2004-2005 by Renchi Raju <renchi dot raju at gmail dot com>
10 * SPDX-FileCopyrightText: 2006-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
11 * SPDX-FileCopyrightText: 2006-2011 by Marcel Wiesweg <marcel dot wiesweg at gmx dot de>
12 * SPDX-FileCopyrightText: 2012 by Islam Wazery <wazery at ubuntu dot com>
13 *
14 * SPDX-License-Identifier: GPL-2.0-or-later
15 *
16 * ============================================================ */
17
18#pragma once
19
20// Qt includes
21
22#include <QDateTime>
23#include <QString>
24#include <QImage>
25#include <QKeyEvent>
26#include <QCloseEvent>
27#include <QMultiMap>
28#include <QUrl>
29
30// Local includes
31
32#include "camiteminfo.h"
33#include "dhistoryview.h"
34#include "dmetadata.h"
35#include "downloadsettings.h"
36#include "importiconview.h"
37#include "dxmlguiwindow.h"
38#include "digikam_export.h"
39
40/*
41#include "camerahistoryupdater.h"
42*/
43
44namespace Digikam
45{
46
47class Album;
48class PAlbum;
49class CollectionLocation;
50class CameraHistoryUpdater;
51class ImportIconView;
52class CameraThumbsCtrl;
53
54class DIGIKAM_GUI_EXPORT ImportUI : public DXmlGuiWindow
55{
56 Q_OBJECT
57
58public:
59
60 explicit ImportUI(const QString& cameraTitle,
61 const QString& model,
62 const QString& port,
63 const QString& path,
64 int startIndex);
65 ~ImportUI() override;
66
67 static ImportUI* instance();
68
69 bool isBusy() const;
70 bool isClosed() const;
71
72 bool cameraDeleteSupport() const;
73 bool cameraUploadSupport() const;
74 bool cameraMkDirSupport() const;
75 bool cameraDelDirSupport() const;
76 bool cameraUseUMSDriver() const;
77 bool cameraUseGPhotoDriver() const;
78 QString cameraTitle() const;
79
80 void enableZoomPlusAction(bool val);
81 void enableZoomMinusAction(bool val);
82
83 DownloadSettings downloadSettings() const;
84
85 CameraThumbsCtrl* getCameraThumbsCtrl() const;
86
87public:
88
90 {
91 return nullptr;
92 };
93
94Q_SIGNALS:
95
96 void signalLastDestination(const QUrl&);
101
102public Q_SLOTS:
103
104 void slotDownload(bool onlySelected, bool deleteAfter, Album* pAlbum = nullptr);
105 void slotUploadItems(const QList<QUrl>&); // public to be used in drag'n'drop
106
107protected:
108
109 void closeEvent(QCloseEvent* e) override;
110 void moveEvent(QMoveEvent* e) override;
111
112private:
113
114 void setupActions();
115 void updateActions();
116 void setupConnections();
117 void setupUserArea();
118 void setupStatusBar();
119 void setupAccelerators();
120 void setupCameraController(const QString& model, const QString& port, const QString& path);
121
122 void readSettings();
123 void saveSettings();
124 bool createAutoAlbum(const QUrl& parentURL, const QString& sub,
125 const QDate& date, QString& errMsg) const;
126
127 bool dialogClosed();
128 void finishDialog();
129 void refreshFreeSpace();
130 void refreshCollectionFreeSpace();
131 void deleteItems(bool onlySelected, bool onlyDownloaded);
132 void toggleLock(CamItemInfo& info);
133 void setDownloaded(CamItemInfo& itemInfo, int status);
134 void itemsSelectionSizeInfo(qint64& fSizeBytes, qint64& dSizeBytes);
135 QMap<QString, int> countItemsByFolders() const;
136 void checkItem4Deletion(const CamItemInfo& info, QStringList& folders, QStringList& files,
137 CamItemInfoList& deleteList, CamItemInfoList& lockedList);
138
139 QString identifyCategoryforMime(const QString& mime);
140
141 bool checkDiskSpace(PAlbum* pAlbum);
142 bool downloadCameraItems(PAlbum* pAlbum, bool onlySelected, bool deleteAfter);
143 bool createSubAlbums(QUrl& downloadUrl, const QString& suffix, const QDateTime& dateTime);
144 bool createSubAlbum(QUrl& downloadUrl, const QString& subalbum, const QDate& date);
145 bool createDateBasedSubAlbum(QUrl& downloadUrl, const QDateTime& dateTime);
146 bool createExtBasedSubAlbum(QUrl& downloadUrl, const QString& suffix, const QDate& date);
147 void postProcessAfterDownload();
148
149
150 void showThumbBar(bool visible) override;
151 void showSideBars(bool visible) override;
152 bool thumbbarVisibility() const override;
153 void customizedFullScreenMode(bool set) override;
154 void toogleShowBar();
155 void setInitialSorting();
156 void sidebarTabTitleStyleChanged();
157 void updateRightSideBar(const CamItemInfo& info);
158
159private Q_SLOTS:
160
161 void slotClose();
162 void slotCancelButton();
163
164 void slotShowLog();
165 void slotConnected(bool val);
166 void slotBusy(bool val);
167 void slotLogMsg(const QString& msg, DHistoryView::EntryType type,
168 const QString& folder = QString(), const QString& file = QString());
169 void slotInformation();
170 void slotCapture();
171 void slotCameraInformation(const QString&, const QString&, const QString&);
172 void slotCameraFreeSpaceInfo(qint64 bytesSize, qint64 bytesAvail);
173 void slotCollectionLocationStatusChanged(const CollectionLocation& location, int oldStatus);
174 void slotHistoryEntryClicked(const QVariant&);
175
176 void slotFolderList(const QStringList& folderList);
177
178 void slotZoomSliderChanged(int size);
179 void slotZoomChanged(double zoom);
180 void slotThumbSizeChanged(int size);
181
182 void slotUpload();
183
184 void slotDownloadNew();
185 void slotDownloadSelected();
186 void slotDownloadAll();
187
188 void slotDownloadAndDeleteNew();
189 void slotDownloadAndDeleteSelected();
190 void slotDownloadAndDeleteAll();
191
192 void slotDeleteAfterDownload();
193 void slotDeleteSelected();
194 void slotDeleteNew();
195 void slotDeleteAll();
196
197 void slotToggleLock();
198 void slotMarkAsDownloaded();
199
200 void slotUploaded(const CamItemInfo&);
201 void slotDownloaded(const QString&, const QString&, const QString&, int);
202 void slotDeleted(const QString&, const QString&, bool);
203 void slotLocked(const QString&, const QString&, bool);
204
205 void slotUpdateRenamePreview();
206 void slotSelectNew();
207 void slotSelectLocked();
208 void slotProgressTimerDone();
209
210 void slotNewSelection(bool);
211 void slotImageSelected(const CamItemInfoList& selection, const CamItemInfoList& listAll);
212
213 void slotSwitchedToPreview();
214 void slotSwitchedToIconView();
215 void slotSwitchedToMapView();
216
217 void slotMetadata(const QString& folder, const QString& file, const MetaEngineData& meta);
218
219 void setFilter(Filter*);
220
221 void slotToggleShowBar();
222 void slotColorManagementOptionsChanged();
223 void slotToggleColorManagedView();
224 void slotSetup() override;
225 void slotComponentsInfo() override;
226 void slotDBStat() override;
227 void slotOnlineVersionCheck() override;
228 void slotToggleRightSideBar() override;
229 void slotPreviousRightSideBarTab() override;
230 void slotNextRightSideBarTab() override;
231
232 void slotSetupChanged();
233
234private:
235
236 // Disable
237 ImportUI(QWidget*) = delete;
238
239private:
240
241 class Private;
242 Private* const d = nullptr;
243
244 static ImportUI* m_instance;
245};
246
247} // namespace Digikam
Abstract base class for all album types.
Definition album.h:57
Definition camiteminfo.h:39
Definition camerathumbsctrl.h:38
Definition collectionlocation.h:31
EntryType
Definition dhistoryview.h:38
Definition dinfointerface.h:48
Definition dpluginaction.h:30
Definition dxmlguiwindow.h:84
Definition downloadsettings.h:35
Definition importfilter.h:34
Definition importui_p.h:153
Definition importui.h:55
DInfoInterface * infoIface(DPluginAction *const) override
Definition importui.h:89
void signalWindowHasMoved()
void signalNewSelection(bool)
void signalEscapePressed()
void signalPreviewRequested(const CamItemInfo &, bool)
void signalLastDestination(const QUrl &)
Definition metaengine_data.h:31
Definition album.h:357
QStringView suffix
Definition itemviewutilities.cpp:587
@ Album
Definition coredbfields.h:48
Definition datefolderview.cpp:34
QList< CamItemInfo > CamItemInfoList
Definition camiteminfo.h:116