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

#include <kistoolcropconfigwidget.h>

+ Inheritance diagram for KisToolCropConfigWidget:

Public Slots

void cropTypeSelectableChanged ()
 

Signals

void allowGrowChanged (bool newLock)
 
void cropHeightChanged (int newHeight)
 
void cropTypeChanged (int cropType)
 
void cropWidthChanged (int newWidth)
 
void cropXChanged (int newX)
 
void cropYChanged (int newY)
 
void decorationChanged (int newDecoration)
 
void growCenterChanged (bool newLock)
 
void lockHeightChanged (bool newLock)
 
void lockRatioChanged (bool newLock)
 
void lockWidthChanged (bool newLock)
 
void ratioChanged (double newRatio)
 

Public Member Functions

 KisToolCropConfigWidget (QWidget *parent, KisToolCrop *cropTool)
 

Private Slots

void updateLockHeightIcon ()
 
void updateLockRatioIcon ()
 
void updateLockWidthIcon ()
 

Private Attributes

KisToolCropm_cropTool
 

Detailed Description

Definition at line 14 of file kistoolcropconfigwidget.h.

Constructor & Destructor Documentation

◆ KisToolCropConfigWidget()

KisToolCropConfigWidget::KisToolCropConfigWidget ( QWidget * parent,
KisToolCrop * cropTool )

Definition at line 15 of file kistoolcropconfigwidget.cpp.

16 : QWidget(parent)
17 , m_cropTool(cropTool)
18{
19 setupUi(this);
20
21 // update the UI based off data from crop tool
22 cmbType->setCurrentIndex(m_cropTool->cropType());
23 QStandardItemModel *cmbTypeModel = qobject_cast<QStandardItemModel *>(cmbType->model());
24 // Disable "Layer"
25 cmbTypeModel->item(2)->setEnabled(m_cropTool->cropTypeSelectable());
26 // Disable "Frame"
27 cmbTypeModel->item(3)->setEnabled(m_cropTool->cropTypeSelectable());
28
29 intHeight->setValue(m_cropTool->cropHeight());
30 intWidth->setValue(m_cropTool->cropWidth());
31 intX->setValue(m_cropTool->cropX());
32 intY->setValue(m_cropTool->cropY());
33 doubleRatio->setValue(m_cropTool->ratio());
34 cmbDecor->setCurrentIndex(m_cropTool->decoration());
35 boolGrow->setChecked(m_cropTool->allowGrow());
36 boolCenter->setChecked(m_cropTool->growCenter());
37
38 lockRatioButton->setChecked(m_cropTool->lockRatio());
39 lockHeightButton->setChecked(m_cropTool->lockHeight());
40 lockWidthButton->setChecked(m_cropTool->lockWidth());
41
42 QIcon lockedIcon = KisIconUtils::loadIcon("locked");
43 QIcon unlockedIcon = KisIconUtils::loadIcon("unlocked");
44 lockWidthButton->setIcon(lockWidthButton->isChecked() ? lockedIcon : unlockedIcon);
45 lockHeightButton->setIcon(lockHeightButton->isChecked() ? lockedIcon : unlockedIcon);
46 lockRatioButton->setIcon(lockRatioButton->isChecked() ? lockedIcon : unlockedIcon);
47
49 connector = new KisAcyclicSignalConnector(this);
50 connector->connectForwardBool(lockRatioButton, SIGNAL(toggled(bool)), this, SIGNAL(lockRatioChanged(bool)));
51 connector->connectBackwardBool(cropTool, SIGNAL(lockRatioChanged(bool)), lockRatioButton, SLOT(setChecked(bool)));
52
53 connector = new KisAcyclicSignalConnector(this);
54 connector->connectForwardBool(lockHeightButton, SIGNAL(toggled(bool)), this, SIGNAL(lockHeightChanged(bool)));
55 connector->connectBackwardBool(cropTool, SIGNAL(lockHeightChanged(bool)), lockHeightButton, SLOT(setChecked(bool)));
56
57 connector = new KisAcyclicSignalConnector(this);
58 connector->connectForwardBool(lockWidthButton, SIGNAL(toggled(bool)), this, SIGNAL(lockWidthChanged(bool)));
59 connector->connectBackwardBool(cropTool, SIGNAL(lockWidthChanged(bool)), lockWidthButton, SLOT(setChecked(bool)));
60
61 connector = new KisAcyclicSignalConnector(this);
62 connector->connectForwardDouble(doubleRatio, SIGNAL(valueChanged(double)), this, SIGNAL(ratioChanged(double)));
63 connector->connectBackwardDouble(cropTool, SIGNAL(ratioChanged(double)), doubleRatio, SLOT(setValue(double)));
64
65 connector = new KisAcyclicSignalConnector(this);
66 connector->connectForwardInt(intHeight, SIGNAL(valueChanged(int)), this, SIGNAL(cropHeightChanged(int)));
67 connector->connectBackwardInt(cropTool, SIGNAL(cropHeightChanged(int)), intHeight, SLOT(setValue(int)));
68
69 connector = new KisAcyclicSignalConnector(this);
70 connector->connectForwardInt(intWidth, SIGNAL(valueChanged(int)), this, SIGNAL(cropWidthChanged(int)));
71 connector->connectBackwardInt(cropTool, SIGNAL(cropWidthChanged(int)), intWidth, SLOT(setValue(int)));
72
73 connector = new KisAcyclicSignalConnector(this);
74 connector->connectForwardInt(intX, SIGNAL(valueChanged(int)), this, SIGNAL(cropXChanged(int)));
75 connector->connectBackwardInt(cropTool, SIGNAL(cropXChanged(int)), intX, SLOT(setValue(int)));
76
77 connector = new KisAcyclicSignalConnector(this);
78 connector->connectForwardInt(intY, SIGNAL(valueChanged(int)), this, SIGNAL(cropYChanged(int)));
79 connector->connectBackwardInt(cropTool, SIGNAL(cropYChanged(int)), intY, SLOT(setValue(int)));
80
81 connector = new KisAcyclicSignalConnector(this);
82 connector->connectForwardInt(cmbType, SIGNAL(currentIndexChanged(int)), this, SIGNAL(cropTypeChanged(int)));
83 connector->connectBackwardInt(cropTool, SIGNAL(cropTypeChanged(int)), cmbType, SLOT(setCurrentIndex(int)));
84
85 connector = new KisAcyclicSignalConnector(this);
86 connector->connectForwardInt(cmbDecor, SIGNAL(currentIndexChanged(int)), this, SIGNAL(decorationChanged(int)));
87 connector->connectBackwardInt(cropTool, SIGNAL(decorationChanged(int)), cmbDecor, SLOT(setCurrentIndex(int)));
88
89 connector = new KisAcyclicSignalConnector(this);
90 connector->connectForwardBool(boolGrow, SIGNAL(toggled(bool)), this, SIGNAL(allowGrowChanged(bool)));
91 connector->connectBackwardBool(cropTool, SIGNAL(canGrowChanged(bool)), boolGrow, SLOT(setChecked(bool)));
92
93 connector = new KisAcyclicSignalConnector(this);
94 connector->connectForwardBool(boolCenter, SIGNAL(toggled(bool)), this, SIGNAL(growCenterChanged(bool)));
95 connector->connectBackwardBool(cropTool, SIGNAL(isCenteredChanged(bool)), boolCenter, SLOT(setChecked(bool)));
96
97 connector = new KisAcyclicSignalConnector(this);
98 //connector->connectForwardDouble();
99 connector->connectBackwardVoid(cropTool, SIGNAL(cropTypeSelectableChanged()), this, SLOT(cropTypeSelectableChanged()));
100
101 connect(lockWidthButton, SIGNAL(toggled(bool)), this, SLOT(updateLockWidthIcon()));
102 connect(lockHeightButton, SIGNAL(toggled(bool)), this, SLOT(updateLockHeightIcon()));
103 connect(lockRatioButton, SIGNAL(toggled(bool)), this, SLOT(updateLockRatioIcon()));
104
105}
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
void connectForwardBool(QObject *sender, const char *signal, QObject *receiver, const char *method)
void connectBackwardInt(QObject *sender, const char *signal, QObject *receiver, const char *method)
void connectBackwardVoid(QObject *sender, const char *signal, QObject *receiver, const char *method)
void connectBackwardBool(QObject *sender, const char *signal, QObject *receiver, const char *method)
void connectBackwardDouble(QObject *sender, const char *signal, QObject *receiver, const char *method)
void connectForwardInt(QObject *sender, const char *signal, QObject *receiver, const char *method)
void connectForwardDouble(QObject *sender, const char *signal, QObject *receiver, const char *method)
void lockHeightChanged(bool newLock)
void cropHeightChanged(int newHeight)
void cropTypeChanged(int cropType)
void growCenterChanged(bool newLock)
void lockRatioChanged(bool newLock)
void cropWidthChanged(int newWidth)
void cropXChanged(int newX)
void cropYChanged(int newY)
void decorationChanged(int newDecoration)
void lockWidthChanged(bool newLock)
void allowGrowChanged(bool newLock)
void ratioChanged(double newRatio)
bool growCenter() const
CropToolType cropType
bool cropTypeSelectable
bool allowGrow() const
QIcon loadIcon(const QString &name)

References KisToolCrop::allowGrow(), allowGrowChanged(), connect(), KisAcyclicSignalConnector::connectBackwardBool(), KisAcyclicSignalConnector::connectBackwardDouble(), KisAcyclicSignalConnector::connectBackwardInt(), KisAcyclicSignalConnector::connectBackwardVoid(), KisAcyclicSignalConnector::connectForwardBool(), KisAcyclicSignalConnector::connectForwardDouble(), KisAcyclicSignalConnector::connectForwardInt(), KisToolCrop::cropHeight, cropHeightChanged(), KisToolCrop::cropType, cropTypeChanged(), KisToolCrop::cropTypeSelectable, cropTypeSelectableChanged(), KisToolCrop::cropWidth, cropWidthChanged(), KisToolCrop::cropX, cropXChanged(), KisToolCrop::cropY, cropYChanged(), KisToolCrop::decoration, decorationChanged(), KisToolCrop::growCenter(), growCenterChanged(), KisIconUtils::loadIcon(), KisToolCrop::lockHeight, lockHeightChanged(), KisToolCrop::lockRatio, lockRatioChanged(), KisToolCrop::lockWidth, lockWidthChanged(), m_cropTool, KisToolCrop::ratio, ratioChanged(), updateLockHeightIcon(), updateLockRatioIcon(), and updateLockWidthIcon().

Member Function Documentation

◆ allowGrowChanged

void KisToolCropConfigWidget::allowGrowChanged ( bool newLock)
signal

◆ cropHeightChanged

void KisToolCropConfigWidget::cropHeightChanged ( int newHeight)
signal

◆ cropTypeChanged

void KisToolCropConfigWidget::cropTypeChanged ( int cropType)
signal

◆ cropTypeSelectableChanged

void KisToolCropConfigWidget::cropTypeSelectableChanged ( )
slot

Definition at line 107 of file kistoolcropconfigwidget.cpp.

108{
109 QStandardItemModel *cmbTypeModel = qobject_cast<QStandardItemModel *>(cmbType->model());
110 // Disable "Layer"
111 cmbTypeModel->item(2)->setEnabled(m_cropTool->cropTypeSelectable());
112 // Disable "Frame"
113 cmbTypeModel->item(3)->setEnabled(m_cropTool->cropTypeSelectable());
114}

References KisToolCrop::cropTypeSelectable, and m_cropTool.

◆ cropWidthChanged

void KisToolCropConfigWidget::cropWidthChanged ( int newWidth)
signal

◆ cropXChanged

void KisToolCropConfigWidget::cropXChanged ( int newX)
signal

◆ cropYChanged

void KisToolCropConfigWidget::cropYChanged ( int newY)
signal

◆ decorationChanged

void KisToolCropConfigWidget::decorationChanged ( int newDecoration)
signal

◆ growCenterChanged

void KisToolCropConfigWidget::growCenterChanged ( bool newLock)
signal

◆ lockHeightChanged

void KisToolCropConfigWidget::lockHeightChanged ( bool newLock)
signal

◆ lockRatioChanged

void KisToolCropConfigWidget::lockRatioChanged ( bool newLock)
signal

◆ lockWidthChanged

void KisToolCropConfigWidget::lockWidthChanged ( bool newLock)
signal

◆ ratioChanged

void KisToolCropConfigWidget::ratioChanged ( double newRatio)
signal

◆ updateLockHeightIcon

void KisToolCropConfigWidget::updateLockHeightIcon ( )
privateslot

Definition at line 126 of file kistoolcropconfigwidget.cpp.

127{
128 lockHeightButton->setIcon(lockHeightButton->isChecked() ? KisIconUtils::loadIcon("locked") : KisIconUtils::loadIcon("unlocked"));
129}

References KisIconUtils::loadIcon().

◆ updateLockRatioIcon

void KisToolCropConfigWidget::updateLockRatioIcon ( )
privateslot

Definition at line 116 of file kistoolcropconfigwidget.cpp.

117{
118 lockRatioButton->setIcon(lockRatioButton->isChecked() ? KisIconUtils::loadIcon("locked") : KisIconUtils::loadIcon("unlocked"));
119}

References KisIconUtils::loadIcon().

◆ updateLockWidthIcon

void KisToolCropConfigWidget::updateLockWidthIcon ( )
privateslot

Definition at line 121 of file kistoolcropconfigwidget.cpp.

122{
123 lockWidthButton->setIcon(lockWidthButton->isChecked() ? KisIconUtils::loadIcon("locked") : KisIconUtils::loadIcon("unlocked"));
124}

References KisIconUtils::loadIcon().

Member Data Documentation

◆ m_cropTool

KisToolCrop* KisToolCropConfigWidget::m_cropTool
private

Definition at line 39 of file kistoolcropconfigwidget.h.


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