diff --git a/src/kcms/screenedges/CMakeLists.txt b/src/kcms/screenedges/CMakeLists.txt index b068b5007f..2ffb7ad6b5 100644 --- a/src/kcms/screenedges/CMakeLists.txt +++ b/src/kcms/screenedges/CMakeLists.txt @@ -31,7 +31,7 @@ set(kcm_screenedges_LIBS KF6::KCMUtils KF6::I18n KF6::Package - KF6::Plasma + KF6::Svg ) target_link_libraries(kcm_kwinscreenedges ${X11_LIBRARIES} ${kcm_screenedges_LIBS}) diff --git a/src/kcms/screenedges/monitor.cpp b/src/kcms/screenedges/monitor.cpp index 327938eb2e..27a6234b24 100644 --- a/src/kcms/screenedges/monitor.cpp +++ b/src/kcms/screenedges/monitor.cpp @@ -11,7 +11,7 @@ #include "monitor.h" #include -#include +#include #include #include @@ -211,8 +211,9 @@ void Monitor::flip(Corner *c, QPoint pos) Monitor::Corner::Corner(Monitor *m) : m_monitor(m) - , m_button(std::make_unique()) + , m_button(std::make_unique()) { + m_button->setImageSet(m->svgImageSet()); m_button->setImagePath("widgets/button"); setAcceptHoverEvents(true); } diff --git a/src/kcms/screenedges/monitor.h b/src/kcms/screenedges/monitor.h index 0829e5d8d2..68d38de583 100644 --- a/src/kcms/screenedges/monitor.h +++ b/src/kcms/screenedges/monitor.h @@ -23,7 +23,7 @@ class QGraphicsView; class QGraphicsScene; class QMenu; -namespace Plasma +namespace KSvg { class FrameSvg; } @@ -98,7 +98,7 @@ protected: private: Monitor *const m_monitor; - const std::unique_ptr m_button; + const std::unique_ptr m_button; bool m_active = false; bool m_hover = false; }; diff --git a/src/kcms/screenedges/screenpreviewwidget.cpp b/src/kcms/screenedges/screenpreviewwidget.cpp index 4599af248b..87be00280b 100644 --- a/src/kcms/screenedges/screenpreviewwidget.cpp +++ b/src/kcms/screenedges/screenpreviewwidget.cpp @@ -13,9 +13,12 @@ #include #include -#include +#include +#include #include +#include + class ScreenPreviewWidgetPrivate { public: @@ -36,7 +39,7 @@ public: void updateScreenGraphics() { - int bottomElements = screenGraphics->elementSize("base").height() + screenGraphics->marginSize(Plasma::Types::BottomMargin); + int bottomElements = screenGraphics->elementSize("base").height() + screenGraphics->marginSize(KSvg::FrameSvg::BottomMargin); QRect bounds(QPoint(0, 0), QSize(q->size().width(), q->height() - bottomElements)); QSize monitorSize(q->size().width(), q->size().width() / ratio); @@ -56,7 +59,8 @@ public: } ScreenPreviewWidget *q; - Plasma::FrameSvg *screenGraphics; + std::unique_ptr svgImageSet; + KSvg::FrameSvg *screenGraphics; QPixmap preview; QRect monitorRect; qreal ratio; @@ -67,7 +71,10 @@ ScreenPreviewWidget::ScreenPreviewWidget(QWidget *parent) : QWidget(parent) , d(std::make_unique(this)) { - d->screenGraphics = new Plasma::FrameSvg(this); + d->svgImageSet = std::make_unique(); + d->svgImageSet->setBasePath("plasma/desktoptheme"); + d->screenGraphics = new KSvg::FrameSvg(this); + d->screenGraphics->setImageSet(d->svgImageSet.get()); d->screenGraphics->setImagePath("widgets/monitor"); d->updateScreenGraphics(); } @@ -102,6 +109,11 @@ QRect ScreenPreviewWidget::previewRect() const return d->previewRect; } +KSvg::ImageSet *ScreenPreviewWidget::svgImageSet() const +{ + return d->svgImageSet.get(); +} + void ScreenPreviewWidget::resizeEvent(QResizeEvent *e) { d->updateScreenGraphics(); diff --git a/src/kcms/screenedges/screenpreviewwidget.h b/src/kcms/screenedges/screenpreviewwidget.h index baa7b076c1..35fd3f1ba1 100644 --- a/src/kcms/screenedges/screenpreviewwidget.h +++ b/src/kcms/screenedges/screenpreviewwidget.h @@ -7,6 +7,11 @@ #include +namespace KSvg +{ +class ImageSet; +} + class ScreenPreviewWidgetPrivate; class ScreenPreviewWidget : public QWidget @@ -23,6 +28,7 @@ public: qreal ratio() const; QRect previewRect() const; + KSvg::ImageSet *svgImageSet() const; protected: void resizeEvent(QResizeEvent *event) override;