Krita Source Code Documentation
Loading...
Searching...
No Matches
KisToolKnifeOptionsWidget Class Reference

#include <KisToolKnifeOptionsWidget.h>

+ Inheritance diagram for KisToolKnifeOptionsWidget:

Classes

struct  Private
 

Public Types

enum  GapWidthType { Thick , Thin , Special , Automatic }
 
enum  ToolMode { AddGutter , RemoveGutter }
 

Public Slots

void currentNodeChanged (const KisNodeSP node)
 
void currentWidthSystemChanged ()
 
void modeChanged ()
 
void unitForWidthChanged (int index)
 

Public Member Functions

GutterWidthsConfig getCurrentWidthsConfig ()
 
ToolMode getToolMode ()
 
 KisToolKnifeOptionsWidget (KisCanvasResourceProvider *provider, QWidget *parent, QString toolId, qreal resolution)
 
 ~KisToolKnifeOptionsWidget () override
 

Private Attributes

const QScopedPointer< Privatem_d
 

Friends

class KisToolKnife
 

Detailed Description

Definition at line 23 of file KisToolKnifeOptionsWidget.h.

Member Enumeration Documentation

◆ GapWidthType

◆ ToolMode

Enumerator
AddGutter 
RemoveGutter 

Definition at line 37 of file KisToolKnifeOptionsWidget.h.

Constructor & Destructor Documentation

◆ KisToolKnifeOptionsWidget()

KisToolKnifeOptionsWidget::KisToolKnifeOptionsWidget ( KisCanvasResourceProvider * provider,
QWidget * parent,
QString toolId,
qreal resolution )

Definition at line 272 of file KisToolKnifeOptionsWidget.cpp.

273 : QWidget(parent),
274 m_d(new Private)
275{
276 m_d->ui = new Ui_KisToolKnifeOptionsWidget();
277 m_d->ui->setupUi(this);
278
279 m_d->toolId = toolId;
280 m_d->resolution = resolution;
281
282
283 //m_d->ui->optionButtonStripToolMode->addButton(KisIconUtils::loadIcon("tool_comic_panel_scissors"));
284 //KisOptionButtonStrip *optionButtonStripToolMode =
285 // new KisOptionButtonStrip;
286 m_d->buttonModeAddGutter = m_d->ui->optionButtonStripToolMode->addButton(
287 KisIconUtils::loadIcon("tool_comic_panel_cut"));
288 m_d->buttonModeRemoveGutter = m_d->ui->optionButtonStripToolMode->addButton(
289 KisIconUtils::loadIcon("tool_comic_panel_merge"));
290 //m_d->buttonModeMoveGutterEndPoint = m_d->ui->optionButtonStripToolMode->addButton(
291 // KisIconUtils::loadIcon("tool_comic_panel_move_point"));
292
293 m_d->buttonModeAddGutter->setChecked(true);
294 m_d->buttonModeAddGutter->setMinimumSize(QSize(20, 20));
295 m_d->buttonModeRemoveGutter->setMinimumSize(QSize(20, 20));
296 m_d->buttonModeAddGutter->setIconSize(QSize(16, 16));
297 m_d->buttonModeRemoveGutter->setIconSize(QSize(16, 16));
298
299 m_d->buttonModeAddGutter->setToolTip(i18nc("Tooltip for the button in the Knife Tool for the mode to add gutters/cut through shapes", "Cutting mode: Cuts through shapes to create gutters of specified width."));
300 m_d->buttonModeRemoveGutter->setToolTip(i18nc("Tooltip for the button in the Knife Tool for the mode to remove gutters/merge shapes", "Merging mode: Removes the gutter between shapes."));
301
302 //m_d->buttonModeMoveGutterEndPoint->setMinimumSize(QSize(36, 36));
303 //m_d->buttonModeMoveGutterEndPoint->setIconSize(QSize(28, 28));
304
305
306 m_d->ui->unitsCombobox->addItem(i18n("Pixels"), QVariant("px"));
307 m_d->ui->unitsCombobox->addItem(i18n("Millimeters"), QVariant("mm"));
308
309 m_d->ui->automaticHorizontalCombobox->addItem(i18nc("Thick type of gutter (in comics); keep consistent with the label in the GUI", "Thick"), QVariant(KisToolKnifeOptionsWidget::Thick));
310 m_d->ui->automaticHorizontalCombobox->addItem(i18nc("Thin type of gutter (in comics); keep consistent with the label in the GUI", "Thin"), QVariant(KisToolKnifeOptionsWidget::Thin));
311 m_d->ui->automaticHorizontalCombobox->addItem(i18nc("Special type of gutter (in comics); keep consistent with the label in the GUI", "Special"), QVariant(KisToolKnifeOptionsWidget::Special));
312
313
314 m_d->ui->automaticVerticalCombobox->addItem(i18nc("Thick type of gutter (in comics); keep consistent with the label in the GUI", "Thick"), QVariant(KisToolKnifeOptionsWidget::Thick));
315 m_d->ui->automaticVerticalCombobox->addItem(i18nc("Thin type of gutter (in comics); keep consistent with the label in the GUI", "Thin"), QVariant(KisToolKnifeOptionsWidget::Thin));
316 m_d->ui->automaticVerticalCombobox->addItem(i18nc("Special type of gutter (in comics); keep consistent with the label in the GUI", "Special"), QVariant(KisToolKnifeOptionsWidget::Special));
317
318
319 m_d->ui->automaticDiagonalCombobox->addItem(i18nc("Thick type of gutter (in comics); keep consistent with the label in the GUI", "Thick"), QVariant(KisToolKnifeOptionsWidget::Thick));
320 m_d->ui->automaticDiagonalCombobox->addItem(i18nc("Thin type of gutter (in comics); keep consistent with the label in the GUI", "Thin"), QVariant(KisToolKnifeOptionsWidget::Thin));
321 m_d->ui->automaticDiagonalCombobox->addItem(i18nc("Special type of gutter (in comics); keep consistent with the label in the GUI", "Special"), QVariant(KisToolKnifeOptionsWidget::Special));
322
323
324 m_d->readFromConfig(toolId);
325 connect(m_d->ui->unitsCombobox, SIGNAL(currentIndexChanged(int)), this, SLOT(unitForWidthChanged(int)));
326
327 connect(provider, SIGNAL(sigNodeChanged(const KisNodeSP)), this, SLOT(currentNodeChanged(const KisNodeSP)));
328 connect(m_d->buttonModeAddGutter, SIGNAL(clicked()), this, SLOT(modeChanged()));
329 connect(m_d->buttonModeRemoveGutter, SIGNAL(clicked()), this, SLOT(modeChanged()));
330
331 connect(m_d->ui->automaticGapWidthRadioButton, SIGNAL(toggled(bool)), this, SLOT(currentWidthSystemChanged()));
332
333 modeChanged();
334 currentNodeChanged(provider->currentNode());
336
337}
const QScopedPointer< Private > m_d
void currentNodeChanged(const KisNodeSP node)
QIcon loadIcon(const QString &name)

References KisCanvasResourceProvider::currentNode(), currentNodeChanged(), currentWidthSystemChanged(), KisIconUtils::loadIcon(), m_d, modeChanged(), Special, Thick, Thin, and unitForWidthChanged().

◆ ~KisToolKnifeOptionsWidget()

KisToolKnifeOptionsWidget::~KisToolKnifeOptionsWidget ( )
override

Definition at line 341 of file KisToolKnifeOptionsWidget.cpp.

342{
343 m_d->writeToConfig(m_d->toolId);
344 delete m_d->ui;
345 m_d->ui = nullptr;
346}

References m_d.

Member Function Documentation

◆ currentNodeChanged

void KisToolKnifeOptionsWidget::currentNodeChanged ( const KisNodeSP node)
slot

Definition at line 364 of file KisToolKnifeOptionsWidget.cpp.

365{
366 const KisShapeLayer *shapeLayer = qobject_cast<const KisShapeLayer*>(node.data());
367 if (!shapeLayer) {
368 m_d->ui->gapOptionsWidget->setVisible(false);
369 m_d->ui->warningLabel->setVisible(true);
370
371 } else {
372 m_d->ui->gapOptionsWidget->setVisible(true);
373 m_d->ui->warningLabel->setVisible(false);
374 }
375}

References KisSharedPtr< T >::data(), and m_d.

◆ currentWidthSystemChanged

void KisToolKnifeOptionsWidget::currentWidthSystemChanged ( )
slot

Definition at line 391 of file KisToolKnifeOptionsWidget.cpp.

392{
393
394 GapWidthType gapConfig = m_d->getCurrentWidthType();
395 switch(gapConfig) {
396 case Thin:
397 case Thick:
398 case Special:
399 m_d->ui->automaticDiagonalCombobox->setEnabled(false);
400 m_d->ui->automaticVerticalCombobox->setEnabled(false);
401 m_d->ui->automaticHorizontalCombobox->setEnabled(false);
402 m_d->ui->gutterWidthAngleSpinBox->setEnabled(false);
403 m_d->ui->angleLabel->setEnabled(false);
404 m_d->ui->horizontalLabel->setEnabled(false);
405 m_d->ui->verticalLabel->setEnabled(false);
406 m_d->ui->diagonalLabel->setEnabled(false);
407
408 break;
409 case Automatic:
410 m_d->ui->automaticDiagonalCombobox->setEnabled(true);
411 m_d->ui->automaticVerticalCombobox->setEnabled(true);
412 m_d->ui->automaticHorizontalCombobox->setEnabled(true);
413 m_d->ui->gutterWidthAngleSpinBox->setEnabled(true);
414 m_d->ui->horizontalLabel->setEnabled(true);
415 m_d->ui->verticalLabel->setEnabled(true);
416 m_d->ui->diagonalLabel->setEnabled(true);
417 m_d->ui->angleLabel->setEnabled(true);
418 break;
419 }
420}

References Automatic, m_d, Special, Thick, and Thin.

◆ getCurrentWidthsConfig()

GutterWidthsConfig KisToolKnifeOptionsWidget::getCurrentWidthsConfig ( )

Definition at line 348 of file KisToolKnifeOptionsWidget.cpp.

349{
350 return m_d->getCurrentWidthsConfig(m_d->getCurrentWidthType());
351}

References m_d.

◆ getToolMode()

KisToolKnifeOptionsWidget::ToolMode KisToolKnifeOptionsWidget::getToolMode ( )

Definition at line 353 of file KisToolKnifeOptionsWidget.cpp.

354{
355 return m_d->getToolMode();
356}

References m_d.

◆ modeChanged

void KisToolKnifeOptionsWidget::modeChanged ( )
slot

Definition at line 377 of file KisToolKnifeOptionsWidget.cpp.

378{
380 switch(mode) {
381 case AddGutter:
382 m_d->ui->gapOptionsWidget->setEnabled(true);
383 break;
384 case RemoveGutter:
385 m_d->ui->gapOptionsWidget->setEnabled(false);
386 break;
387
388 }
389}

References AddGutter, getToolMode(), m_d, and RemoveGutter.

◆ unitForWidthChanged

void KisToolKnifeOptionsWidget::unitForWidthChanged ( int index)
slot

Definition at line 358 of file KisToolKnifeOptionsWidget.cpp.

359{
360 QString selected = m_d->ui->unitsCombobox->itemData(index).toString();
361 m_d->setUnit(selected);
362}

References m_d.

Friends And Related Symbol Documentation

◆ KisToolKnife

friend class KisToolKnife
friend

Definition at line 55 of file KisToolKnifeOptionsWidget.h.

Member Data Documentation

◆ m_d

const QScopedPointer<Private> KisToolKnifeOptionsWidget::m_d
private

Definition at line 58 of file KisToolKnifeOptionsWidget.h.


The documentation for this class was generated from the following files: