Skip to content

Commit 82fb8ef

Browse files
committed
Transform Toolbar: support rectangle radius
1 parent 029bfc1 commit 82fb8ef

File tree

1 file changed

+16
-14
lines changed

1 file changed

+16
-14
lines changed

src/ui/widgets/transformtoolbar.cpp

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
#include "GUI/global.h"
2727
#include "Private/document.h"
2828
#include "Boxes/circle.h"
29+
#include "Boxes/rectangle.h"
2930

3031
using namespace Friction::Ui;
3132

@@ -79,19 +80,20 @@ void TransformToolBar::setCurrentBox(BoundingBox * const target)
7980
mTransformSX->setTarget(scale ? scale->getXAnimator() : nullptr);
8081
mTransformSY->setTarget(scale ? scale->getYAnimator() : nullptr);
8182

82-
if (const auto &circle = enve_cast<Circle*>(target)) {
83-
mTransformRAct->setVisible(true);
84-
mTransformRXAct->setVisible(true);
85-
mTransformRYAct->setVisible(true);
86-
mTransformRX->setTarget(circle->getHRadiusAnimator()->getXAnimator());
87-
mTransformRY->setTarget(circle->getVRadiusAnimator()->getYAnimator());
88-
} else {
89-
mTransformRAct->setVisible(false);
90-
mTransformRXAct->setVisible(false);
91-
mTransformRYAct->setVisible(false);
92-
mTransformRX->setTarget(nullptr);
93-
mTransformRY->setTarget(nullptr);
94-
}
83+
const auto circle = enve_cast<Circle*>(target);
84+
const auto rectangle = enve_cast<RectangleBox*>(target);
85+
86+
mTransformRX->setTarget(circle ?
87+
circle->getHRadiusAnimator()->getXAnimator() :
88+
(rectangle ? rectangle->getRadiusAnimator()->getXAnimator() : nullptr));
89+
mTransformRY->setTarget(circle ?
90+
circle->getVRadiusAnimator()->getYAnimator() :
91+
(rectangle ? rectangle->getRadiusAnimator()->getYAnimator() : nullptr));
92+
93+
const bool radius = (circle || rectangle);
94+
mTransformRAct->setVisible(radius);
95+
mTransformRXAct->setVisible(radius);
96+
mTransformRYAct->setVisible(radius);
9597

9698
setEnabled(true);
9799
}
@@ -132,7 +134,7 @@ void TransformToolBar::setupWidgets()
132134
addWidget(mTransformSX);
133135
addWidget(mTransformSY);
134136

135-
mTransformRAct = addAction(tr("Radius"));
137+
mTransformRAct = addAction(QIcon::fromTheme("circleCreate"), tr("Radius"));
136138
mTransformRXAct = addWidget(mTransformRX);
137139
mTransformRYAct = addWidget(mTransformRY);
138140

0 commit comments

Comments
 (0)