digiKam
Loading...
Searching...
No Matches
iccsettings_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 : 2009-08-09
7 * Description : central place for ICC settings - Private header.
8 *
9 * SPDX-FileCopyrightText: 2005-2006 by F.J. Cruz <fj dot cruz at supercable dot es>
10 * SPDX-FileCopyrightText: 2005-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
11 * SPDX-FileCopyrightText: 2009-2011 by Marcel Wiesweg <marcel dot wiesweg at gmx dot de>
12 *
13 * SPDX-License-Identifier: GPL-2.0-or-later
14 *
15 * ============================================================ */
16
17#pragma once
18
19#include "iccsettings.h"
20#include "digikam_config.h"
21
22// Qt includes
23
24#include <QApplication>
25#include <QScreen>
26#include <QPointer>
27#include <QWidget>
28#include <QWindow>
29#include <QDir>
30#include <QFileInfo>
31#include <QMutex>
32#include <QMutexLocker>
33
34// KDE includes
35
36#include <kconfiggroup.h>
37#include <ksharedconfig.h>
38
39// Local includes
40
41#include "digikam_debug.h"
42#include "iccprofile.h"
43#include "icctransform.h"
44
45namespace Digikam
46{
47
48class Q_DECL_HIDDEN IccSettings::Private
49{
50public:
51
52 Private();
53
54 QList<IccProfile> scanDirectories(const QStringList& dirs);
55 void scanDirectory(const QString& path, const QStringList& filter, QList<IccProfile>* const profiles);
56
57 IccProfile profileFromWindowSystem(QWidget* const widget);
58
59 ICCSettingsContainer readFromConfig() const;
60 void writeToConfig() const;
61 void writeManagedViewToConfig() const;
62 void writeManagedPreviewsToConfig() const;
63
64public:
65
67 QMutex mutex;
68
69 QList<IccProfile> profiles;
70
71 QHash<int, IccProfile> screenProfiles;
72
73 const QString configGroup;
74
75#if (QT_VERSION >= QT_VERSION_CHECK(6, 0, 0))
76
77# ifdef HAVE_X11
78
79private:
80
81 // X11 helper functions for Qt6 support.
82 // Imported from https://code.qt.io/cgit/qt/qtx11extras.git/tree/src/x11extras/qx11info_x11.cpp?h=v5.15.2#n92
83
84 // TODO: these functions use private API from Qt6 (QPlatformNativeInterface) and need to be ported later to XCB API.
85 // See this url for details: https://www.x.org/releases/X11R7.6/doc/libxcb/tutorial/index.html#screenofdisplay
86
87 bool isX11() const;
88 quint32 getAppRootWindow(int) const;
89 QScreen* findScreenForVirtualDesktop(int) const;
90 int appScreen() const;
91 Display* display() const;
92
93# endif
94
95#endif
96
97};
98
99} // namespace Digikam
Definition iccsettingscontainer.h:35
Definition iccprofile.h:33
Definition iccsettings_p.h:49
QList< IccProfile > profiles
Definition iccsettings_p.h:69
const QString configGroup
Definition iccsettings_p.h:73
ICCSettingsContainer settings
Definition iccsettings_p.h:66
QHash< int, IccProfile > screenProfiles
Definition iccsettings_p.h:71
QMutex mutex
Definition iccsettings_p.h:67
Definition iccsettings.h:34
Definition datefolderview.cpp:34