mirror of
https://invent.kde.org/marcoa/shift-shell.git
synced 2026-04-26 14:23:09 +00:00
Move from a C++ library + QML plugin to a QML plugin only for simplicity, since the homescreen switching architecture will be done from Plasma, and so use of the shell library only needs to be from QML.
79 lines
1.7 KiB
C++
79 lines
1.7 KiB
C++
/*
|
|
SPDX-FileCopyrightText: 2016 Kai Uwe Broulik <kde@privat.broulik.de>
|
|
|
|
SPDX-License-Identifier: LGPL-2.1-or-later
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <QObject>
|
|
#include <QQmlParserStatus>
|
|
|
|
#include <QPixmap>
|
|
#include <QSize>
|
|
#include <QUrl>
|
|
|
|
class NotificationThumbnailer : public QObject, public QQmlParserStatus
|
|
{
|
|
Q_OBJECT
|
|
Q_INTERFACES(QQmlParserStatus)
|
|
|
|
Q_PROPERTY(QUrl url READ url WRITE setUrl NOTIFY urlChanged)
|
|
Q_PROPERTY(QSize size READ size WRITE setSize NOTIFY sizeChanged)
|
|
|
|
Q_PROPERTY(bool busy READ busy NOTIFY busyChanged)
|
|
Q_PROPERTY(bool hasPreview READ hasPreview NOTIFY pixmapChanged)
|
|
Q_PROPERTY(QPixmap pixmap READ pixmap NOTIFY pixmapChanged)
|
|
Q_PROPERTY(QSize pixmapSize READ pixmapSize NOTIFY pixmapChanged)
|
|
|
|
Q_PROPERTY(QString iconName READ iconName NOTIFY iconNameChanged)
|
|
|
|
Q_PROPERTY(bool menuVisible READ menuVisible NOTIFY menuVisibleChanged)
|
|
|
|
public:
|
|
explicit NotificationThumbnailer(QObject *parent = nullptr);
|
|
~NotificationThumbnailer() override;
|
|
|
|
QUrl url() const;
|
|
void setUrl(const QUrl &url);
|
|
|
|
QSize size() const;
|
|
void setSize(const QSize &size);
|
|
|
|
bool busy() const;
|
|
bool hasPreview() const;
|
|
QPixmap pixmap() const;
|
|
QSize pixmapSize() const;
|
|
|
|
QString iconName() const;
|
|
|
|
bool menuVisible() const;
|
|
|
|
void classBegin() override;
|
|
void componentComplete() override;
|
|
|
|
Q_SIGNALS:
|
|
void menuVisibleChanged();
|
|
|
|
void urlChanged();
|
|
void sizeChanged();
|
|
void busyChanged();
|
|
void pixmapChanged();
|
|
void iconNameChanged();
|
|
|
|
private:
|
|
void generatePreview();
|
|
|
|
bool m_inited = false;
|
|
|
|
bool m_menuVisible = false;
|
|
|
|
QUrl m_url;
|
|
QSize m_size;
|
|
|
|
bool m_busy = false;
|
|
|
|
QPixmap m_pixmap;
|
|
|
|
QString m_iconName;
|
|
};
|