digiKam
Loading...
Searching...
No Matches
editorwindow_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 : 2006-01-20
7 * Description : core image editor GUI implementation private data.
8 *
9 * SPDX-FileCopyrightText: 2006-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
10 *
11 * SPDX-License-Identifier: GPL-2.0-or-later
12 *
13 * ============================================================ */
14
15#pragma once
16
17#include "editorwindow.h"
18
19// C++ includes
20
21#include <cmath>
22
23// Qt includes
24
25#include <QApplication>
26#include <QByteArray>
27#include <QCursor>
28#include <QDir>
29#include <QEasingCurve>
30#include <QEventLoop>
31#include <QFile>
32#include <QFileInfo>
33#include <QGridLayout>
34#include <QGroupBox>
35#include <QHBoxLayout>
36#include <QImageReader>
37#include <QKeyEvent>
38#include <QLabel>
39#include <QLayout>
40#include <QPointer>
41#include <QProgressBar>
42#include <QSplitter>
43#include <QTimer>
44#include <QToolButton>
45#include <QVBoxLayout>
46#include <QWidgetAction>
47#include <QButtonGroup>
48#include <QLineEdit>
49#include <QKeySequence>
50#include <QPushButton>
51#include <QAction>
52#include <QMenuBar>
53#include <QStatusBar>
54#include <QMenu>
55#include <QIcon>
56#include <QList>
57#include <QString>
58
59// KDE includes
60
61// Pragma directives to reduce warnings from KDE header files.
62#if defined(Q_CC_GNU)
63# pragma GCC diagnostic push
64# pragma GCC diagnostic ignored "-Wdeprecated-declarations"
65#endif
66
67#if defined(Q_CC_CLANG)
68# pragma clang diagnostic push
69# pragma clang diagnostic ignored "-Wmismatched-tags"
70# pragma clang diagnostic ignored "-Wdeprecated-declarations"
71#endif
72
73#include <klocalizedstring.h>
74#include <kactioncategory.h>
75#include <kactioncollection.h>
76#include <ktoolbarpopupaction.h>
77#include <kxmlguifactory.h>
78#include <kconfiggroup.h>
79#include <kservice.h>
80#include <ksharedconfig.h>
81
82#ifdef HAVE_KIO
83# include <kopenwithdialog.h>
84#endif
85
86// Restore warnings
87#if defined(Q_CC_GNU)
88# pragma GCC diagnostic pop
89#endif
90
91#if defined(Q_CC_CLANG)
92# pragma clang diagnostic pop
93#endif
94
95// Local includes
96
97#include "digikam_config.h"
98#include "digikam_debug.h"
99#include "digikam_globals.h"
100#include "dmessagebox.h"
102#include "canvas.h"
103#include "colorcorrectiondlg.h"
104#include "editorcore.h"
105#include "dlogoaction.h"
106#include "dmetadata.h"
107#include "dzoombar.h"
108#include "drawdecoderwidget.h"
109#include "editorstackview.h"
110#include "editortool.h"
111#include "editortoolsettings.h"
112#include "editortooliface.h"
113#include "exposurecontainer.h"
114#include "dfileoperations.h"
115#include "dservicemenu.h"
116#include "filereadwritelock.h"
117#include "filesaveoptionsbox.h"
118#include "filesaveoptionsdlg.h"
120#include "iccsettings.h"
121#include "iccsettingscontainer.h"
122#include "icctransform.h"
123#include "imagedialog.h"
124#include "iofilesettings.h"
125#include "metaenginesettings.h"
126#include "libsinfodlg.h"
128#include "savingcontext.h"
129#include "sidebar.h"
130#include "softproofdialog.h"
131#include "statusprogressbar.h"
132#include "thememanager.h"
133#include "thumbnailsize.h"
134#include "thumbnailloadthread.h"
136#include "undostate.h"
137#include "dfiledialog.h"
138#include "dexpanderbox.h"
139#include "imageiface.h"
140#include "versionmanager.h"
141#include "dnotificationpopup.h"
142#include "dimgloader.h"
143#include "categorizeditemmodel.h"
144
145namespace Digikam
146{
147
148class Q_DECL_HIDDEN EditorWindow::Private
149{
150public:
151
152 Private() = default;
153 ~Private() = default;
154
155 void plugNewVersionInFormatAction(EditorWindow* const q,
156 QMenu* const menuAction,
157 const QString& text,
158 const QString& format);
159
160public:
161
162 const QString configAutoZoomEntry = QLatin1String("AutoZoom");
163 const QString configBackgroundColorEntry = QLatin1String("BackgroundColor");
164 const QString configJpegCompressionEntry = QLatin1String("JPEGCompression");
165 const QString configJpegSubSamplingEntry = QLatin1String("JPEGSubSampling");
166 const QString configPngCompressionEntry = QLatin1String("PNGCompression");
167 const QString configTiffCompressionEntry = QLatin1String("TIFFCompression");
168 const QString configJpeg2000CompressionEntry = QLatin1String("JPEG2000Compression");
169 const QString configJpeg2000LossLessEntry = QLatin1String("JPEG2000LossLess");
170 const QString configPgfCompressionEntry = QLatin1String("PGFCompression");
171 const QString configPgfLossLessEntry = QLatin1String("PGFLossLess");
172 const QString configHeifCompressionEntry = QLatin1String("HEIFCompression");
173 const QString configHeifLossLessEntry = QLatin1String("HEIFLossLess");
174 const QString configJxlCompressionEntry = QLatin1String("JXLCompression");
175 const QString configJxlLossLessEntry = QLatin1String("JXLLossLess");
176 const QString configWebpCompressionEntry = QLatin1String("WEBPCompression");
177 const QString configWebpLossLessEntry = QLatin1String("WEBPLossLess");
178 const QString configAvifCompressionEntry = QLatin1String("AVIFCompression");
179 const QString configAvifLossLessEntry = QLatin1String("AVIFLossLess");
180 const QString configUnderExposureColorEntry = QLatin1String("UnderExposureColor");
181 const QString configUnderExposureIndicatorEntry = QLatin1String("UnderExposureIndicator");
182 const QString configUnderExposurePercentsEntry = QLatin1String("UnderExposurePercentsEntry");
183 const QString configOverExposureColorEntry = QLatin1String("OverExposureColor");
184 const QString configOverExposureIndicatorEntry = QLatin1String("OverExposureIndicator");
185 const QString configOverExposurePercentsEntry = QLatin1String("OverExposurePercentsEntry");
186 const QString configExpoIndicatorModeEntry = QLatin1String("ExpoIndicatorMode");
187 const QString configUseRawImportToolEntry = QLatin1String("UseRawImportTool");
188 const QString configRawImportToolIidEntry = QLatin1String("RawImportToolIid");
189 const QString configUseThemeBackgroundColorEntry = QLatin1String("UseThemeBackgroundColor");
190 const QString configVerticalSplitterStateEntry = QLatin1String("Vertical Splitter State");
191
192 QToolButton* cmViewIndicator = nullptr;
193 QToolButton* underExposureIndicator = nullptr;
194 QToolButton* overExposureIndicator = nullptr;
195
196 DAdjustableLabel* infoLabel = nullptr;
197
198 QAction* copyAction = nullptr;
199 QAction* cropAction = nullptr;
200 QAction* flipHorizAction = nullptr;
201 QAction* flipVertAction = nullptr;
202 QAction* rotateLeftAction = nullptr;
203 QAction* rotateRightAction = nullptr;
204 QAction* selectAllAction = nullptr;
205 QAction* selectNoneAction = nullptr;
206 QAction* softProofOptionsAction = nullptr;
207 QAction* zoomFitToSelectAction = nullptr;
208 QAction* zoomMinusAction = nullptr;
209 QAction* zoomPlusAction = nullptr;
210 QAction* zoomTo100percents = nullptr;
211 QAction* openWithAction = nullptr;
212
213 QEventLoop* waitingLoop = nullptr;
214 QDialog* currentWindowModalDialog = nullptr;
215
216 QAction* zoomFitToWindowAction = nullptr;
217 QAction* viewCMViewAction = nullptr;
218 QAction* viewSoftProofAction = nullptr;
219 QAction* viewUnderExpoAction = nullptr;
220 QAction* viewOverExpoAction = nullptr;
221
222 ActionCategorizedView* selectToolsActionView = nullptr;
223
224 ICCSettingsContainer* ICCSettings = nullptr;
225
226 DZoomBar* zoomBar = nullptr;
227 PreviewToolBar* previewToolBar = nullptr;
228
229 ExposureSettingsContainer* exposureSettings = nullptr;
230
231 EditorToolIface* toolIface = nullptr;
232
234
236
237 QMap<QString, KService::Ptr> servicesMap;
238 QMap<QString, DServiceInfo> newServicesMap;
239};
240
242 QMenu* const menuAction,
243 const QString& text,
244 const QString& format)
245{
246 QAction* const action = new QAction(text, q);
247
248 connect(action, &QAction::triggered,
249 q, [q, format]()
250 {
251 q->saveNewVersionInFormat(format);
252 }
253 );
254
255 menuAction->addAction(action);
256}
257
258} // namespace Digikam
Definition actioncategorizedview.h:32
Definition dexpanderbox.h:56
Definition dzoombar.h:32
Definition editortooliface.h:35
Definition editorwindow_p.h:149
QMap< QString, DServiceInfo > newServicesMap
Definition editorwindow_p.h:238
QMap< QString, KService::Ptr > servicesMap
Definition editorwindow_p.h:237
void plugNewVersionInFormatAction(EditorWindow *const q, QMenu *const menuAction, const QString &text, const QString &format)
Definition editorwindow_p.h:241
QList< int > fullscreenSizeBackup
Definition editorwindow_p.h:235
VersionManager defaultVersionManager
Definition editorwindow_p.h:233
Definition editorwindow.h:68
virtual bool saveNewVersionInFormat(const QString &)=0
Definition exposurecontainer.h:29
Definition iccsettingscontainer.h:35
Definition previewtoolbar.h:34
Definition versionmanager.h:36
Definition datefolderview.cpp:34