14 #include <QHBoxLayout>
31 QHBoxLayout *
hbox {
nullptr};
70 template<
class T,
class T2,
class T3> T
clamp(
const T val,
const T2 minval,
const T3 maxval)
72 assert(!(maxval < minval));
75 else if (val > maxval)
91 QLineEdit::setText(t);
114 ExprSlider(Qt::Orientation orientation, QWidget *parent =
nullptr)
115 : QSlider(orientation, parent)
212 void setColor(QColor color)
override;
275 void setColor(QColor color)
override;
T clamp(const T val, const T2 minval, const T3 maxval)
clamp val to the specified range [minval,maxval]
Control for editing a color ramp curve.
CCurveControl(int id, ColorCurveEditable *stringEditable)
QColor getColor() override
Interface for getting the color (used for linked color picking)
void setColor(QColor color) override
Interface for setting the color (used for linked color picking)
ColorCurveEditable * _curveEditable
color curve model
ExprColorCurve * _curve
color curve widget
A control for editing color swatches.
void colorChanged(int index, KSeExpr::Vec3d value)
void colorAdded(int index, KSeExpr::Vec3d value)
void colorRemoved(int index)
ColorSwatchEditable * _swatchEditable
model for the color swatches control
ExprColorSwatchWidget * _swatch
Edit box for the color swatches.
ColorSwatchControl(int id, ColorSwatchEditable *swatchEditable)
Control for editing a normal curve ramp.
CurveControl(int id, CurveEditable *stringEditable)
ExprCurve * _curve
curve edit widget
CurveEditable * _curveEditable
curve model
Channel Slider (i.e. for colors)
void mouseMoveEvent(QMouseEvent *e) override
void setValue(double value)
void wheelEvent(QWheelEvent *e) override
void valueChanged(int id, double value)
ExprChannelSlider(int id, QWidget *parent)
void paintEvent(QPaintEvent *e) override
void setDisplayColor(QColor c)
void mousePressEvent(QMouseEvent *e) override
Base class for all controls for Expressions.
std::atomic< bool > _updating
virtual QColor getColor()
Interface for getting the color (used for linked color picking)
void resizeEvent(QResizeEvent *event) override
void linkStateChange(int state)
void linkDisconnect(int newId)
void controlChanged(int id)
void linkColorLink(int id)
void linkColorEdited(int id, QColor color)
ExprControl(int id, Editable *editable, bool showColorLink)
~ExprControl() override=default
virtual void setColor(QColor)
Interface for setting the color (used for linked color picking)
Line Editor Widget(used for numbers)
virtual void setText(const QString &t)
std::atomic< bool > _signaling
void textChanged(int id, const QString &text)
void textChangedCB(const QString &text)
ExprLineEdit(int id, QWidget *parent)
Generic Slider (used for int and float sliders)
ExprSlider(QWidget *parent=nullptr)
ExprSlider(Qt::Orientation orientation, QWidget *parent=nullptr)
void wheelEvent(QWheelEvent *e) override
void paintEvent(QPaintEvent *e) override
void enterEvent(QEvent *) override
void mouseMoveEvent(QMouseEvent *e) override
void leaveEvent(QEvent *) override
void mousePressEvent(QMouseEvent *e) override
Number slider for either float or int data.
NumberEditable * _numberEditable
Pointer to the number control model.
void editChanged(int id, const QString &text)
void updateControl()
Update values in slider and textbox given what the model contains.
ExprLineEdit * _edit
Text box for the number.
void sliderChanged(int val)
ExprSlider * _slider
Slider for the number.
NumberControl(int id, NumberEditable *editable)
void setValue(double value)
Update the model with the value and notify the collection.
A control for editing strings, filenames, and directories.
StringEditable * _stringEditable
model for the string control
void textChanged(const QString &newText)
StringControl(int id, StringEditable *stringEditable)
QLineEdit * _edit
Edit box for the string.
A vector or color control (named vector because it edits a KSeExpr::Vec3d literal)
void setValue(int n, double value)
set the value in the model (in response to editing from controls)
VectorControl(int id, VectorEditable *editable)
void updateControl()
update the individual slider and eidt box controls
std::array< ExprLineEdit *, 3 > _edits
All three line edit widgets (for each component)
void editChanged(int id, const QString &text)
std::array< ExprChannelSlider *, 3 > _sliders
All three channel sliders (for each component)
void swatchChanged(QColor color)
VectorEditable * _numberEditable
Number model.
void sliderChanged(int id, double val)
QColor getColor() override
Interface for getting the color (used for linked color picking)
void setColor(QColor color) override
Interface for setting the color (used for linked color picking)
ExprCSwatchFrame * _swatch