File indexing completed on 2024-04-28 05:31:32

0001 /*
0002     SPDX-FileCopyrightText: 2020 Marco Martin <mart@kde.org>
0003 
0004     SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include "SensorFaceController.h"
0008 #include "SensorFace_p.h"
0009 
0010 #include <QDebug>
0011 
0012 using namespace KSysGuard;
0013 
0014 class SensorFace::Private
0015 {
0016 public:
0017     QPointer<QQuickItem> contentItem;
0018     SensorFaceController *controller = nullptr;
0019     FormFactor formFactor = Planar;
0020 };
0021 
0022 SensorFace::SensorFace(QQuickItem *parent)
0023     : QQuickItem(parent)
0024     , d(std::make_unique<Private>())
0025 {
0026 }
0027 
0028 SensorFace::~SensorFace()
0029 {
0030 }
0031 
0032 SensorFaceController *SensorFace::controller() const
0033 {
0034     return d->controller;
0035 }
0036 
0037 // Not writable from QML
0038 void SensorFace::setController(SensorFaceController *controller)
0039 {
0040     d->controller = controller;
0041 }
0042 
0043 SensorFace::FormFactor SensorFace::formFactor() const
0044 {
0045     return d->formFactor;
0046 }
0047 
0048 void SensorFace::setFormFactor(SensorFace::FormFactor formFactor)
0049 {
0050     if (d->formFactor == formFactor) {
0051         return;
0052     }
0053 
0054     d->formFactor = formFactor;
0055     Q_EMIT formFactorChanged();
0056 }
0057 
0058 QQuickItem *SensorFace::contentItem() const
0059 {
0060     return d->contentItem;
0061 }
0062 
0063 void SensorFace::setContentItem(QQuickItem *item)
0064 {
0065     if (d->contentItem == item) {
0066         return;
0067     }
0068     d->contentItem = item;
0069 
0070     if (d->contentItem) {
0071         d->contentItem->setParentItem(this);
0072         d->contentItem->setX(0);
0073         d->contentItem->setY(0);
0074         d->contentItem->setSize(size());
0075     }
0076 
0077     Q_EMIT contentItemChanged();
0078 }
0079 void SensorFace::geometryChange(const QRectF &newGeometry, const QRectF &oldGeometry)
0080 {
0081     if (d->contentItem) {
0082         d->contentItem->setX(0);
0083         d->contentItem->setY(0);
0084         d->contentItem->setSize(newGeometry.size());
0085     }
0086     QQuickItem::geometryChange(newGeometry, oldGeometry);
0087 }
0088 
0089 #include "moc_SensorFace_p.cpp"