File indexing completed on 2025-02-09 06:41:24
0001 /* 0002 SPDX-FileCopyrightText: 2023 Marco Martin <mart@kde.org> 0003 0004 SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #include "dialogbackground_p.h" 0008 0009 #include <QQmlComponent> 0010 #include <qquickitem.h> 0011 0012 #include "sharedqmlengine.h" 0013 0014 namespace PlasmaQuick 0015 { 0016 0017 DialogBackground::DialogBackground(QQuickItem *parent) 0018 : QQuickItem(parent) 0019 , m_sharedEngine(new SharedQmlEngine(this)) 0020 { 0021 QQmlComponent component(m_sharedEngine->engine().get(), QStringLiteral(":/DialogBackground.qml")); 0022 0023 QVariantHash props({{QStringLiteral("parent"), QVariant::fromValue(this)}}); 0024 QObject *object = m_sharedEngine->createObjectFromComponent(&component, m_sharedEngine->rootContext(), props); 0025 0026 m_frameSvgItem = qobject_cast<QQuickItem *>(object); 0027 Q_ASSERT(m_frameSvgItem); 0028 0029 connect(m_frameSvgItem, SIGNAL(maskChanged()), this, SIGNAL(maskChanged())); 0030 connect(m_frameSvgItem->property("fixedMargins").value<QObject *>(), SIGNAL(marginsChanged()), this, SIGNAL(fixedMarginsChanged())); 0031 } 0032 0033 DialogBackground::~DialogBackground() 0034 { 0035 } 0036 0037 QString DialogBackground::imagePath() const 0038 { 0039 return m_frameSvgItem->property("imagePath").toString(); 0040 } 0041 0042 void DialogBackground::setImagePath(const QString &path) 0043 { 0044 m_frameSvgItem->setProperty("imagePath", path); 0045 } 0046 0047 void DialogBackground::setEnabledBorders(const KSvg::FrameSvg::EnabledBorders borders) 0048 { 0049 m_frameSvgItem->setProperty("enabledBorders", QVariant::fromValue(borders)); 0050 } 0051 0052 KSvg::FrameSvg::EnabledBorders DialogBackground::enabledBorders() const 0053 { 0054 return m_frameSvgItem->property("enabledBorders").value<KSvg::FrameSvg::EnabledBorders>(); 0055 } 0056 0057 QRegion DialogBackground::mask() const 0058 { 0059 return m_frameSvgItem->property("mask").value<QRegion>(); 0060 } 0061 0062 qreal DialogBackground::leftMargin() const 0063 { 0064 // assume margins is valid, as we asserted it's a valid FrameSvgItem 0065 QObject *margins = m_frameSvgItem->property("fixedMargins").value<QObject *>(); 0066 return margins->property("left").value<qreal>(); 0067 } 0068 0069 qreal DialogBackground::topMargin() const 0070 { 0071 QObject *margins = m_frameSvgItem->property("fixedMargins").value<QObject *>(); 0072 return margins->property("top").value<qreal>(); 0073 } 0074 0075 qreal DialogBackground::rightMargin() const 0076 { 0077 QObject *margins = m_frameSvgItem->property("fixedMargins").value<QObject *>(); 0078 return margins->property("right").value<qreal>(); 0079 } 0080 0081 qreal DialogBackground::bottomMargin() const 0082 { 0083 QObject *margins = m_frameSvgItem->property("fixedMargins").value<QObject *>(); 0084 return margins->property("bottom").value<qreal>(); 0085 } 0086 0087 QObject *DialogBackground::fixedMargins() const 0088 { 0089 return m_frameSvgItem->property("fixedMargins").value<QObject *>(); 0090 } 0091 0092 QObject *DialogBackground::inset() const 0093 { 0094 return m_frameSvgItem->property("inset").value<QObject *>(); 0095 } 0096 } 0097 0098 #include "private/moc_dialogbackground_p.cpp"