dde-dock/plugins/notification/notification.h
Yixue Wang 12d346a2c9 fix: cross-thread parenting failure
Cannot create a child in another thread. Do not use object tree, use
QScopedPointer to manage life scope.

Log: fix cross-thread parenting failure
2024-01-09 03:25:28 +00:00

45 lines
860 B
C++

// SPDX-FileCopyrightText: 2024 UnionTech Software Technology Co., Ltd.
//
// SPDX-License-Identifier: LGPL-3.0-or-later
#ifndef NOTIFICATION_H
#define NOTIFICATION_H
#include <DGuiApplicationHelper>
#include <QWidget>
#include <QIcon>
#include <QDBusVariant>
#include <QDBusInterface>
class Notification : public QWidget
{
Q_OBJECT
public:
explicit Notification(QWidget *parent = nullptr);
QIcon icon() const;
bool dndMode() const;
void setDndMode(bool dnd);
Q_SIGNALS:
void iconRefreshed();
void dndModeChanged(bool dnd);
public Q_SLOTS:
void refreshIcon();
private Q_SLOTS:
void onSystemInfoChanged(quint32 info, QDBusVariant value);
protected:
void paintEvent(QPaintEvent *e) override;
private:
QIcon m_icon;
QScopedPointer<QDBusInterface> m_dbus;
bool m_dndMode;
};
#endif // NOTIFICATION_H