service/notifications: add notifications service

This commit is contained in:
outfoxxed 2024-07-10 12:27:10 -07:00
parent 79cbfba48a
commit d630cc7f76
No known key found for this signature in database
GPG key ID: 4C88A185FB89301E
15 changed files with 1249 additions and 0 deletions

View file

@ -0,0 +1,36 @@
#pragma once
#include <utility>
#include <qdbusargument.h>
#include <qimage.h>
#include <qobject.h>
#include "../../core/imageprovider.hpp"
namespace qs::service::notifications {
struct DBusNotificationImage {
qint32 width = 0;
qint32 height = 0;
bool hasAlpha = false;
QByteArray data;
// valid only for the lifetime of the pixmap
[[nodiscard]] QImage createImage() const;
};
const QDBusArgument& operator>>(const QDBusArgument& argument, DBusNotificationImage& pixmap);
const QDBusArgument& operator<<(QDBusArgument& argument, const DBusNotificationImage& pixmap);
class NotificationImage: public QsImageHandle {
public:
explicit NotificationImage(DBusNotificationImage image, QObject* parent)
: QsImageHandle(QQuickAsyncImageProvider::Image, parent)
, image(std::move(image)) {}
QImage requestImage(const QString& id, QSize* size, const QSize& requestedSize) override;
DBusNotificationImage image;
};
} // namespace qs::service::notifications