digiKam
Loading...
Searching...
No Matches
dconfigdlgmngr.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-11-03
7 * Description : Automatic retrieving, saving and resetting skeleton based settings in a dialog.
8 *
9 * SPDX-FileCopyrightText: 2019-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
10 * SPDX-FileCopyrightText: 2003 by Benjamin C Meyer <ben plus kdelibs at meyerhome dot net>
11 * SPDX-FileCopyrightText: 2003 by Waldo Bastian <bastian at kde dot org>
12 *
13 * SPDX-License-Identifier: GPL-2.0-or-later
14 *
15 * ============================================================ */
16
17#pragma once
18
19// Qt includes
20
21#include <QObject>
22#include <QHash>
23#include <QWidget>
24#include <QByteArray>
25
26// Local includes
27
28#include "digikam_export.h"
29
30class KConfigSkeleton;
31class KConfigSkeletonItem;
32
33namespace Digikam
34{
35
54class DIGIKAM_EXPORT DConfigDlgMngr : public QObject
55{
56 Q_OBJECT
57
58public:
59
65 DConfigDlgMngr(QWidget* const parent, KConfigSkeleton* const conf);
66
70 ~DConfigDlgMngr() override;
71
76 void addWidget(QWidget* const widget);
77
82 bool hasChanged() const;
83
88 bool isDefault() const;
89
90public:
91
96 static QHash<QString, QByteArray>* propertyMap();
97
102 static QHash<QString, QByteArray>* changedMap();
103
104Q_SIGNALS:
105
112
119 void settingsChanged(QWidget* widget);
120
129
130public Q_SLOTS:
131
138 void updateSettings();
139
147 void updateWidgets();
148
155 void updateWidgetsDefault();
156
157protected:
158
164 void init(bool trackChanges);
165
176 bool parseChildren(const QWidget* widget, bool trackChanges);
177
182 QByteArray getUserProperty(const QWidget* widget) const;
183
189 QByteArray getCustomProperty(const QWidget* widget) const;
190
194 QByteArray getUserPropertyChangedSignal(const QWidget* widget) const;
195
201 QByteArray getCustomPropertyChangedSignal(const QWidget* widget) const;
202
206 void setProperty(QWidget* w, const QVariant& v);
207
211 QVariant property(QWidget* w) const;
212
216 void setupWidget(QWidget* widget, KConfigSkeletonItem* item);
217
221 static void initMaps();
222
223private:
224
225 class Private;
226 Private* const d = nullptr;
227
228 Q_DISABLE_COPY(DConfigDlgMngr)
229};
230
231} // namespace Digikam
Definition dconfigdlgmngr.h:55
void settingsChanged(QWidget *widget)
Definition datefolderview.cpp:34