Qt 如何为KDE编译此窗口装饰?

Qt 如何为KDE编译此窗口装饰?,qt,archlinux,kde,xfce,manjaro,Qt,Archlinux,Kde,Xfce,Manjaro,我正在尝试为我的Manjaro boot(一个Arch发行版)编译一个窗口装饰,我得到了以下错误: /home/ldoney/material-decoration-bt/src/CloseButton.cc: In constructor ‘Material::CloseButton::CloseButton(Material::Decoration*, QObject*)’: /home/ldoney/material-decoration-bt/src/CloseButton.cc:34:

我正在尝试为我的Manjaro boot(一个Arch发行版)编译一个窗口装饰,我得到了以下错误:

/home/ldoney/material-decoration-bt/src/CloseButton.cc: In constructor ‘Material::CloseButton::CloseButton(Material::Decoration*, QObject*)’:
/home/ldoney/material-decoration-bt/src/CloseButton.cc:34:55: error: ‘T* QWeakPointer<T>::data() const [with T = KDecoration2::DecoratedClient]’ is deprecated: Use toStrongRef() instead, and data() on the returned QSharedPointer [-Werror=deprecated-declarations]
   34 |     auto *decoratedClient = decoration->client().data();
      |                                                       ^
In file included from /usr/include/qt/QtCore/qsharedpointer.h:48,
                 from /usr/include/qt/QtCore/qpointer.h:43,
                 from /usr/include/qt/QtCore/QPointer:1,
                 from /usr/include/KDecoration2/kdecoration2/decorationbutton.h:27,
                 from /usr/include/KDecoration2/KDecoration2/DecorationButton:1,
                 from /home/ldoney/material-decoration-bt/src/CloseButton.h:21,
                 from /home/ldoney/material-decoration-bt/src/CloseButton.cc:19:
/usr/include/qt/QtCore/qsharedpointer_impl.h:565:8: note: declared here
  565 |     T *data() const noexcept { return internalData(); }
      |        ^~~~
/home/ldoney/material-decoration-bt/src/CloseButton.cc: In member function ‘QColor Material::CloseButton::backgroundColor() const’:
/home/ldoney/material-decoration-bt/src/CloseButton.cc:87:53: error: ‘T* QWeakPointer<T>::data() const [with T = KDecoration2::DecoratedClient]’ is deprecated: Use toStrongRef() instead, and data() on the returned QSharedPointer [-Werror=deprecated-declarations]
   87 |         auto *decoratedClient = deco->client().data();
      |                                                     ^
In file included from /usr/include/qt/QtCore/qsharedpointer.h:48,
                 from /usr/include/qt/QtCore/qpointer.h:43,
                 from /usr/include/qt/QtCore/QPointer:1,
                 from /usr/include/KDecoration2/kdecoration2/decorationbutton.h:27,
                 from /usr/include/KDecoration2/KDecoration2/DecorationButton:1,
                 from /home/ldoney/material-decoration-bt/src/CloseButton.h:21,
                 from /home/ldoney/material-decoration-bt/src/CloseButton.cc:19:
/usr/include/qt/QtCore/qsharedpointer_impl.h:565:8: note: declared here
  565 |     T *data() const noexcept { return internalData(); }
      |        ^~~~
/home/ldoney/material-decoration-bt/src/CloseButton.cc:95:53: error: ‘T* QWeakPointer<T>::data() const [with T = KDecoration2::DecoratedClient]’ is deprecated: Use toStrongRef() instead, and data() on the returned QSharedPointer [-Werror=deprecated-declarations]
   95 |         auto *decoratedClient = deco->client().data();
      |                                                     ^
In file included from /usr/include/qt/QtCore/qsharedpointer.h:48,
                 from /usr/include/qt/QtCore/qpointer.h:43,
                 from /usr/include/qt/QtCore/QPointer:1,
                 from /usr/include/KDecoration2/kdecoration2/decorationbutton.h:27,
                 from /usr/include/KDecoration2/KDecoration2/DecorationButton:1,
                 from /home/ldoney/material-decoration-bt/src/CloseButton.h:21,
                 from /home/ldoney/material-decoration-bt/src/CloseButton.cc:19:
/usr/include/qt/QtCore/qsharedpointer_impl.h:565:8: note: declared here
  565 |     T *data() const noexcept { return internalData(); }
      |        ^~~~
/home/ldoney/material-decoration-bt/src/MinimizeButton.cc: In constructor ‘Material::MinimizeButton::MinimizeButton(Material::Decoration*, QObject*)’:
/home/ldoney/material-decoration-bt/src/MinimizeButton.cc:37:55: error: ‘T* QWeakPointer<T>::data() const [with T = KDecoration2::DecoratedClient]’ is deprecated: Use toStrongRef() instead, and data() on the returned QSharedPointer [-Werror=deprecated-declarations]
   37 |     auto *decoratedClient = decoration->client().data();
      |                                                       ^
In file included from /usr/include/qt/QtCore/qsharedpointer.h:48,
                 from /usr/include/qt/QtCore/qpointer.h:43,
                 from /usr/include/qt/QtCore/QPointer:1,
                 from /usr/include/KDecoration2/kdecoration2/decorationbutton.h:27,
                 from /usr/include/KDecoration2/KDecoration2/DecorationButton:1,
                 from /home/ldoney/material-decoration-bt/src/MinimizeButton.h:21,
                 from /home/ldoney/material-decoration-bt/src/MinimizeButton.cc:19:
/usr/include/qt/QtCore/qsharedpointer_impl.h:565:8: note: declared here
  565 |     T *data() const noexcept { return internalData(); }
      |        ^~~~
/home/ldoney/material-decoration-bt/src/MaximizeButton.cc: In constructor ‘Material::MaximizeButton::MaximizeButton(Material::Decoration*, QObject*)’:
/home/ldoney/material-decoration-bt/src/MaximizeButton.cc:37:55: error: ‘T* QWeakPointer<T>::data() const [with T = KDecoration2::DecoratedClient]’ is deprecated: Use toStrongRef() instead, and data() on the returned QSharedPointer [-Werror=deprecated-declarations]
   37 |     auto *decoratedClient = decoration->client().data();
      |                                                       ^
In file included from /usr/include/qt/QtCore/qsharedpointer.h:48,
                 from /usr/include/qt/QtCore/qpointer.h:43,
                 from /usr/include/qt/QtCore/QPointer:1,
                 from /usr/include/KDecoration2/kdecoration2/decorationbutton.h:27,
                 from /usr/include/KDecoration2/KDecoration2/DecorationButton:1,
                 from /home/ldoney/material-decoration-bt/src/MaximizeButton.h:21,
                 from /home/ldoney/material-decoration-bt/src/MaximizeButton.cc:19:
/usr/include/qt/QtCore/qsharedpointer_impl.h:565:8: note: declared here
  565 |     T *data() const noexcept { return internalData(); }
      |        ^~~~
/home/ldoney/material-decoration-bt/src/Decoration.cc: In member function ‘virtual void Material::Decoration::paint(QPainter*, const QRect&)’:
/home/ldoney/material-decoration-bt/src/Decoration.cc:109:43: error: ‘T* QWeakPointer<T>::data() const [with T = KDecoration2::DecoratedClient]’ is deprecated: Use toStrongRef() instead, and data() on the returned QSharedPointer [-Werror=deprecated-declarations]
  109 |     auto *decoratedClient = client().data();
      |                                           ^
In file included from /usr/include/qt/QtCore/qsharedpointer.h:48,
                 from /usr/include/qt/QtCore/qpointer.h:43,
                 from /usr/include/qt/QtCore/QPointer:1,
                 from /usr/include/KDecoration2/kdecoration2/decoration.h:28,
                 from /usr/include/KDecoration2/KDecoration2/Decoration:1,
                 from /home/ldoney/material-decoration-bt/src/Decoration.h:21,
                 from /home/ldoney/material-decoration-bt/src/Decoration.cc:19:
/usr/include/qt/QtCore/qsharedpointer_impl.h:565:8: note: declared here
  565 |     T *data() const noexcept { return internalData(); }
      |        ^~~~
/home/ldoney/material-decoration-bt/src/Decoration.cc: In member function ‘virtual void Material::Decoration::init()’:
/home/ldoney/material-decoration-bt/src/Decoration.cc:122:43: error: ‘T* QWeakPointer<T>::data() const [with T = KDecoration2::DecoratedClient]’ is deprecated: Use toStrongRef() instead, and data() on the returned QSharedPointer [-Werror=deprecated-declarations]
  122 |     auto *decoratedClient = client().data();
      |                                           ^
In file included from /usr/include/qt/QtCore/qsharedpointer.h:48,
                 from /usr/include/qt/QtCore/qpointer.h:43,
                 from /usr/include/qt/QtCore/QPointer:1,
                 from /usr/include/KDecoration2/kdecoration2/decoration.h:28,
                 from /usr/include/KDecoration2/KDecoration2/Decoration:1,
                 from /home/ldoney/material-decoration-bt/src/Decoration.h:21,
                 from /home/ldoney/material-decoration-bt/src/Decoration.cc:19:
/usr/include/qt/QtCore/qsharedpointer_impl.h:565:8: note: declared here
  565 |     T *data() const noexcept { return internalData(); }
      |        ^~~~
/home/ldoney/material-decoration-bt/src/Decoration.cc: In member function ‘void Material::Decoration::updateTitleBar()’:
/home/ldoney/material-decoration-bt/src/Decoration.cc:202:43: error: ‘T* QWeakPointer<T>::data() const [with T = KDecoration2::DecoratedClient]’ is deprecated: Use toStrongRef() instead, and data() on the returned QSharedPointer [-Werror=deprecated-declarations]
  202 |     auto *decoratedClient = client().data();
      |                                           ^
In file included from /usr/include/qt/QtCore/qsharedpointer.h:48,
                 from /usr/include/qt/QtCore/qpointer.h:43,
                 from /usr/include/qt/QtCore/QPointer:1,
                 from /usr/include/KDecoration2/kdecoration2/decoration.h:28,
                 from /usr/include/KDecoration2/KDecoration2/Decoration:1,
                 from /home/ldoney/material-decoration-bt/src/Decoration.h:21,
                 from /home/ldoney/material-decoration-bt/src/Decoration.cc:19:
/usr/include/qt/QtCore/qsharedpointer_impl.h:565:8: note: declared here
  565 |     T *data() const noexcept { return internalData(); }
      |        ^~~~
/home/ldoney/material-decoration-bt/src/Decoration.cc: In member function ‘void Material::Decoration::paintFrameBackground(QPainter*, const QRect&) const’:
/home/ldoney/material-decoration-bt/src/Decoration.cc:297:49: error: ‘T* QWeakPointer<T>::data() const [with T = KDecoration2::DecoratedClient]’ is deprecated: Use toStrongRef() instead, and data() on the returned QSharedPointer [-Werror=deprecated-declarations]
  297 |     const auto *decoratedClient = client().data();
      |                                                 ^
In file included from /usr/include/qt/QtCore/qsharedpointer.h:48,
                 from /usr/include/qt/QtCore/qpointer.h:43,
                 from /usr/include/qt/QtCore/QPointer:1,
                 from /usr/include/KDecoration2/kdecoration2/decoration.h:28,
                 from /usr/include/KDecoration2/KDecoration2/Decoration:1,
                 from /home/ldoney/material-decoration-bt/src/Decoration.h:21,
                 from /home/ldoney/material-decoration-bt/src/Decoration.cc:19:
/usr/include/qt/QtCore/qsharedpointer_impl.h:565:8: note: declared here
  565 |     T *data() const noexcept { return internalData(); }
      |        ^~~~
/home/ldoney/material-decoration-bt/src/Decoration.cc: In member function ‘QColor Material::Decoration::titleBarBackgroundColor() const’:
/home/ldoney/material-decoration-bt/src/Decoration.cc:317:49: error: ‘T* QWeakPointer<T>::data() const [with T = KDecoration2::DecoratedClient]’ is deprecated: Use toStrongRef() instead, and data() on the returned QSharedPointer [-Werror=deprecated-declarations]
  317 |     const auto *decoratedClient = client().data();
      |                                                 ^
In file included from /usr/include/qt/QtCore/qsharedpointer.h:48,
                 from /usr/include/qt/QtCore/qpointer.h:43,
                 from /usr/include/qt/QtCore/QPointer:1,
                 from /usr/include/KDecoration2/kdecoration2/decoration.h:28,
                 from /usr/include/KDecoration2/KDecoration2/Decoration:1,
                 from /home/ldoney/material-decoration-bt/src/Decoration.h:21,
                 from /home/ldoney/material-decoration-bt/src/Decoration.cc:19:
/usr/include/qt/QtCore/qsharedpointer_impl.h:565:8: note: declared here
  565 |     T *data() const noexcept { return internalData(); }
      |        ^~~~
/home/ldoney/material-decoration-bt/src/Decoration.cc: In member function ‘QColor Material::Decoration::titleBarForegroundColor() const’:
/home/ldoney/material-decoration-bt/src/Decoration.cc:331:49: error: ‘T* QWeakPointer<T>::data() const [with T = KDecoration2::DecoratedClient]’ is deprecated: Use toStrongRef() instead, and data() on the returned QSharedPointer [-Werror=deprecated-declarations]
  331 |     const auto *decoratedClient = client().data();
      |                                                 ^
In file included from /usr/include/qt/QtCore/qsharedpointer.h:48,
                 from /usr/include/qt/QtCore/qpointer.h:43,
                 from /usr/include/qt/QtCore/QPointer:1,
                 from /usr/include/KDecoration2/kdecoration2/decoration.h:28,
                 from /usr/include/KDecoration2/KDecoration2/Decoration:1,
                 from /home/ldoney/material-decoration-bt/src/Decoration.h:21,
                 from /home/ldoney/material-decoration-bt/src/Decoration.cc:19:
/usr/include/qt/QtCore/qsharedpointer_impl.h:565:8: note: declared here
  565 |     T *data() const noexcept { return internalData(); }
      |        ^~~~
/home/ldoney/material-decoration-bt/src/Decoration.cc: In member function ‘void Material::Decoration::paintTitleBarBackground(QPainter*, const QRect&) const’:
/home/ldoney/material-decoration-bt/src/Decoration.cc:342:49: error: ‘T* QWeakPointer<T>::data() const [with T = KDecoration2::DecoratedClient]’ is deprecated: Use toStrongRef() instead, and data() on the returned QSharedPointer [-Werror=deprecated-declarations]
  342 |     const auto *decoratedClient = client().data();
      |                                                 ^
In file included from /usr/include/qt/QtCore/qsharedpointer.h:48,
                 from /usr/include/qt/QtCore/qpointer.h:43,
                 from /usr/include/qt/QtCore/QPointer:1,
                 from /usr/include/KDecoration2/kdecoration2/decoration.h:28,
                 from /usr/include/KDecoration2/KDecoration2/Decoration:1,
                 from /home/ldoney/material-decoration-bt/src/Decoration.h:21,
                 from /home/ldoney/material-decoration-bt/src/Decoration.cc:19:
/usr/include/qt/QtCore/qsharedpointer_impl.h:565:8: note: declared here
  565 |     T *data() const noexcept { return internalData(); }
      |        ^~~~
/home/ldoney/material-decoration-bt/src/Decoration.cc: In member function ‘void Material::Decoration::paintCaption(QPainter*, const QRect&) const’:
/home/ldoney/material-decoration-bt/src/Decoration.cc:355:49: error: ‘T* QWeakPointer<T>::data() const [with T = KDecoration2::DecoratedClient]’ is deprecated: Use toStrongRef() instead, and data() on the returned QSharedPointer [-Werror=deprecated-declarations]
  355 |     const auto *decoratedClient = client().data();
      |                                                 ^
In file included from /usr/include/qt/QtCore/qsharedpointer.h:48,
                 from /usr/include/qt/QtCore/qpointer.h:43,
                 from /usr/include/qt/QtCore/QPointer:1,
                 from /usr/include/KDecoration2/kdecoration2/decoration.h:28,
                 from /usr/include/KDecoration2/KDecoration2/Decoration:1,
                 from /home/ldoney/material-decoration-bt/src/Decoration.h:21,
                 from /home/ldoney/material-decoration-bt/src/Decoration.cc:19:
/usr/include/qt/QtCore/qsharedpointer_impl.h:565:8: note: declared here
  565 |     T *data() const noexcept { return internalData(); }
      |        ^~~~
cc1plus: all warnings being treated as errors
cc1plus: all warnings being treated as errors
make[2]: *** [src/CMakeFiles/materialdecoration.dir/build.make:109: src/CMakeFiles/materialdecoration.dir/CloseButton.cc.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: *** [src/CMakeFiles/materialdecoration.dir/build.make:148: src/CMakeFiles/materialdecoration.dir/MinimizeButton.cc.o] Error 1
cc1plus: all warnings being treated as errors
make[2]: *** [src/CMakeFiles/materialdecoration.dir/build.make:135: src/CMakeFiles/materialdecoration.dir/MaximizeButton.cc.o] Error 1
cc1plus: all warnings being treated as errors
make[2]: *** [src/CMakeFiles/materialdecoration.dir/build.make:122: src/CMakeFiles/materialdecoration.dir/Decoration.cc.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:175: src/CMakeFiles/materialdecoration.dir/all] Error 2
make: *** [Makefile:161: all] Error 2
/home/ldoney/material decoration bt/src/CloseButton.cc:在构造函数“material::CloseButton::CloseButton(material::decoration*,QObject*)”中:
/home/ldoney/material decoration bt/src/CloseButton.cc:34:55:错误:“T*QWeakPointer::data()const[with T=KDecoration2::DecoratedClient]”已弃用:改为使用toStrongRef(),并在返回的QSharedPointer[-Werror=弃用声明上使用data()
34 |自动*装饰客户端=装饰->客户端().data();
|                                                       ^
在/usr/include/qt/QtCore/qsharedpointer.h:48中包含的文件中,
从/usr/include/qt/QtCore/qpointer.h:43,
来自/usr/include/qt/QtCore/QPointer:1,
从/usr/include/KDecoration2/KDecoration2/decorationbutton.h:27,
从/usr/include/KDecoration2/KDecoration2/DecorationButton:1,
from/home/ldoney/material decoration bt/src/CloseButton.h:21,
from/home/ldoney/material decoration bt/src/CloseButton.cc:19:
/usr/include/qt/QtCore/qsharedpointer_impl.h:565:8:注意:此处声明
565 | T*data()常量noexcept{return internalData();}
|        ^~~~
/home/ldoney/material decoration bt/src/CloseButton.cc:在成员函数“QColor material::CloseButton::backgroundColor()const”中:
/home/ldoney/material decoration bt/src/CloseButton.cc:87:53:错误:“T*QWeakPointer::data()const[with T=KDecoration2::DecoratedClient]”已弃用:改为使用toStrongRef(),并在返回的QSharedPointer[-Werror=弃用声明上使用data()
87 | auto*decoratedClient=deco->client().data();
|                                                     ^
在/usr/include/qt/QtCore/qsharedpointer.h:48中包含的文件中,
从/usr/include/qt/QtCore/qpointer.h:43,
来自/usr/include/qt/QtCore/QPointer:1,
从/usr/include/KDecoration2/KDecoration2/decorationbutton.h:27,
从/usr/include/KDecoration2/KDecoration2/DecorationButton:1,
from/home/ldoney/material decoration bt/src/CloseButton.h:21,
from/home/ldoney/material decoration bt/src/CloseButton.cc:19:
/usr/include/qt/QtCore/qsharedpointer_impl.h:565:8:注意:此处声明
565 | T*data()常量noexcept{return internalData();}
|        ^~~~
/home/ldoney/material decoration bt/src/CloseButton.cc:95:53:错误:“T*QWeakPointer::data()const[with T=KDecoration2::DecoratedClient]”已弃用:改为使用toStrongRef(),并在返回的QSharedPointer[-Werror=弃用声明上使用data()
95 | auto*decoratedClient=deco->client().data();
|                                                     ^
在/usr/include/qt/QtCore/qsharedpointer.h:48中包含的文件中,
从/usr/include/qt/QtCore/qpointer.h:43,
来自/usr/include/qt/QtCore/QPointer:1,
从/usr/include/KDecoration2/KDecoration2/decorationbutton.h:27,
从/usr/include/KDecoration2/KDecoration2/DecorationButton:1,
from/home/ldoney/material decoration bt/src/CloseButton.h:21,
from/home/ldoney/material decoration bt/src/CloseButton.cc:19:
/usr/include/qt/QtCore/qsharedpointer_impl.h:565:8:注意:此处声明
565 | T*data()常量noexcept{return internalData();}
|        ^~~~
/home/ldoney/material decoration bt/src/MinimizeButton.cc:在构造函数“material::MinimizeButton::MinimizeButton(material::decoration*,QObject*)”中:
/home/ldoney/material decoration bt/src/MinimizeButton.cc:37:55:错误:“T*QWeakPointer::data()const[with T=KDecoration2::DecoratedClient]”已弃用:改为使用toStrongRef(),并在返回的QSharedPointer[-Werror=弃用声明上使用data()
37 |自动*装饰客户端=装饰->客户端().data();
|                                                       ^
在/usr/include/qt/QtCore/qsharedpointer.h:48中包含的文件中,
从/usr/include/qt/QtCore/qpointer.h:43,
来自/usr/include/qt/QtCore/QPointer:1,
从/usr/include/KDecoration2/KDecoration2/decorationbutton.h:27,
从/usr/include/KDecoration2/KDecoration2/DecorationButton:1,
from/home/ldoney/material decoration bt/src/MinimizeButton.h:21,
from/home/ldoney/material decoration bt/src/MinimizeButton.cc:19:
/usr/include/qt/QtCore/qsharedpointer_impl.h:565:8:注意:此处声明
565 | T*data()常量noexcept{return internalData();}
|        ^~~~
/home/ldoney/material decoration bt/src/MaximizeButton.cc:在构造函数“material::MaximizeButton::MaximizeButton(material::decoration*,QObject*)”中:
/home/ldoney/material-decoration-bt/src/MaximizeButton.cc:37:55:错误:“T*QWeakPointer::data()const[with T=KDecoration2::DecoratedClient]”已弃用:请改为使用toStrongRef(),并在返回的QSharedPointer[-Werror=弃用声明上使用data()
37 |自动*装饰客户端=装饰->客户端().data();
|                                                       ^
在/usr/include/qt/QtCore/qsharedpointer.h:48中包含的文件中,
从/usr/include/qt/QtCore/qpointer.h:43,
来自/usr/include/qt/QtCore/QPointer:1,
从/usr/include/KDecoration2/KDecoration2/decorationbutton.h:27,
从/usr/include/KDecoration2/KDecoration2/DecorationButton:1,
from/home/ldoney/material decoration bt/src/MaximizeButton.h:21,
发件人/主页/ldoney/材料装饰bt/src/MaximizeButton.cc:19:
/usr/include/qt/QtCore/qsharedpointer_impl.h:565:8:注意:此处声明
565 | T*数据(
foo->client().data()
foo->client().toStrongRef().data()
git clone https://github.com/eyllanesc/material-decoration-bt.git
cd material-decoration-bt; bash setup.sh
From 00b3b491c754152ff96b9656fff998bacd7ec670 Mon Sep 17 00:00:00 2001
From: eyllanesc <e.yllanescucho@gmail.com>
Date: Wed, 3 Jun 2020 11:28:44 -0500
Subject: [PATCH] fix deprecated

---
 src/CloseButton.cc    |  6 +++---
 src/Decoration.cc     | 16 ++++++++--------
 src/MaximizeButton.cc |  2 +-
 src/MinimizeButton.cc |  2 +-
 4 files changed, 13 insertions(+), 13 deletions(-)

diff --git a/src/CloseButton.cc b/src/CloseButton.cc
index f61d7f5..99148ed 100644
--- a/src/CloseButton.cc
+++ b/src/CloseButton.cc
@@ -31,7 +31,7 @@ namespace Material
 CloseButton::CloseButton(Decoration *decoration, QObject *parent)
     : DecorationButton(KDecoration2::DecorationButtonType::Close, decoration, parent)
 {
-    auto *decoratedClient = decoration->client().data();
+    auto *decoratedClient = decoration->client().toStrongRef().data();
     connect(decoratedClient, &KDecoration2::DecoratedClient::closeableChanged,
             this, &CloseButton::setVisible);

@@ -84,7 +84,7 @@ QColor CloseButton::backgroundColor() const
     }

     if (isPressed()) {
-        auto *decoratedClient = deco->client().data();
+        auto *decoratedClient = deco->client().toStrongRef().data();
         return decoratedClient->color(
             KDecoration2::ColorGroup::Warning,
             KDecoration2::ColorRole::Foreground
@@ -92,7 +92,7 @@ QColor CloseButton::backgroundColor() const
     }

     if (isHovered()) {
-        auto *decoratedClient = deco->client().data();
+        auto *decoratedClient = deco->client().toStrongRef().data();
         return decoratedClient->color(
             KDecoration2::ColorGroup::Warning,
             KDecoration2::ColorRole::Foreground
diff --git a/src/Decoration.cc b/src/Decoration.cc
index f388216..997f69f 100644
--- a/src/Decoration.cc
+++ b/src/Decoration.cc
@@ -106,7 +106,7 @@ Decoration::~Decoration()

 void Decoration::paint(QPainter *painter, const QRect &repaintRegion)
 {
-    auto *decoratedClient = client().data();
+    auto *decoratedClient = client().toStrongRef().data();

     if (!decoratedClient->isShaded()) {
         paintFrameBackground(painter, repaintRegion);
@@ -119,7 +119,7 @@ void Decoration::paint(QPainter *painter, const QRect &repaintRegion)

 void Decoration::init()
 {
-    auto *decoratedClient = client().data();
+    auto *decoratedClient = client().toStrongRef().data();

     connect(decoratedClient, &KDecoration2::DecoratedClient::widthChanged,
             this, &Decoration::updateTitleBar);
@@ -199,7 +199,7 @@ void Decoration::updateResizeBorders()

 void Decoration::updateTitleBar()
 {
-    auto *decoratedClient = client().data();
+    auto *decoratedClient = client().toStrongRef().data();
     setTitleBar(QRect(0, 0, decoratedClient->width(), titleBarHeight()));
 }

@@ -294,7 +294,7 @@ void Decoration::paintFrameBackground(QPainter *painter, const QRect &repaintReg
 {
     Q_UNUSED(repaintRegion)

-    const auto *decoratedClient = client().data();
+    const auto *decoratedClient = client().toStrongRef().data();

     painter->save();

@@ -314,7 +314,7 @@ void Decoration::paintFrameBackground(QPainter *painter, const QRect &repaintReg

 QColor Decoration::titleBarBackgroundColor() const
 {
-    const auto *decoratedClient = client().data();
+    const auto *decoratedClient = client().toStrongRef().data();
     const auto group = decoratedClient->isActive()
         ? KDecoration2::ColorGroup::Active
         : KDecoration2::ColorGroup::Inactive;
@@ -328,7 +328,7 @@ QColor Decoration::titleBarBackgroundColor() const

 QColor Decoration::titleBarForegroundColor() const
 {
-    const auto *decoratedClient = client().data();
+    const auto *decoratedClient = client().toStrongRef().data();
     const auto group = decoratedClient->isActive()
         ? KDecoration2::ColorGroup::Active
         : KDecoration2::ColorGroup::Inactive;
@@ -339,7 +339,7 @@ void Decoration::paintTitleBarBackground(QPainter *painter, const QRect &repaint
 {
     Q_UNUSED(repaintRegion)

-    const auto *decoratedClient = client().data();
+    const auto *decoratedClient = client().toStrongRef().data();

     painter->save();
     painter->setPen(Qt::NoPen);
@@ -352,7 +352,7 @@ void Decoration::paintCaption(QPainter *painter, const QRect &repaintRegion) con
 {
     Q_UNUSED(repaintRegion)

-    const auto *decoratedClient = client().data();
+    const auto *decoratedClient = client().toStrongRef().data();

     const int textWidth = settings()->fontMetrics().boundingRect(decoratedClient->caption()).width();
     const QRect textRect((size().width() - textWidth) / 2, 0, textWidth, titleBarHeight());
diff --git a/src/MaximizeButton.cc b/src/MaximizeButton.cc
index ea608ce..495071c 100644
--- a/src/MaximizeButton.cc
+++ b/src/MaximizeButton.cc
@@ -34,7 +34,7 @@ namespace Material
 MaximizeButton::MaximizeButton(Decoration *decoration, QObject *parent)
     : DecorationButton(KDecoration2::DecorationButtonType::Maximize, decoration, parent)
 {
-    auto *decoratedClient = decoration->client().data();
+    auto *decoratedClient = decoration->client().toStrongRef().data();
     connect(decoratedClient, &KDecoration2::DecoratedClient::maximizeableChanged,
             this, &MaximizeButton::setVisible);

diff --git a/src/MinimizeButton.cc b/src/MinimizeButton.cc
index 03c1dd4..3760669 100644
--- a/src/MinimizeButton.cc
+++ b/src/MinimizeButton.cc
@@ -34,7 +34,7 @@ namespace Material
 MinimizeButton::MinimizeButton(Decoration *decoration, QObject *parent)
     : DecorationButton(KDecoration2::DecorationButtonType::Minimize, decoration, parent)
 {
-    auto *decoratedClient = decoration->client().data();
+    auto *decoratedClient = decoration->client().toStrongRef().data();
     connect(decoratedClient, &KDecoration2::DecoratedClient::minimizeableChanged,
             this, &MinimizeButton::setVisible);

-- 
2.27.0