kcms/screenedges: Port to KSvg
Removes the dependency on Plasma Framework from the KCMs. This won't use the current Plasma theme but always the default one. However, the monitor graphic hasn't really been used anywhere else anymore (it used to be in e.g. the wallpaper settings in Plasma 4), so I think this is alright.
This commit is contained in:
parent
adf8ed8f34
commit
23059285cf
5 changed files with 28 additions and 9 deletions
|
@ -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})
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
#include "monitor.h"
|
||||
|
||||
#include <KLocalizedString>
|
||||
#include <Plasma/FrameSvg>
|
||||
#include <KSvg/FrameSvg>
|
||||
|
||||
#include <QApplication>
|
||||
#include <QDebug>
|
||||
|
@ -211,8 +211,9 @@ void Monitor::flip(Corner *c, QPoint pos)
|
|||
|
||||
Monitor::Corner::Corner(Monitor *m)
|
||||
: m_monitor(m)
|
||||
, m_button(std::make_unique<Plasma::FrameSvg>())
|
||||
, m_button(std::make_unique<KSvg::FrameSvg>())
|
||||
{
|
||||
m_button->setImageSet(m->svgImageSet());
|
||||
m_button->setImagePath("widgets/button");
|
||||
setAcceptHoverEvents(true);
|
||||
}
|
||||
|
|
|
@ -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<Plasma::FrameSvg> m_button;
|
||||
const std::unique_ptr<KSvg::FrameSvg> m_button;
|
||||
bool m_active = false;
|
||||
bool m_hover = false;
|
||||
};
|
||||
|
|
|
@ -13,9 +13,12 @@
|
|||
#include <QDebug>
|
||||
#include <QMimeData>
|
||||
|
||||
#include <Plasma/FrameSvg>
|
||||
#include <KSvg/FrameSvg>
|
||||
#include <KSvg/ImageSet>
|
||||
#include <kurlmimedata.h>
|
||||
|
||||
#include <memory>
|
||||
|
||||
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<KSvg::ImageSet> svgImageSet;
|
||||
KSvg::FrameSvg *screenGraphics;
|
||||
QPixmap preview;
|
||||
QRect monitorRect;
|
||||
qreal ratio;
|
||||
|
@ -67,7 +71,10 @@ ScreenPreviewWidget::ScreenPreviewWidget(QWidget *parent)
|
|||
: QWidget(parent)
|
||||
, d(std::make_unique<ScreenPreviewWidgetPrivate>(this))
|
||||
{
|
||||
d->screenGraphics = new Plasma::FrameSvg(this);
|
||||
d->svgImageSet = std::make_unique<KSvg::ImageSet>();
|
||||
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();
|
||||
|
|
|
@ -7,6 +7,11 @@
|
|||
|
||||
#include <QWidget>
|
||||
|
||||
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;
|
||||
|
|
Loading…
Reference in a new issue