|
26 | 26 | #include "GUI/global.h" |
27 | 27 | #include "Private/document.h" |
28 | 28 | #include "Boxes/circle.h" |
| 29 | +#include "Boxes/rectangle.h" |
29 | 30 |
|
30 | 31 | using namespace Friction::Ui; |
31 | 32 |
|
@@ -79,19 +80,20 @@ void TransformToolBar::setCurrentBox(BoundingBox * const target) |
79 | 80 | mTransformSX->setTarget(scale ? scale->getXAnimator() : nullptr); |
80 | 81 | mTransformSY->setTarget(scale ? scale->getYAnimator() : nullptr); |
81 | 82 |
|
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); |
95 | 97 |
|
96 | 98 | setEnabled(true); |
97 | 99 | } |
@@ -132,7 +134,7 @@ void TransformToolBar::setupWidgets() |
132 | 134 | addWidget(mTransformSX); |
133 | 135 | addWidget(mTransformSY); |
134 | 136 |
|
135 | | - mTransformRAct = addAction(tr("Radius")); |
| 137 | + mTransformRAct = addAction(QIcon::fromTheme("circleCreate"), tr("Radius")); |
136 | 138 | mTransformRXAct = addWidget(mTransformRX); |
137 | 139 | mTransformRYAct = addWidget(mTransformRY); |
138 | 140 |
|
|
0 commit comments