digiKam
Loading...
Searching...
No Matches
applicationsettings_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 : 2003-16-10
7 * Description : application settings interface
8 *
9 * SPDX-FileCopyrightText: 2003-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
10 * SPDX-FileCopyrightText: 2015 by Mohamed_Anwer <m_dot_anwer at gmx dot com>
11 * SPDX-FileCopyrightText: 2017 by Simon Frei <freisim93 at gmail dot com>
12 *
13 * SPDX-License-Identifier: GPL-2.0-or-later
14 *
15 * ============================================================ */
16
17#pragma once
18
19#include "applicationsettings.h"
20
21// C++ includes
22
23#include <stdexcept>
24
25// Qt includes
26
27#include <QApplication>
28#include <QFontDatabase>
29#include <QString>
30#include <QStringList>
31#include <QFont>
32#include <QCheckBox>
33#include <QPointer>
34#include <QMessageBox>
35
36// KDE includes
37
38#include <klocalizedstring.h>
39#include <ksharedconfig.h>
40#include <kconfiggroup.h>
41
42#ifdef HAVE_KFILEMETADATA
43# include "baloowrap.h"
44#endif
45
46// Local includes
47
48#include "digikam_debug.h"
49#include "previewsettings.h"
50#include "dbengineparameters.h"
51#include "imagezoomsettings.h"
52#include "versionmanager.h"
53#include "itemfiltersettings.h"
54#include "itemsortsettings.h"
55#include "mimefilter.h"
56#include "thumbnailsize.h"
57#include "thememanager.h"
58#include "drawdecoder.h"
59#include "coredbaccess.h"
60#include "coredb.h"
61
62namespace Digikam
63{
64
65class ApplicationSettings;
66
67class Q_DECL_HIDDEN ApplicationSettings::Private
68{
69public:
70
71 explicit Private(ApplicationSettings* const qq);
72 ~Private() = default;
73
74 void init();
75
76public:
77
78 const QString configGroupDefault = QLatin1String("Album Settings");
79 const QString configGroupExif = QLatin1String("EXIF Settings");
80 const QString configGroupMetadata = QLatin1String("Metadata Settings");
81 const QString configGroupBaloo = QLatin1String("Baloo Settings");
82 const QString configGroupGeneral = QLatin1String("General Settings");
83 const QString configGroupVersioning = QLatin1String("Versioning Settings");
84 const QString configGroupFaceDetection = QLatin1String("Face Detection Settings");
85 const QString configGroupDuplicatesSearch = QLatin1String("Find Duplicates View");
86 const QString configGroupGrouping = QLatin1String("Grouping Behaviour");
87 const QString configAlbumCollectionsEntry = QLatin1String("Album Collections");
88 const QString configAlbumMonitoringEntry = QLatin1String("Album Monitoring");
89 const QString configAlbumSortRoleEntry = QLatin1String("Album Sort Role");
90 const QString configImageSortOrderEntry = QLatin1String("Image Sort Order");
91 const QString configImageSortingEntry = QLatin1String("Image Sorting");
92 const QString configImageSeparationModeEntry = QLatin1String("Image Group Mode");
93 const QString configImageSeparationSortOrderEntry = QLatin1String("Image Group Sort Order");
94 const QString configItemLeftClickActionEntry = QLatin1String("Item Left Click Action");
95 const QString configDefaultIconSizeEntry = QLatin1String("Default Icon Size");
96 const QString configDefaultTreeIconSizeEntry = QLatin1String("Default Tree Icon Size");
97 const QString configDefaultTreeFaceSizeEntry = QLatin1String("Default Tree Face Size");
98 const QString configTreeViewFontEntry = QLatin1String("TreeView Font");
99 const QString configThemeEntry = QLatin1String("Theme");
100 const QString configUpdateType = QLatin1String("Update Type");
101 const QString configUpdateWithDebug = QLatin1String("Update With Debug");
102 const QString configSidebarTitleStyleEntry = QLatin1String("Sidebar Title Style");
103 const QString configRatingFilterConditionEntry = QLatin1String("Rating Filter Condition");
104 const QString configRecursiveAlbumsEntry = QLatin1String("Recursive Albums");
105 const QString configRecursiveTagsEntry = QLatin1String("Recursive Tags");
106 const QString configAllGroupsOpenEntry = QLatin1String("All Groups Open");
107 const QString configIconShowNameEntry = QLatin1String("Icon Show Name");
108 const QString configIconShowResolutionEntry = QLatin1String("Icon Show Resolution");
109 const QString configIconShowSizeEntry = QLatin1String("Icon Show Size");
110 const QString configIconShowDateEntry = QLatin1String("Icon Show Date");
111 const QString configIconShowModificationDateEntry = QLatin1String("Icon Show Modification Date");
112 const QString configIconShowTitleEntry = QLatin1String("Icon Show Title");
113 const QString configIconShowCommentsEntry = QLatin1String("Icon Show Comments");
114 const QString configIconShowTagsEntry = QLatin1String("Icon Show Tags");
115 const QString configIconShowRatingEntry = QLatin1String("Icon Show Rating");
116 const QString configIconShowPickLabelEntry = QLatin1String("Icon Show Pick Label");
117 const QString configIconShowColorLabelEntry = QLatin1String("Icon Show Color Label");
118 const QString configIconShowImageFormatEntry = QLatin1String("Icon Show Image Format");
119 const QString configIconShowCoordinatesEntry = QLatin1String("Icon Show Coordinates");
120 const QString configIconShowAspectRatioEntry = QLatin1String("Icon Show Aspect Ratio");
121 const QString configIconShowOverlaysEntry = QLatin1String("Icon Show Overlays");
122 const QString configIconShowFullscreenEntry = QLatin1String("Icon Show Fullscreen");
123 const QString configIconViewFontEntry = QLatin1String("IconView Font");
124 const QString configToolTipsFontEntry = QLatin1String("ToolTips Font");
125 const QString configShowToolTipsEntry = QLatin1String("Show ToolTips");
126 const QString configToolTipsShowFileNameEntry = QLatin1String("ToolTips Show File Name");
127 const QString configToolTipsShowFileDateEntry = QLatin1String("ToolTips Show File Date");
128 const QString configToolTipsShowFileSizeEntry = QLatin1String("ToolTips Show File Size");
129 const QString configToolTipsShowImageTypeEntry = QLatin1String("ToolTips Show Image Type");
130 const QString configToolTipsShowImageDimEntry = QLatin1String("ToolTips Show Image Dim");
131 const QString configToolTipsShowImageAREntry = QLatin1String("ToolTips Show Image AR");
132 const QString configToolTipsShowPhotoMakeEntry = QLatin1String("ToolTips Show Photo Make");
133 const QString configToolTipsShowPhotoLensEntry = QLatin1String("ToolTips Show Photo Lens");
134 const QString configToolTipsShowPhotoDateEntry = QLatin1String("ToolTips Show Photo Date");
135 const QString configToolTipsShowPhotoFocalEntry = QLatin1String("ToolTips Show Photo Focal");
136 const QString configToolTipsShowPhotoExpoEntry = QLatin1String("ToolTips Show Photo Expo");
137 const QString configToolTipsShowPhotoModeEntry = QLatin1String("ToolTips Show Photo Mode");
138 const QString configToolTipsShowPhotoFlashEntry = QLatin1String("ToolTips Show Photo Flash");
139 const QString configToolTipsShowPhotoWBEntry = QLatin1String("ToolTips Show Photo WB");
140 const QString configToolTipsShowAlbumNameEntry = QLatin1String("ToolTips Show Album Name");
141 const QString configToolTipsShowTitlesEntry = QLatin1String("ToolTips Show Titles");
142 const QString configToolTipsShowCommentsEntry = QLatin1String("ToolTips Show Comments");
143 const QString configToolTipsShowTagsEntry = QLatin1String("ToolTips Show Tags");
144 const QString configToolTipsShowLabelRatingEntry = QLatin1String("ToolTips Show Label Rating");
145 const QString configToolTipsShowVideoAspectRatioEntry = QLatin1String("ToolTips Show Video Aspect Ratio");
146 const QString configToolTipsShowVideoAudioBitRateEntry = QLatin1String("ToolTips Show Audio Bit Rate");
147 const QString configToolTipsShowVideoAudioChannelTypeEntry = QLatin1String("ToolTips Show Audio Channel Type");
148 const QString configToolTipsShowVideoAudioCodecEntry = QLatin1String("ToolTips Show Audio Codec");
149 const QString configToolTipsShowVideoDurationEntry = QLatin1String("ToolTips Show Video Duration");
150 const QString configToolTipsShowVideoFrameRateEntry = QLatin1String("ToolTips Show Video Frame Rate");
151 const QString configToolTipsShowVideoVideoCodecEntry = QLatin1String("ToolTips Show Video Codec");
152 const QString configShowAlbumToolTipsEntry = QLatin1String("Show Album ToolTips");
153 const QString configToolTipsShowAlbumTitleEntry = QLatin1String("ToolTips Show Album Title");
154 const QString configToolTipsShowAlbumDateEntry = QLatin1String("ToolTips Show Album Date");
155 const QString configToolTipsShowAlbumCollectionEntry = QLatin1String("ToolTips Show Album Collection");
156 const QString configToolTipsShowAlbumCategoryEntry = QLatin1String("ToolTips Show Album Category");
157 const QString configToolTipsShowAlbumCaptionEntry = QLatin1String("ToolTips Show Album Caption");
158 const QString configToolTipsShowAlbumPreviewEntry = QLatin1String("ToolTips Show Album Preview");
159 const QString configPreviewLoadFullItemSizeEntry = QLatin1String("Preview Load Full Image Size");
160 const QString configPreviewRawUseLoadingDataEntry = QLatin1String("Preview Raw Use Loading Data");
161 const QString configPreviewConvertToEightBitEntry = QLatin1String("Preview Convert To Eight Bit");
162 const QString configPreviewImageSmoothScaledEntry = QLatin1String("Preview Image Smooth Scaled");
163 const QString configPreviewScaleFitToWindowEntry = QLatin1String("Preview Scale Fit To Window");
164 const QString configPreviewShowIconsEntry = QLatin1String("Preview Show Icons");
165 const QString configShowThumbbarEntry = QLatin1String("Show Thumbbar");
166 const QString configShowFolderTreeViewItemsCountEntry = QLatin1String("Show Folder Tree View Items Count");
167 const QString configShowSplashEntry = QLatin1String("Show Splash");
168 const QString configUseTrashEntry = QLatin1String("Use Trash");
169 const QString configShowTrashDeleteDialogEntry = QLatin1String("Show Trash Delete Dialog");
170 const QString configShowPermanentDeleteDialogEntry = QLatin1String("Show Permanent Delete Dialog");
171 const QString configApplySidebarChangesDirectlyEntry = QLatin1String("Apply Sidebar Changes Directly");
172 const QString configUseNativeFileDialogEntry = QLatin1String("Use Native File Dialog");
173 const QString configDrawFramesToGroupedEntry = QLatin1String("Draw Frames To Grouped Items");
174 const QString configSelectFirstAlbumItemEntry = QLatin1String("Select First Album Item");
175 const QString configExpandNewCurrentItemEntry = QLatin1String("Expand New Current Item On Click");
176 const QString configScrollItemToCenterEntry = QLatin1String("Scroll Current Item To Center");
177 const QString configShowOnlyPersonTagsInPeopleSidebarEntry = QLatin1String("Show Only Face Tags For Assigning Name");
178 const QString configDetectFacesInNewImagesEntry = QLatin1String("Detect faces in newly added images");
179 const QString configSyncBalootoDigikamEntry = QLatin1String("Sync Baloo to Digikam");
180 const QString configSyncDigikamtoBalooEntry = QLatin1String("Sync Digikam to Baloo");
181 const QString configStringComparisonTypeEntry = QLatin1String("String Comparison Type");
182 const QString configFaceDetectionAccuracyEntry = QLatin1String("Face Detection Accuracy");
183 const QString configFaceDetectionModelEntry = QLatin1String("Face Detection Model");
184 const QString configFaceDetectionSizeEntry = QLatin1String("Face Detection Size");
185 const QString configFaceRecognitionAccuracyEntry = QLatin1String("Face Recognition Accuracy");
186 const QString configFaceRecognitionModelEntry = QLatin1String("Face Recognition Model");
187 const QString configApplicationStyleEntry = QLatin1String("Application Style");
188 const QString configIconThemeEntry = QLatin1String("Icon Theme");
189 const QString configApplicationFontEntry = QLatin1String("Application Font");
190 const QString configScanAtStartEntry = QLatin1String("Scan At Start");
191 const QString configCleanAtStartEntry = QLatin1String("Clean core DB At Start");
192 const QString configMinimumSimilarityBound = QLatin1String("Lower bound for minimum similarity");
193 const QString configDuplicatesSearchLastMinSimilarity = QLatin1String("Last minimum similarity");
194 const QString configDuplicatesSearchLastMaxSimilarity = QLatin1String("Last maximum similarity");
195 const QString configDuplicatesSearchLastAlbumTagRelation = QLatin1String("Last search album tag relation");
196 const QString configDuplicatesSearchLastRestrictions = QLatin1String("Last search results restriction");
197 const QString configDuplicatesSearchReferenceSelectionMethod = QLatin1String("Last reference image method");
198
199public:
200
202 bool showSplash = true;
204 bool useTrash = true;
205 bool showTrashDeleteDialog = true;
206 bool showPermanentDeleteDialog = true;
208 bool sidebarApplyDirectly = false;
210 bool useNativeFileDialog = false;
212 bool drawFramesToGrouped = true;
214 bool selectFirstAlbumItem = true;
216 bool expandNewCurrentItem = true;
218 bool scrollItemToCenter = false;
220 bool showOnlyPersonTagsInPeopleSidebar = false;
221
222 bool detectFacesInNewImages = false;
223
225 bool iconShowName = true;
226 bool iconShowSize = false;
227 bool iconShowDate = true;
228 bool iconShowModDate = false;
229 bool iconShowTitle = true;
230 bool iconShowComments = true;
231 bool iconShowResolution = false;
232 bool iconShowAspectRatio = false;
233 bool iconShowTags = true;
234 bool iconShowOverlays = true;
235 bool iconShowFullscreen = true;
236 bool iconShowRating = true;
237 bool iconShowPickLabel = false;
238 bool iconShowColorLabel = true;
239 bool iconShowImageFormat = true;
240 bool iconShowCoordinates = true;
241 QFont iconviewFont = QFontDatabase::systemFont(QFontDatabase::GeneralFont);
242
244 bool showToolTips = false;
245 bool tooltipShowFileName = true;
246 bool tooltipShowFileDate = false;
247 bool tooltipShowFileSize = false;
248 bool tooltipShowImageType = false;
249 bool tooltipShowImageDim = true;
250 bool tooltipShowImageAR = true;
251 bool tooltipShowPhotoMake = true;
252 bool tooltipShowPhotoLens = true;
253 bool tooltipShowPhotoDate = true;
254 bool tooltipShowPhotoFocal = true;
255 bool tooltipShowPhotoExpo = true;
256 bool tooltipShowPhotoMode = true;
257 bool tooltipShowPhotoFlash = false;
258 bool tooltipShowPhotoWb = false;
259 bool tooltipShowAlbumName = false;
260 bool tooltipShowTitles = false;
261 bool tooltipShowComments = true;
262 bool tooltipShowTags = true;
263 bool tooltipShowLabelRating = true;
264 bool tooltipShowVideoAspectRatio = true;
265 bool tooltipShowVideoAudioBitRate = true;
266 bool tooltipShowVideoAudioChannelType = true;
267 bool tooltipShowVideoAudioCodec = true;
268 bool tooltipShowVideoDuration = true;
269 bool tooltipShowVideoFrameRate = true;
270 bool tooltipShowVideoVideoCodec = true;
271
272 QFont toolTipsFont = QFontDatabase::systemFont(QFontDatabase::GeneralFont);
273
275 bool showAlbumToolTips = false;
276 bool tooltipShowAlbumTitle = true;
277 bool tooltipShowAlbumDate = true;
278 bool tooltipShowAlbumCollection = true;
279 bool tooltipShowAlbumCategory = true;
280 bool tooltipShowAlbumCaption = true;
281 bool tooltipShowAlbumPreview = false;
282
285 bool imageSmoothScaled = true;
286 bool scaleFitToWindow = false;
287 bool previewShowIcons = true;
288 bool showThumbbar = true;
289
290 bool showFolderTreeViewItemsCount = false;
291
293 int treeThumbnailSize = 22;
294 int treeThumbFaceSize = 48;
295 QFont treeviewFont = QFontDatabase::systemFont(QFontDatabase::GeneralFont);
296
298 int thumbnailSize = ThumbnailSize::Medium;
299 int ratingFilterCond = ItemFilterSettings::GreaterEqualCondition;
300 bool recursiveAlbums = false;
301 bool recursiveTags = true;
302 bool allGroupsOpen = false;
303
306
309 bool scanAtStart = true;
310 bool cleanAtStart = true;
311 bool databaseDirSetAtCmd = false;
312
314 bool albumMonitoring = false;
315
317
318 KSharedConfigPtr config;
319
320 int updateType = 0;
321 bool updateWithDebug = false;
322 DMultiTabBar::TextStyle sidebarTitleStyle = DMultiTabBar::AllIconsText;
323
325 ApplicationSettings::AlbumSortRole albumSortRole = ApplicationSettings::ByFolder;
326
328 int imageSortOrder = ItemSortSettings::SortByFileName;
329 int imageSorting = ItemSortSettings::AscendingOrder;
330 int imageSeparationMode = ItemSortSettings::CategoryByAlbum;
331 int imageSeparationSortOrder = ItemSortSettings::AscendingOrder;
332 int itemLeftClickAction = ApplicationSettings::ShowPreview;
333
335 bool syncToDigikam = false;
336 bool syncToBaloo = false;
337
339
341
343 int faceDetectionAccuracy = 7;
344 FaceScanSettings::FaceDetectionModel faceDetectionModel = FaceScanSettings::FaceDetectionModel::YuNet;
345 FaceScanSettings::FaceDetectionSize faceDetectionSize = FaceScanSettings::FaceDetectionSize::Medium;
346
348 int faceRecognitionAccuracy = 7;
349 FaceScanSettings::FaceRecognitionModel faceRecognitionModel = FaceScanSettings::FaceRecognitionModel::SFace;
350
352 ApplicationSettings::StringComparisonType stringComparisonType = ApplicationSettings::Natural;
353 QString applicationStyle = qApp->style()->objectName();
355 QFont applicationFont = QFontDatabase::systemFont(QFontDatabase::GeneralFont);
356
357 int minimumSimilarityBound = 40;
358 int duplicatesSearchLastMinSimilarity = 90;
359 int duplicatesSearchLastMaxSimilarity = 100;
360 int duplicatesSearchLastAlbumTagRelation = 0;
361 int duplicatesSearchLastRestrictions = 0;
362 HaarIface::RefImageSelMethod duplicatesSearchLastReferenceImageSelectionMethod = HaarIface::RefImageSelMethod::OlderOrLarger;
363
366
367private:
368
369 ApplicationSettings* q = nullptr;
370
371private:
372
373 ApplicationSettings::OperationStrings createConfigGroupingOperateOnAll();
374
375public:
376
377 const ApplicationSettings::OperationStrings configGroupingOperateOnAll = createConfigGroupingOperateOnAll();
378};
379
380} // namespace Digikam
Definition applicationsettings_p.h:68
QString applicationIcon
Definition applicationsettings_p.h:354
QString currentTheme
theme settings
Definition applicationsettings_p.h:305
DbEngineParameters databaseParams
database settings
Definition applicationsettings_p.h:308
PreviewSettings previewSettings
preview settings
Definition applicationsettings_p.h:284
KSharedConfigPtr config
Definition applicationsettings_p.h:318
VersionManagerSettings versionSettings
versioning settings
Definition applicationsettings_p.h:340
QStringList albumCategoryNames
Definition applicationsettings_p.h:316
Definition applicationsettings.h:49
StringComparisonType
Definition applicationsettings.h:73
QHash< OperationType, QString > OperationStrings
Definition applicationsettings.h:92
AlbumSortRole
Definition applicationsettings.h:55
QHash< OperationType, ApplicationSettings::ApplyToEntireGroup > OperationModes
Definition applicationsettings.h:93
TextStyle
Definition sidebar.h:57
Definition dbengineparameters.h:39
FaceDetectionSize
Definition facescansettings.h:76
FaceRecognitionModel
Definition facescansettings.h:89
FaceDetectionModel
Definition facescansettings.h:65
RefImageSelMethod
The RefImageSelMethod enum Selection method to determine which image will be the reference in the dup...
Definition haariface.h:100
Definition previewsettings.h:25
Definition versionmanagersettings.h:33
Definition datefolderview.cpp:34