KWin
Loading...
Searching...
No Matches
previewitem.h
Go to the documentation of this file.
1/*
2 SPDX-FileCopyrightText: 2014 Martin Gräßlin <mgraesslin@kde.org>
3
4 SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
5*/
6#pragma once
7
8#include <QPointer>
9#include <QQuickPaintedItem>
10
11namespace KDecoration2
12{
13class Decoration;
14class DecorationShadow;
15class DecorationSettings;
16
17namespace Preview
18{
19class PreviewBridge;
20class PreviewClient;
21class Settings;
22
23class PreviewItem : public QQuickPaintedItem
24{
25 Q_OBJECT
26 Q_PROPERTY(KDecoration2::Decoration *decoration READ decoration NOTIFY decorationChanged)
27 Q_PROPERTY(KDecoration2::Preview::PreviewBridge *bridge READ bridge WRITE setBridge NOTIFY bridgeChanged)
28 Q_PROPERTY(KDecoration2::Preview::Settings *settings READ settings WRITE setSettings NOTIFY settingsChanged)
29 Q_PROPERTY(KDecoration2::Preview::PreviewClient *client READ client)
30 Q_PROPERTY(KDecoration2::DecorationShadow *shadow READ shadow NOTIFY shadowChanged)
31 Q_PROPERTY(QColor windowColor READ windowColor WRITE setWindowColor NOTIFY windowColorChanged)
33public:
34 PreviewItem(QQuickItem *parent = nullptr);
35 ~PreviewItem() override;
36 void paint(QPainter *painter) override;
37
38 KDecoration2::Decoration *decoration() const;
39 void setDecoration(KDecoration2::Decoration *deco);
40
41 QColor windowColor() const;
42 void setWindowColor(const QColor &color);
43
44 bool isDrawingBackground() const;
45 void setDrawingBackground(bool set);
46
47 PreviewBridge *bridge() const;
49
50 Settings *settings() const;
52
54 DecorationShadow *shadow() const;
55
56Q_SIGNALS:
57 void decorationChanged(KDecoration2::Decoration *deco);
58 void windowColorChanged(const QColor &color);
63
64protected:
65 void mouseDoubleClickEvent(QMouseEvent *event) override;
66 void mouseMoveEvent(QMouseEvent *event) override;
67 void mousePressEvent(QMouseEvent *event) override;
68 void mouseReleaseEvent(QMouseEvent *event) override;
69 void hoverEnterEvent(QHoverEvent *event) override;
70 void hoverLeaveEvent(QHoverEvent *event) override;
71 void hoverMoveEvent(QHoverEvent *event) override;
72 void componentComplete() override;
73
75 void paintShadow(QPainter *painter, int &paddingLeft, int &paddingRight, int &paddingTop, int &paddingBottom);
76 template <typename E>
77 void proxyPassEvent(E *event) const;
78 void syncSize();
79 void createDecoration();
80 Decoration *m_decoration;
81 QColor m_windowColor;
82 bool m_drawBackground = true;
83 QPointer<KDecoration2::Preview::PreviewBridge> m_bridge;
84 QPointer<KDecoration2::Preview::Settings> m_settings;
85 QPointer<KDecoration2::Preview::PreviewClient> m_client;
86};
87
88} // Preview
89} // KDecoration2
KDecoration2::DecorationShadow * shadow
Definition previewitem.h:30
void mousePressEvent(QMouseEvent *event) override
void hoverMoveEvent(QHoverEvent *event) override
void paint(QPainter *painter) override
void hoverEnterEvent(QHoverEvent *event) override
void setWindowColor(const QColor &color)
void setSettings(Settings *settings)
void decorationChanged(KDecoration2::Decoration *deco)
void mouseDoubleClickEvent(QMouseEvent *event) override
KDecoration2::Preview::PreviewClient * client
Definition previewitem.h:29
KDecoration2::Decoration * decoration
Definition previewitem.h:26
void hoverLeaveEvent(QHoverEvent *event) override
void windowColorChanged(const QColor &color)
KDecoration2::Preview::PreviewBridge * bridge
Definition previewitem.h:27
KDecoration2::Preview::Settings * settings
Definition previewitem.h:28
void mouseMoveEvent(QMouseEvent *event) override
void mouseReleaseEvent(QMouseEvent *event) override
void setDecoration(KDecoration2::Decoration *deco)
void setBridge(PreviewBridge *bridge)
#define private