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 , MoveGutterEndPoint }
 

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

Constructor & Destructor Documentation

◆ KisToolKnifeOptionsWidget()

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

Definition at line 273 of file KisToolKnifeOptionsWidget.cpp.

274 : QWidget(parent),
275 m_d(new Private)
276{
277 m_d->ui = new Ui_KisToolKnifeOptionsWidget();
278 m_d->ui->setupUi(this);
279
280 m_d->toolId = toolId;
281 m_d->resolution = resolution;
282
283
284 //m_d->ui->optionButtonStripToolMode->addButton(KisIconUtils::loadIcon("tool_comic_panel_scissors"));
285 //KisOptionButtonStrip *optionButtonStripToolMode =
286 // new KisOptionButtonStrip;
287 m_d->buttonModeAddGutter = m_d->ui->optionButtonStripToolMode->addButton(
288 KisIconUtils::loadIcon("tool_comic_panel_cut"));
289 m_d->buttonModeRemoveGutter = m_d->ui->optionButtonStripToolMode->addButton(
290 KisIconUtils::loadIcon("tool_comic_panel_merge"));
291 //m_d->buttonModeMoveGutterEndPoint = m_d->ui->optionButtonStripToolMode->addButton(
292 // KisIconUtils::loadIcon("tool_comic_panel_move_point"));
293
294 m_d->buttonModeAddGutter->setChecked(true);
295 m_d->buttonModeAddGutter->setMinimumSize(QSize(20, 20));
296 m_d->buttonModeRemoveGutter->setMinimumSize(QSize(20, 20));
297 m_d->buttonModeAddGutter->setIconSize(QSize(16, 16));
298 m_d->buttonModeRemoveGutter->setIconSize(QSize(16, 16));
299
300 //m_d->buttonModeMoveGutterEndPoint->setMinimumSize(QSize(36, 36));
301 //m_d->buttonModeMoveGutterEndPoint->setIconSize(QSize(28, 28));
302
303
304 m_d->ui->unitsCombobox->addItem(i18n("Pixels"), QVariant("px"));
305 m_d->ui->unitsCombobox->addItem(i18n("Millimeters"), QVariant("mm"));
306
307 m_d->ui->automaticHorizontalCombobox->addItem(i18nc("Thick type of gutter (in comics); keep consistent with the label in the GUI", "Thick"), QVariant(KisToolKnifeOptionsWidget::Thick));
308 m_d->ui->automaticHorizontalCombobox->addItem(i18nc("Thin type of gutter (in comics); keep consistent with the label in the GUI", "Thin"), QVariant(KisToolKnifeOptionsWidget::Thin));
309 m_d->ui->automaticHorizontalCombobox->addItem(i18nc("Special type of gutter (in comics); keep consistent with the label in the GUI", "Special"), QVariant(KisToolKnifeOptionsWidget::Special));
310
311
312 m_d->ui->automaticVerticalCombobox->addItem(i18nc("Thick type of gutter (in comics); keep consistent with the label in the GUI", "Thick"), QVariant(KisToolKnifeOptionsWidget::Thick));
313 m_d->ui->automaticVerticalCombobox->addItem(i18nc("Thin type of gutter (in comics); keep consistent with the label in the GUI", "Thin"), QVariant(KisToolKnifeOptionsWidget::Thin));
314 m_d->ui->automaticVerticalCombobox->addItem(i18nc("Special type of gutter (in comics); keep consistent with the label in the GUI", "Special"), QVariant(KisToolKnifeOptionsWidget::Special));
315
316
317 m_d->ui->automaticDiagonalCombobox->addItem(i18nc("Thick type of gutter (in comics); keep consistent with the label in the GUI", "Thick"), QVariant(KisToolKnifeOptionsWidget::Thick));
318 m_d->ui->automaticDiagonalCombobox->addItem(i18nc("Thin type of gutter (in comics); keep consistent with the label in the GUI", "Thin"), QVariant(KisToolKnifeOptionsWidget::Thin));
319 m_d->ui->automaticDiagonalCombobox->addItem(i18nc("Special type of gutter (in comics); keep consistent with the label in the GUI", "Special"), QVariant(KisToolKnifeOptionsWidget::Special));
320
321
322 m_d->readFromConfig(toolId);
323 connect(m_d->ui->unitsCombobox, SIGNAL(currentIndexChanged(int)), this, SLOT(unitForWidthChanged(int)));
324
325 connect(provider, SIGNAL(sigNodeChanged(const KisNodeSP)), this, SLOT(currentNodeChanged(const KisNodeSP)));
326 connect(m_d->buttonModeAddGutter, SIGNAL(clicked()), this, SLOT(modeChanged()));
327 connect(m_d->buttonModeRemoveGutter, SIGNAL(clicked()), this, SLOT(modeChanged()));
328
329 connect(m_d->ui->automaticGapWidthRadioButton, SIGNAL(toggled(bool)), this, SLOT(currentWidthSystemChanged()));
330
331 modeChanged();
332 currentNodeChanged(provider->currentNode());
334
335}
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 339 of file KisToolKnifeOptionsWidget.cpp.

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

References m_d.

Member Function Documentation

◆ currentNodeChanged

void KisToolKnifeOptionsWidget::currentNodeChanged ( const KisNodeSP node)
slot

Definition at line 362 of file KisToolKnifeOptionsWidget.cpp.

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

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

◆ currentWidthSystemChanged

void KisToolKnifeOptionsWidget::currentWidthSystemChanged ( )
slot

Definition at line 389 of file KisToolKnifeOptionsWidget.cpp.

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

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

◆ getCurrentWidthsConfig()

GutterWidthsConfig KisToolKnifeOptionsWidget::getCurrentWidthsConfig ( )

Definition at line 346 of file KisToolKnifeOptionsWidget.cpp.

347{
348 return m_d->getCurrentWidthsConfig(m_d->getCurrentWidthType());
349}

References m_d.

◆ getToolMode()

KisToolKnifeOptionsWidget::ToolMode KisToolKnifeOptionsWidget::getToolMode ( )

Definition at line 351 of file KisToolKnifeOptionsWidget.cpp.

352{
353 return m_d->getToolMode();
354}

References m_d.

◆ modeChanged

void KisToolKnifeOptionsWidget::modeChanged ( )
slot

Definition at line 375 of file KisToolKnifeOptionsWidget.cpp.

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

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

◆ unitForWidthChanged

void KisToolKnifeOptionsWidget::unitForWidthChanged ( int index)
slot

Definition at line 356 of file KisToolKnifeOptionsWidget.cpp.

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

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: