digiKam
Loading...
Searching...
No Matches
dconfigdlgwidgets.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-11-03
7 * Description : A dialog base class which can handle multiple pages.
8 *
9 * SPDX-FileCopyrightText: 2009-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
10 * SPDX-FileCopyrightText: 2006 by Tobias Koenig <tokoe at kde dot org>
11 *
12 * SPDX-License-Identifier: GPL-2.0-or-later
13 *
14 * ============================================================ */
15
16#pragma once
17
18// Qt includes
19
20#include <QWidget>
21
22// Local includes
23
24#include "dconfigdlgmodels.h"
25#include "dconfigdlgview.h"
26#include "digikam_export.h"
27
28namespace Digikam
29{
30
31class DConfigDlgWdgPrivate;
32
37class DIGIKAM_EXPORT DConfigDlgWdg : public DConfigDlgView
38{
39 Q_OBJECT
40 Q_DECLARE_PRIVATE(DConfigDlgWdg)
41
42public:
43
49 explicit DConfigDlgWdg(QWidget* const parent = nullptr);
50
54 ~DConfigDlgWdg() override = default;
55
64 DConfigDlgWdgItem* addPage(QWidget* widget, const QString& name);
65
71 void addPage(DConfigDlgWdgItem* item);
72
83 DConfigDlgWdgItem* insertPage(DConfigDlgWdgItem* before, QWidget* widget, const QString& name);
84
93 void insertPage(DConfigDlgWdgItem* before, DConfigDlgWdgItem* item);
94
104 DConfigDlgWdgItem* addSubPage(DConfigDlgWdgItem* parent, QWidget* widget, const QString& name);
105
113 void addSubPage(DConfigDlgWdgItem* parent, DConfigDlgWdgItem* item);
114
118 void removePage(DConfigDlgWdgItem* item);
119
124 void setCurrentPage(DConfigDlgWdgItem* item);
125
130 DConfigDlgWdgItem* currentPage() const;
131
132Q_SIGNALS:
133
140
145 void pageToggled(DConfigDlgWdgItem* page, bool checked);
146
152
153protected:
154
155 DConfigDlgWdg(DConfigDlgWdgPrivate& dd, QWidget* const parent);
156
157private:
158
159 Q_PRIVATE_SLOT(d_func(), void _k_slotCurrentPageChanged(const QModelIndex&, const QModelIndex&))
160};
161
162// ----------------------------------------------------------------------------------------------------------------
163
174class DConfigDlgTitle : public QWidget
175{
176 Q_OBJECT
177 Q_PROPERTY(QString text READ text WRITE setText)
178 Q_PROPERTY(QString comment READ comment WRITE setComment)
179 Q_PROPERTY(QPixmap pixmap READ pixmap WRITE setPixmap)
181
182public:
183
195 Q_ENUM(ImageAlignment)
196
197
207
208public:
209
213 explicit DConfigDlgTitle(QWidget* const parent = nullptr);
214
215 ~DConfigDlgTitle() override;
216
220 void setWidget(QWidget* const widget);
221
226 QString text() const;
227
232 QString comment() const;
233
238 QPixmap pixmap() const;
239
247 void setBuddy(QWidget* const buddy);
248
253 int autoHideTimeout() const;
254
255public Q_SLOTS:
256
263 void setText(const QString& text, Qt::Alignment alignment = Qt::AlignLeft | Qt::AlignVCenter);
270 void setText(const QString& text, MessageType type);
271
278 void setComment(const QString& comment, MessageType type = PlainMessage);
279
285 void setPixmap(const QPixmap& pixmap, ImageAlignment alignment = ImageRight);
286
292 void setPixmap(const QString& icon, ImageAlignment alignment = ImageRight);
293
299 void setPixmap(const QIcon& icon, ImageAlignment alignment = ImageRight);
300
306 void setPixmap(MessageType type, ImageAlignment alignment = ImageRight);
307
313 void setAutoHideTimeout(int msecs);
314
315protected:
316
317 void changeEvent(QEvent*) override;
318 void showEvent(QShowEvent*) override;
319 bool eventFilter(QObject*, QEvent*) override;
320
321private:
322
323 class Private;
324 Private* const d = nullptr;
325
326 Q_PRIVATE_SLOT(d, void _k_timeoutFinished())
327 Q_DISABLE_COPY(DConfigDlgTitle)
328};
329
330} // namespace Digikam
Definition dconfigdlgwidgets.h:175
~DConfigDlgTitle() override
Definition dconfigdlgwidgets.cpp:206
bool eventFilter(QObject *, QEvent *) override
Definition dconfigdlgwidgets.cpp:211
void setBuddy(QWidget *const buddy)
Definition dconfigdlgwidgets.cpp:262
ImageAlignment
Definition dconfigdlgwidgets.h:191
@ ImageRight
Display the pixmap on the right.
Definition dconfigdlgwidgets.h:193
@ ImageLeft
Display the pixmap on the left.
Definition dconfigdlgwidgets.h:192
void changeEvent(QEvent *) override
Definition dconfigdlgwidgets.cpp:267
void showEvent(QShowEvent *) override
Definition dconfigdlgwidgets.cpp:378
void setText(const QString &text, Qt::Alignment alignment=Qt::AlignLeft|Qt::AlignVCenter)
Definition dconfigdlgwidgets.cpp:282
void setPixmap(const QPixmap &pixmap, ImageAlignment alignment=ImageRight)
Definition dconfigdlgwidgets.cpp:314
QString text
Definition dconfigdlgwidgets.h:177
int autoHideTimeout
Definition dconfigdlgwidgets.h:180
void setWidget(QWidget *const widget)
Definition dconfigdlgwidgets.cpp:232
MessageType
Definition dconfigdlgwidgets.h:201
@ WarningMessage
A warning the user should be alerted to.
Definition dconfigdlgwidgets.h:204
@ InfoMessage
Information the user should be alerted to.
Definition dconfigdlgwidgets.h:203
@ ErrorMessage
An error message.
Definition dconfigdlgwidgets.h:205
@ PlainMessage
Normal comment.
Definition dconfigdlgwidgets.h:202
void setComment(const QString &comment, MessageType type=PlainMessage)
Definition dconfigdlgwidgets.cpp:302
QString comment
Definition dconfigdlgwidgets.h:178
QPixmap pixmap
Definition dconfigdlgwidgets.h:179
void setAutoHideTimeout(int msecs)
Definition dconfigdlgwidgets.cpp:364
A base class which can handle multiple pages.
Definition dconfigdlgview.h:49
Definition dconfigdlgmodels.h:95
Definition dconfigdlgwidgets_p.h:32
Page widget with many layouts (faces).
Definition dconfigdlgwidgets.h:38
void currentPageChanged(DConfigDlgWdgItem *current, DConfigDlgWdgItem *before)
void pageRemoved(DConfigDlgWdgItem *page)
void pageToggled(DConfigDlgWdgItem *page, bool checked)
~DConfigDlgWdg() override=default
Definition datefolderview.cpp:34