From f03104ac17e8770e62d8cfd7878f505a97da5ec9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Gr=C3=A4=C3=9Flin?= Date: Wed, 9 Oct 2013 09:40:26 +0200 Subject: [PATCH] [kcmdeco] Connect PreviewItem to factory's recreateDeco signal --- kcmkwin/kwindecoration/preview.cpp | 14 ++++++++++++-- kcmkwin/kwindecoration/preview.h | 1 + 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/kcmkwin/kwindecoration/preview.cpp b/kcmkwin/kwindecoration/preview.cpp index 37426b89e0..4562a09df9 100644 --- a/kcmkwin/kwindecoration/preview.cpp +++ b/kcmkwin/kwindecoration/preview.cpp @@ -43,7 +43,7 @@ PreviewItem::PreviewItem(QQuickItem *parent) { setFlag(ItemHasContents, true); setAcceptHoverEvents(true); - connect(this, &PreviewItem::libraryChanged, this, &PreviewItem::recreateDecorations); + connect(this, &PreviewItem::libraryChanged, this, &PreviewItem::loadDecorationPlugin); } PreviewItem::~PreviewItem() @@ -61,15 +61,24 @@ void PreviewItem::setLibraryName(const QString &library) emit libraryChanged(); } -void PreviewItem::recreateDecorations() +void PreviewItem::loadDecorationPlugin() { const bool loaded = m_plugins->loadPlugin(m_libraryName); if (!loaded) { return; } m_plugins->destroyPreviousPlugin(); + connect(m_plugins->factory(), &KDecorationFactory::recreateDecorations, + this, &PreviewItem::recreateDecorations, Qt::QueuedConnection); + recreateDecorations(); +} + +void PreviewItem::recreateDecorations() +{ delete m_activeDecoration; delete m_inactiveDecoration; + m_activeEntered = nullptr; + m_inactiveEntered = nullptr; m_activeDecoration = m_plugins->createDecoration(m_activeBridge.data()); m_inactiveDecoration = m_plugins->createDecoration(m_inactiveBridge.data()); @@ -108,6 +117,7 @@ void PreviewItem::updatePreview() render(&m_activeBuffer, m_activeDecoration); render(&m_inactiveBuffer, m_inactiveDecoration); + update(); } void PreviewItem::updateSize(const QSize &baseSize, KDecoration *decoration, QImage &buffer) diff --git a/kcmkwin/kwindecoration/preview.h b/kcmkwin/kwindecoration/preview.h index dce074b8d9..a396e8d8a6 100644 --- a/kcmkwin/kwindecoration/preview.h +++ b/kcmkwin/kwindecoration/preview.h @@ -54,6 +54,7 @@ protected: virtual void hoverMoveEvent(QHoverEvent *event); private Q_SLOTS: + void loadDecorationPlugin(); void recreateDecorations(); private: