Krita Source Code Documentation
Loading...
Searching...
No Matches
RectangleShapeConfigWidget.cpp
Go to the documentation of this file.
1/* This file is part of the KDE project
2 * SPDX-FileCopyrightText: 2007 Jan Hambrecht <jaham@gmx.net>
3 *
4 * SPDX-License-Identifier: LGPL-2.0-or-later
5 */
6
8#include "RectangleShape.h"
10#include "kis_signals_blocker.h"
11#include "kis_assert.h"
12
14
16 : m_rectangle(0)
17{
18 widget.setupUi(this);
19
20 connect(widget.cornerRadiusX, SIGNAL(valueChangedPt(qreal)), this, SIGNAL(propertyChanged()));
21 connect(widget.cornerRadiusY, SIGNAL(valueChangedPt(qreal)), this, SIGNAL(propertyChanged()));
22}
23
25{
26 widget.cornerRadiusX->setUnit(unit);
27 widget.cornerRadiusY->setUnit(unit);
28}
29
31{
32 if (m_rectangle) {
34 }
35
36 m_rectangle = dynamic_cast<RectangleShape *>(shape);
37 if (!m_rectangle) return;
38
40
42}
43
45{
46 KisSignalsBlocker b(widget.cornerRadiusX, widget.cornerRadiusY);
47
48 QSizeF size = shape->size();
49
50 widget.cornerRadiusX->setMaximum(0.5 * size.width());
51 widget.cornerRadiusX->changeValue(0.01 * shape->cornerRadiusX() * 0.5 * size.width());
52 widget.cornerRadiusY->setMaximum(0.5 * size.height());
53 widget.cornerRadiusY->changeValue(0.01 * shape->cornerRadiusY() * 0.5 * size.height());
54}
55
57{
58 if (!m_rectangle) {
59 return;
60 }
61
62 QSizeF size = m_rectangle->size();
63
64 m_rectangle->setCornerRadiusX(100.0 * widget.cornerRadiusX->value() / (0.5 * size.width()));
65 m_rectangle->setCornerRadiusY(100.0 * widget.cornerRadiusY->value() / (0.5 * size.height()));
66}
67
69{
70 if (!m_rectangle) {
71 return 0;
72 }
73 QSizeF size = m_rectangle->size();
74
75 qreal cornerRadiusX = 100.0 * widget.cornerRadiusX->value() / (0.5 * size.width());
76 qreal cornerRadiusY = 100.0 * widget.cornerRadiusY->value() / (0.5 * size.height());
77
78 return new RectangleShapeConfigCommand(m_rectangle, cornerRadiusX, cornerRadiusY);
79}
80
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
QSizeF size() const override
reimplemented
void propertyChanged()
is emitted after one of the config options has changed
void addShapeChangeListener(ShapeChangeListener *listener)
Definition KoShape.cpp:1360
void removeShapeChangeListener(ShapeChangeListener *listener)
Definition KoShape.cpp:1368
ChangeType
Used by shapeChanged() to select which change was made.
Definition KoShape.h:95
@ ParameterChanged
the shapes parameter has changed (KoParameterShape only)
Definition KoShape.h:109
The undo / redo command for configuring a rectangle shape.
void notifyShapeChanged(KoShape::ChangeType type, KoShape *shape) override
void setUnit(const KoUnit &unit) override
reimplemented
void loadPropertiesFromShape(RectangleShape *shape)
KUndo2Command * createCommand() override
reimplemented
void save() override
reimplemented
Ui::RectangleShapeConfigWidget widget
void open(KoShape *shape) override
reimplemented
qreal cornerRadiusX() const
Returns the corner radius in x-direction.
void setCornerRadiusY(qreal radius)
void setCornerRadiusX(qreal radius)
qreal cornerRadiusY() const
Returns the corner radius in y-direction.
#define KIS_SAFE_ASSERT_RECOVER_RETURN(cond)
Definition kis_assert.h:128