11#include <KDecoration2/Decoration>
22 : QQuickPaintedItem(parent)
49 return m_bridge.data();
63 return m_settings.data();
82 QQuickPaintedItem::componentComplete();
86void PreviewButtonItem::createButton()
88 if (m_type == KDecoration2::DecorationButtonType::Custom || m_decoration || !m_settings || !m_bridge) {
91 m_decoration = m_bridge->createDecoration(
this);
95 auto client = m_bridge->lastCreatedClient();
96 client->setMinimizable(
true);
97 client->setMaximizable(
true);
98 client->setActive(
false);
99 client->setProvidesContextHelp(
true);
100 m_decoration->setSettings(m_settings->settings());
101 m_decoration->init();
102 m_button = m_bridge->createButton(m_decoration, m_type);
103 connect(
this, &PreviewButtonItem::widthChanged,
this, &PreviewButtonItem::syncGeometry);
104 connect(
this, &PreviewButtonItem::heightChanged,
this, &PreviewButtonItem::syncGeometry);
108void PreviewButtonItem::syncGeometry()
113 m_button->setGeometry(QRect(0, 0, width(), height()));
122 const QRect rect(0, 0, width(), height());
123 if (
type() == KDecoration2::DecorationButtonType::Spacer) {
124 static const QIcon icon = QIcon::fromTheme(QStringLiteral(
"distribute-horizontal"));
125 icon.paint(painter, rect);
127 m_button->paint(painter, rect);
130 painter->setCompositionMode(QPainter::CompositionMode_SourceAtop);
131 painter->fillRect(rect, m_color);
137 m_color.setAlpha(127);
144#include "moc_previewbutton.cpp"