200 QHBoxLayout *mainLayout =
new QHBoxLayout;
201 mainLayout->setSpacing(5);
202 mainLayout->setContentsMargins(0, 0, 0, 0);
205 m_d->angleGauge->installEventFilter(
this);
208 m_d->spinBox->setSuffix(i18nc(
"Degrees symbol",
"˚"));
209 m_d->spinBox->setRange(0, 360);
210 m_d->spinBox->setWrapping(
true);
212 m_d->actionFlipHorizontally =
new QAction(
this);
213 m_d->actionFlipHorizontally->setText(
215 "Flips the angle horizontally, around the vertical axis",
216 "Flip the angle horizontally"
219 m_d->actionFlipVertically =
new QAction(
this);
220 m_d->actionFlipVertically->setText(
222 "Flips the angle vertically, around the horizontal axis",
223 "Flip the angle vertically"
226 m_d->actionFlipHorizontallyAndVertically =
new QAction(
this);
227 m_d->actionFlipHorizontallyAndVertically->setText(
229 "Flips the angle horizontally and vertically",
230 "Flip the angle horizontally and vertically"
233 QAction *menuSeparator =
new QAction(
this);
234 menuSeparator->setSeparator(
true);
235 m_d->actionResetAngle =
new QAction(
this);
236 m_d->actionResetAngle->setText(
238 "Reset the angle to a predefined value",
242 m_d->menuFlip =
new QMenu(
this);
243 m_d->menuFlip->addAction(
m_d->actionFlipHorizontally);
244 m_d->menuFlip->addAction(
m_d->actionFlipVertically);
245 m_d->menuFlip->addAction(
m_d->actionFlipHorizontallyAndVertically);
246 m_d->menuFlip->addAction(menuSeparator);
247 m_d->menuFlip->addAction(
m_d->actionResetAngle);
249 QHBoxLayout *layoutFlipButtons =
new QHBoxLayout;
250 layoutFlipButtons->setSpacing(1);
251 layoutFlipButtons->setContentsMargins(0, 0, 0, 0);
253 m_d->toolButtonFlipOptions =
new QToolButton(
this);
254 m_d->toolButtonFlipOptions->setPopupMode(QToolButton::InstantPopup);
255 m_d->toolButtonFlipOptions->setAutoRaise(
true);
257 m_d->toolButtonFlipOptions->setStyleSheet(
"QToolButton::menu-indicator { image: none; }");
258 m_d->toolButtonFlipOptions->setMenu(
m_d->menuFlip);
259 m_d->toolButtonFlipOptions->setFocusPolicy(Qt::StrongFocus);
261 m_d->toolButtonFlipHorizontally =
new QToolButton(
this);
262 m_d->toolButtonFlipHorizontally->setAutoRaise(
true);
264 m_d->toolButtonFlipHorizontally->setIconSize(QSize(20, 20));
265 m_d->toolButtonFlipHorizontally->setToolTip(
m_d->actionFlipHorizontally->text());
266 m_d->toolButtonFlipHorizontally->setFocusPolicy(Qt::StrongFocus);
268 m_d->toolButtonFlipVertically =
new QToolButton(
this);
269 m_d->toolButtonFlipVertically->setAutoRaise(
true);
271 m_d->toolButtonFlipVertically->setIconSize(QSize(20, 20));
272 m_d->toolButtonFlipVertically->setToolTip(
m_d->actionFlipVertically->text());
273 m_d->toolButtonFlipVertically->setFocusPolicy(Qt::StrongFocus);
275 m_d->toolButtonFlipHorizontallyAndVertically =
new QToolButton(
this);
276 m_d->toolButtonFlipHorizontallyAndVertically->setAutoRaise(
true);
278 m_d->toolButtonFlipHorizontallyAndVertically->setIconSize(QSize(20, 20));
279 m_d->toolButtonFlipHorizontallyAndVertically->setToolTip(
m_d->actionFlipHorizontallyAndVertically->text());
280 m_d->toolButtonFlipHorizontallyAndVertically->setFocusPolicy(Qt::StrongFocus);
282 layoutFlipButtons->addWidget(
m_d->toolButtonFlipOptions);
283 layoutFlipButtons->addWidget(
m_d->toolButtonFlipHorizontally);
284 layoutFlipButtons->addWidget(
m_d->toolButtonFlipVertically);
285 layoutFlipButtons->addWidget(
m_d->toolButtonFlipHorizontallyAndVertically);
287 mainLayout->addWidget(
m_d->angleGauge);
288 mainLayout->addWidget(
m_d->spinBox);
289 mainLayout->addLayout(layoutFlipButtons);
291 setLayout(mainLayout);
293 setTabOrder(
m_d->angleGauge,
m_d->spinBox);
294 setTabOrder(
m_d->spinBox,
m_d->toolButtonFlipOptions);
295 setTabOrder(
m_d->toolButtonFlipOptions,
m_d->toolButtonFlipHorizontally);
296 setTabOrder(
m_d->toolButtonFlipHorizontally,
m_d->toolButtonFlipVertically);
297 setTabOrder(
m_d->toolButtonFlipVertically,
m_d->toolButtonFlipHorizontallyAndVertically);
302 using namespace std::placeholders;
310 QOverload<double>::of(&KisDoubleParseSpinBox::valueChanged),
314 m_d->actionFlipHorizontally,
319 m_d->actionFlipVertically,
324 m_d->actionFlipHorizontallyAndVertically,
328 connect(
m_d->actionResetAngle, SIGNAL(triggered()), SLOT(
reset()));
329 connect(
m_d->toolButtonFlipHorizontally, SIGNAL(clicked()),
m_d->actionFlipHorizontally, SLOT(trigger()));
330 connect(
m_d->toolButtonFlipVertically, SIGNAL(clicked()),
m_d->actionFlipVertically, SLOT(trigger()));
331 connect(
m_d->toolButtonFlipHorizontallyAndVertically, SIGNAL(clicked()),
m_d->actionFlipHorizontallyAndVertically, SLOT(trigger()));