Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_wdg_simplex_noise.cpp
Go to the documentation of this file.
1/*
2 * KDE. Krita Project.
3 *
4 * SPDX-FileCopyrightText: 2019 Eoin O 'Neill <eoinoneill1991@gmail.com>
5 * SPDX-FileCopyrightText: 2019 Emmet O 'Neill <emmetoneill.pdx@gmail.com>
6 *
7 * SPDX-License-Identifier: GPL-2.0-or-later
8 */
9
11#include "ui_wdgsimplexnoiseoptions.h"
12
13#include <QLayout>
16
18 : KisConfigWidget(parent),
19 updateCompressor(250, KisSignalCompressor::Mode::POSTPONE)
20{
21 m_widget = new Ui_WdgSimplexNoiseOptions();
22 m_widget->setupUi(this);
23 connect(m_widget->slider_frequency, SIGNAL(valueChanged(qreal)), &updateCompressor, SLOT(start()));
24 connect(m_widget->cb_looping, SIGNAL(stateChanged(int)), &updateCompressor, SLOT(start()));
25 connect(m_widget->seed_text, SIGNAL(textChanged(QString)), &updateCompressor, SLOT(start()));
26 connect(m_widget->ratiox_slider, SIGNAL(valueChanged(qreal)), &updateCompressor, SLOT(start()));
27 connect(m_widget->ratioy_slider, SIGNAL(valueChanged(qreal)), &updateCompressor, SLOT(start()));
28 connect(&updateCompressor, SIGNAL(timeout()), this, SIGNAL(sigConfigurationItemChanged()));
29 m_widget->slider_frequency->setRange(1.0f, 500.0f, 2);
30 m_widget->slider_frequency->setValue(25.0f);
31 m_widget->slider_frequency->setExponentRatio(3.0);
32 m_widget->ratiox_slider->setRange(0.0f, 2.0f, 2);
33 m_widget->ratiox_slider->setValue(1.0f);
34 m_widget->ratioy_slider->setRange(0.0f, 2.0f, 2);
35 m_widget->ratioy_slider->setValue(1.0f);
36}
37
42
44{
45 QVariant value;
46 if( config->getProperty("looping", value)) {
47 Qt::CheckState state = value.toBool() ? Qt::CheckState::Checked : Qt::CheckState::Unchecked;
48 widget()->cb_looping->setCheckState(state);
49 }
50 if( config->getProperty("frequency", value)) {
51 widget()->slider_frequency->setValue(value.toDouble());
52 }
53 if( config->getProperty("custom_seed_string", value)) {
54 m_widget->seed_text->setText(value.toString());
55 }
56 if( config->getProperty("ratio_x", value)) {
57 m_widget->ratiox_slider->setValue(value.toDouble());
58 }
59 if( config->getProperty("ratio_y", value)) {
60 m_widget->ratioy_slider->setValue(value.toDouble());
61 }
62 if( config->getProperty("seed", value)) {
63 this->seed = value.toUInt();
64 }
65}
66
68{
70 config->setProperty("looping", m_widget->cb_looping->isChecked());
71 config->setProperty("frequency", m_widget->slider_frequency->value());
72 config->setProperty("ratio_x", m_widget->ratiox_slider->value());
73 config->setProperty("ratio_y", m_widget->ratioy_slider->value());
74 config->setProperty("custom_seed_string", m_widget->seed_text->text());
75 config->setProperty("seed", this->seed);
76 return config;
77}
78
79
float value(const T *src, size_t ch)
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
void sigConfigurationItemChanged()
static KisResourcesInterfaceSP instance()
KisWdgSimplexNoise(KisFilter *nfilter, QWidget *parent=0)
void setConfiguration(const KisPropertiesConfigurationSP) override
KisPropertiesConfigurationSP configuration() const override
Ui_WdgSimplexNoiseOptions * m_widget
KisSignalCompressor updateCompressor
const Ui_WdgSimplexNoiseOptions * widget() const