Krita Source Code Documentation
Loading...
Searching...
No Matches
KisDynamicSensorFactoryTime.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_SensorTimeConfiguration.h"
9
12#include <KisKritaSensorPack.h>
13
14namespace {
15 auto safeDereferenceTimeSensor = lager::lenses::getset(
17 const KisKritaSensorPack *pack = dynamic_cast<const KisKritaSensorPack*>(data.sensorData.constData());
18 if (pack) {
19 return pack->constSensorsStruct().sensorTime;
20 } else {
21 qWarning() << "safeDereferenceTimeSensor(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().sensorTime = sensor;
29 } else {
30 qWarning() << "safeDereferenceTimeSensor(set): failed to get a Krita sensor data";
31 }
32 return data;
33 });
34}
35
37 : KisSimpleDynamicSensorFactory(TimeId.id(), 0, 3000, i18n("0"), "", i18n(" ms"))
38{
39
40}
41
42QWidget *KisDynamicSensorFactoryTime::createConfigWidget(lager::cursor<KisCurveOptionDataCommon> data, QWidget *parent)
43{
44 QWidget* wdg = new QWidget(parent);
45 Ui_SensorTimeConfiguration stc;
46 stc.setupUi(wdg);
47
49 new KisSensorWithLengthModel(data.zoom(safeDereferenceTimeSensor), wdg);
50
51 using namespace KisWidgetConnectionUtils;
52
53 connectControl(stc.checkBoxRepeat, model, "isPeriodic");
54 connectControl(stc.spinBoxDuration, model, "length");
55
56 stc.spinBoxDuration->setRange(1, 10000);
57 stc.spinBoxDuration->setExponentRatio(2);
58 stc.spinBoxDuration->setSuffix(i18n(" ms"));
59
60 return wdg;
61}
62
67
69{
70 return i18n("%1 ms", length);
71}
qreal length(const QPointF &vec)
Definition Ellipse.cc:82
const KoID FadeId("fade", ki18nc("Context: dynamic sensors", "Fade"))
generate a number that increase every time you call it (e.g. per dab)
const KoID TimeId("time", ki18nc("Context: dynamic sensors", "Time"))
generate a number that increase with time
QString maximumLabel(int length) override
QWidget * createConfigWidget(lager::cursor< KisCurveOptionDataCommon > data, QWidget *parent) override
const KisKritaSensorData & constSensorsStruct() const
KisKritaSensorData & sensorsStruct()
QSharedDataPointer< KisSensorPackInterface > sensorData
KisSensorWithLengthData sensorTime