Krita Source Code Documentation
Loading...
Searching...
No Matches
KisDynamicSensorFactoryDistance.cpp
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2022 Dmitry Kazakov <dimula73@gmail.com>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
7
8#include "ui_SensorDistanceConfiguration.h"
9
12#include <KisKritaSensorPack.h>
13
14namespace {
15 auto safeDereferenceDistanceSensor = lager::lenses::getset(
17 const KisKritaSensorPack *pack = dynamic_cast<const KisKritaSensorPack*>(data.sensorData.constData());
18 if (pack) {
20 } else {
21 qWarning() << "safeDereferenceDistanceSensor(get): failed to get a Krita sensor data";
23 }
24 },
26 KisKritaSensorPack *pack = dynamic_cast<KisKritaSensorPack*>(data.sensorData.data());
27 if (pack) {
28 pack->sensorsStruct().sensorDistance = sensor;
29 } else {
30 qWarning() << "safeDereferenceDistanceSensor(set): failed to get a Krita sensor data";
31 }
32 return data;
33 });
34}
35
41
42QWidget *KisDynamicSensorFactoryDistance::createConfigWidget(lager::cursor<KisCurveOptionDataCommon> data, QWidget *parent)
43{
44 QWidget* wdg = new QWidget(parent);
45 Ui_SensorDistanceConfiguration stc;
46 stc.setupUi(wdg);
47
49 new KisSensorWithLengthModel(data.zoom(safeDereferenceDistanceSensor), wdg);
50
51 using namespace KisWidgetConnectionUtils;
52
53 connectControl(stc.checkBoxRepeat, model, "isPeriodic");
54 connectControl(stc.spinBoxLength, model, "length");
55
56 stc.spinBoxLength->setSuffix(i18n(" px"));
57 stc.spinBoxLength->setExponentRatio(3.0);
58
59 return wdg;
60}
61
66
68{
69 return i18n("%1 px", length);
70}
qreal length(const QPointF &vec)
Definition Ellipse.cc:82
const KoID DistanceId("distance", ki18nc("Context: dynamic sensors", "Distance"))
generate a number that increase with distance
QWidget * createConfigWidget(lager::cursor< KisCurveOptionDataCommon > data, QWidget *parent) override
const KisKritaSensorData & constSensorsStruct() const
KisKritaSensorData & sensorsStruct()
QSharedDataPointer< KisSensorPackInterface > sensorData
KisSensorWithLengthData sensorDistance