digiKam
Loading...
Searching...
No Matches
dnotificationpopup.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 : 2004-07-03
7 * Description : dialog-like popup that displays messages without interrupting the user
8 *
9 * SPDX-FileCopyrightText: 2009-2024 by Gilles Caulier <caulier dot gilles at gmail dot com>
10 * SPDX-FileCopyrightText: 2001-2006 by Richard Moore <rich at kde dot org>
11 * SPDX-FileCopyrightText: 2004-2005 by Sascha Cunz <sascha.cunz at tiscali dot de>
12 *
13 * SPDX-License-Identifier: GPL-2.0-or-later
14 *
15 * ============================================================ */
16
17#pragma once
18
19// Qt includes
20
21#include <QFrame>
22
23// Local includes
24
25#include "digikam_export.h"
26
27class QSystemTrayIcon;
28
29namespace Digikam
30{
31
39class DIGIKAM_EXPORT DNotificationPopup : public QFrame
40{
41 Q_OBJECT
42 Q_PROPERTY(bool autoDelete READ autoDelete WRITE setAutoDelete)
43 Q_PROPERTY(int timeout READ timeout WRITE setTimeout)
44
45public:
46
51 {
54 };
55
56public:
57
61 explicit DNotificationPopup(QWidget* const parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags());
62
66 explicit DNotificationPopup(WId parent);
67
71 ~DNotificationPopup() override;
72
76 void setView(QWidget* child);
77
81 void setView(const QString& caption, const QString& text = QString());
82
86 virtual void setView(const QString& caption, const QString& text, const QPixmap& icon);
87
109 QWidget* standardView(const QString& caption, const QString& text,
110 const QPixmap& icon, QWidget* parent = nullptr);
111
115 QWidget* view() const;
116
120 int timeout() const;
121
128 virtual void setAutoDelete(bool autoDelete);
129
135 bool autoDelete() const;
136
140 QPoint anchor() const;
141
147 void setAnchor(const QPoint& anchor);
148
155 static DNotificationPopup* message(const QString& text, QWidget* parent,
156 const QPoint& p = QPoint());
157
164 static DNotificationPopup* message(const QString& text, QSystemTrayIcon* parent);
165
172 static DNotificationPopup* message(const QString& caption, const QString& text,
173 QWidget* parent, const QPoint& p = QPoint());
174
181 static DNotificationPopup* message(const QString& caption, const QString& text,
182 QSystemTrayIcon* parent);
183
190 static DNotificationPopup* message(const QString& caption, const QString& text,
191 const QPixmap& icon, QWidget* parent, int timeout = -1,
192 const QPoint& p = QPoint());
193
200 static DNotificationPopup* message(const QString& caption, const QString& text,
201 const QPixmap& icon, QSystemTrayIcon* parent, int timeout = -1);
202
209 static DNotificationPopup* message(const QString& caption, const QString& text,
210 const QPixmap& icon, WId parent,
211 int timeout = -1, const QPoint& p = QPoint());
212
219 static DNotificationPopup* message(int popupStyle, const QString& text, QWidget* parent, const QPoint& p = QPoint());
220
227 static DNotificationPopup* message(int popupStyle, const QString& text, QSystemTrayIcon* parent);
228
235 static DNotificationPopup* message(int popupStyle, const QString& caption, const QString& text,
236 QSystemTrayIcon* parent);
237
244 static DNotificationPopup* message(int popupStyle, const QString& caption, const QString& text,
245 QWidget* parent, const QPoint& p = QPoint());
246
253 static DNotificationPopup* message(int popupStyle, const QString& caption, const QString& text,
254 const QPixmap& icon, QWidget* parent, int timeout = -1,
255 const QPoint& p = QPoint());
256
263 static DNotificationPopup* message(int popupStyle, const QString& caption, const QString& text,
264 const QPixmap& icon, QSystemTrayIcon* parent, int timeout = -1);
265
272 static DNotificationPopup* message(int popupStyle, const QString& caption, const QString& text,
273 const QPixmap& icon, WId parent, int timeout = -1,
274 const QPoint& p = QPoint());
275
279 using QFrame::show;
280
281public Q_SLOTS:
282
291 void setTimeout(int delay);
292
297 void setPopupStyle(int popupstyle);
298
302 void show(const QPoint& p);
303
307 void setVisible(bool visible) override;
308
309Q_SIGNALS:
310
314 void clicked();
315
319 void clicked(const QPoint& pos);
320
321protected:
322
333 virtual void positionSelf();
334
342 virtual QPoint defaultLocation() const;
343
353 void moveNear(const QRect& target);
354
358 void hideEvent(QHideEvent*) override;
359
363 void mouseReleaseEvent(QMouseEvent* e) override;
364
368 void paintEvent(QPaintEvent* pe) override;
369
370private:
371
372 class Private;
373 Private* const d = nullptr;
374};
375
376} // namespace Digikam
A dialog-like popup that displays messages without interrupting the user.
Definition dnotificationpopup.h:40
PopupStyle
Definition dnotificationpopup.h:51
@ Balloon
Information will appear in a comic-alike balloon.
Definition dnotificationpopup.h:53
@ Boxed
Information will appear in a framed box (default)
Definition dnotificationpopup.h:52
void clicked(const QPoint &pos)
Definition datefolderview.cpp:34