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

#include <kis_dlg_adjustment_layer.h>

+ Inheritance diagram for KisDlgAdjustmentLayer:

Public Slots

void adjustSize ()
 
- Public Slots inherited from KoDialog
void delayedDestruct ()
 
void enableButton (ButtonCode id, bool state)
 
void enableButtonApply (bool state)
 
void enableButtonCancel (bool state)
 
void enableButtonOk (bool state)
 
void enableLinkedHelp (bool state)
 
bool isDetailsWidgetVisible () const
 
virtual void setCaption (const QString &caption)
 
virtual void setCaption (const QString &caption, bool modified)
 
void setDetailsWidget (QWidget *detailsWidget)
 
void setDetailsWidgetVisible (bool visible)
 
void setHelp (const QString &anchor, const QString &appname=QString())
 
void setHelpLinkText (const QString &text)
 
virtual void setPlainCaption (const QString &caption)
 

Public Member Functions

KisFilterConfigurationSP filterConfiguration () const
 
 KisDlgAdjustmentLayer (KisNodeSP node, KisNodeFilterInterface *nfi, KisPaintDeviceSP paintDevice, const QString &layerName, const QString &caption, KisViewManager *view, QWidget *parent=0, KisFilterConfigurationSP initialFilterConfig=KisFilterConfigurationSP())
 
QString layerName () const
 
 ~KisDlgAdjustmentLayer () override
 
- Public Member Functions inherited from KoDialog
QPushButton * button (ButtonCode id) const
 
QIcon buttonIcon (ButtonCode id) const
 
QString buttonText (ButtonCode id) const
 
QString buttonToolTip (ButtonCode id) const
 
QString buttonWhatsThis (ButtonCode id) const
 
ButtonCode defaultButton () const
 
QString helpLinkText () const
 
void incrementInitialSize (const QSize &size)
 
bool isButtonEnabled (ButtonCode id) const
 
 KoDialog (QWidget *parent=0, Qt::WindowFlags f=Qt::WindowFlags())
 
QWidget * mainWidget ()
 
QSize minimumSizeHint () const override
 
void setButtonFocus (ButtonCode id)
 
void setButtonGuiItem (ButtonCode id, const KGuiItem &item)
 
void setButtonIcon (ButtonCode id, const QIcon &icon)
 
void setButtons (ButtonCodes buttonMask)
 
void setButtonsOrientation (Qt::Orientation orientation)
 
void setButtonText (ButtonCode id, const QString &text)
 
void setButtonToolTip (ButtonCode id, const QString &text)
 
void setButtonWhatsThis (ButtonCode id, const QString &text)
 
void setDefaultButton (ButtonCode id)
 
void setEscapeButton (ButtonCode id)
 
void setInitialSize (const QSize &size)
 
void setMainWidget (QWidget *widget)
 
void showButton (ButtonCode id, bool state)
 
void showButtonSeparator (bool state)
 
QSize sizeHint () const override
 
 ~KoDialog () override
 

Protected Slots

void slotConfigChanged ()
 
void slotFilterWidgetSizeChanged ()
 
void slotNameChanged (const QString &)
 
- Protected Slots inherited from KoDialog
virtual void slotButtonClicked (int button)
 

Private Member Functions

void updateLayerNameForNewFilter (const QString &newFilterName)
 

Private Attributes

KisFilterConfigurationSP m_currentFilter
 
bool m_customName
 
QString m_layerName
 
KisNodeSP m_node
 
KisNodeFilterInterface * m_nodeFilterInterface
 
QString m_previousFilterName
 
Ui::WdgFilterNodeCreation wdgFilterNodeCreation
 

Additional Inherited Members

- Public Types inherited from KoDialog
enum  ButtonCode {
  None = 0x00000000 , Help = 0x00000001 , Default = 0x00000002 , Ok = 0x00000004 ,
  Apply = 0x00000008 , Try = 0x00000010 , Cancel = 0x00000020 , Close = 0x00000040 ,
  No = 0x00000080 , Yes = 0x00000100 , Reset = 0x00000200 , Details = 0x00000400 ,
  User1 = 0x00001000 , User2 = 0x00002000 , User3 = 0x00004000 , NoDefault = 0x00008000
}
 
enum  ButtonPopupMode { InstantPopup = 0 , DelayedPopup = 1 }
 
enum  CaptionFlag { NoCaptionFlags = 0 , AppNameCaption = 1 , ModifiedCaption = 2 , HIGCompliantCaption = AppNameCaption }
 
- Signals inherited from KoDialog
void aboutToShowDetails ()
 
void applyClicked ()
 
void buttonClicked (KoDialog::ButtonCode button)
 
void cancelClicked ()
 
void closeClicked ()
 
void defaultClicked ()
 
void finished ()
 
void helpClicked ()
 
void hidden ()
 
void layoutHintChanged ()
 
void noClicked ()
 
void okClicked ()
 
void resetClicked ()
 
void tryClicked ()
 
void user1Clicked ()
 
void user2Clicked ()
 
void user3Clicked ()
 
void yesClicked ()
 
- Static Public Member Functions inherited from KoDialog
static int groupSpacingHint ()
 
static QString makeStandardCaption (const QString &userCaption, QWidget *window=0, CaptionFlags flags=HIGCompliantCaption)
 
static int marginHint ()
 
static void resizeLayout (QLayout *lay, int margin, int spacing)
 
static void resizeLayout (QWidget *widget, int margin, int spacing)
 
static int spacingHint ()
 
- Protected Member Functions inherited from KoDialog
void closeEvent (QCloseEvent *e) override
 
void hideEvent (QHideEvent *) override
 
void keyPressEvent (QKeyEvent *) override
 
void showEvent (QShowEvent *e) override
 

Detailed Description

Create a new adjustment layer.

Definition at line 21 of file kis_dlg_adjustment_layer.h.

Constructor & Destructor Documentation

◆ KisDlgAdjustmentLayer()

KisDlgAdjustmentLayer::KisDlgAdjustmentLayer ( KisNodeSP node,
KisNodeFilterInterface * nfi,
KisPaintDeviceSP paintDevice,
const QString & layerName,
const QString & caption,
KisViewManager * view,
QWidget * parent = 0,
KisFilterConfigurationSP initialFilterConfig = KisFilterConfigurationSP() )

Create a new adjustment layer dialog

Parameters
nodethe name of the adjustment node
nfifilter interface
paintDevicethe paint device that is used as source for the preview
layerNamethe name of the layer
captionthe caption for the dialog – create or properties
viewthe view manager
parentthe widget parent of this dialog
initialFilterConfigthe configuration to preload when editing an existing filter node; leave null for new nodes.

Definition at line 31 of file kis_dlg_adjustment_layer.cc.

39 : KoDialog(parent, Qt::Dialog)
40 , m_node(node)
43 , m_customName(false)
45{
46 setCaption(caption);
48
49 QWidget * page = new QWidget(this);
50 wdgFilterNodeCreation.setupUi(page);
51 setMainWidget(page);
52
53 wdgFilterNodeCreation.filterGalleryToggle->setChecked(wdgFilterNodeCreation.filterSelector->isFilterGalleryVisible());
54 wdgFilterNodeCreation.filterGalleryToggle->setIcon(KisIconUtils::loadIcon("sidebaricon"));
55 wdgFilterNodeCreation.filterGalleryToggle->setMaximumWidth(wdgFilterNodeCreation.filterGalleryToggle->height());
56 connect(wdgFilterNodeCreation.filterSelector, SIGNAL(sigFilterGalleryToggled(bool)), wdgFilterNodeCreation.filterGalleryToggle, SLOT(setChecked(bool)));
57 connect(wdgFilterNodeCreation.filterGalleryToggle, SIGNAL(toggled(bool)), wdgFilterNodeCreation.filterSelector, SLOT(showFilterGallery(bool)));
58 connect(wdgFilterNodeCreation.filterSelector, SIGNAL(sigSizeChanged()), this, SLOT(slotFilterWidgetSizeChanged()));
59
60 KGuiItem::assign(wdgFilterNodeCreation.buttonBox->button(QDialogButtonBox::Ok), KStandardGuiItem::ok());
61 KGuiItem::assign(wdgFilterNodeCreation.buttonBox->button(QDialogButtonBox::Cancel), KStandardGuiItem::cancel());
62 connect(wdgFilterNodeCreation.buttonBox, SIGNAL(accepted()), this, SLOT(accept()));
63 connect(wdgFilterNodeCreation.buttonBox, SIGNAL(rejected()), this, SLOT(reject()));
64
65 wdgFilterNodeCreation.filterSelector->setView(view);
66 wdgFilterNodeCreation.filterSelector->showFilterGallery(KisConfig(true).showFilterGalleryLayerMaskDialog());
67
68 wdgFilterNodeCreation.filterSelector->setPaintDevice(false, paintDevice);
69 wdgFilterNodeCreation.layerName->setText(layerName);
70
71 if (initialFilterConfig) {
72 KisFilterSP filter = KisFilterRegistry::instance()->get(initialFilterConfig->name()).data();
73 if (filter) {
74 wdgFilterNodeCreation.filterSelector->setFilter(filter, initialFilterConfig);
75 m_previousFilterName = filter->name();
76 }
77 }
78
79 connect(wdgFilterNodeCreation.filterSelector, SIGNAL(configurationChanged()), SLOT(slotConfigChanged()));
80 connect(wdgFilterNodeCreation.layerName, SIGNAL(textChanged(QString)), SLOT(slotNameChanged(QString)));
81
83}
Ui::WdgFilterNodeCreation wdgFilterNodeCreation
KisNodeFilterInterface * m_nodeFilterInterface
void slotNameChanged(const QString &)
KisFilterConfigurationSP m_currentFilter
static KisFilterRegistry * instance()
void setMainWidget(QWidget *widget)
Definition KoDialog.cpp:345
virtual void setCaption(const QString &caption)
Definition KoDialog.cpp:489
void setButtons(ButtonCodes buttonMask)
Definition KoDialog.cpp:195
KoDialog(QWidget *parent=0, Qt::WindowFlags f=Qt::WindowFlags())
Definition KoDialog.cpp:176
T get(const QString &id) const
QIcon loadIcon(const QString &name)

References KisSharedPtr< T >::data(), KoGenericRegistry< T >::get(), KisFilterRegistry::instance(), layerName(), KisIconUtils::loadIcon(), m_previousFilterName, KisBaseProcessor::name(), KoDialog::None, KoDialog::setButtons(), KoDialog::setCaption(), KoDialog::setMainWidget(), slotConfigChanged(), slotFilterWidgetSizeChanged(), slotNameChanged(), and wdgFilterNodeCreation.

◆ ~KisDlgAdjustmentLayer()

KisDlgAdjustmentLayer::~KisDlgAdjustmentLayer ( )
override

Definition at line 85 of file kis_dlg_adjustment_layer.cc.

86{
87 KisConfig(true).setShowFilterGalleryLayerMaskDialog(wdgFilterNodeCreation.filterSelector->isFilterGalleryVisible());
88}
void setShowFilterGalleryLayerMaskDialog(bool showFilterGallery) const

References KisConfig::setShowFilterGalleryLayerMaskDialog(), and wdgFilterNodeCreation.

Member Function Documentation

◆ adjustSize

void KisDlgAdjustmentLayer::adjustSize ( )
slot

Definition at line 155 of file kis_dlg_adjustment_layer.cc.

156{
157 QWidget::adjustSize();
158}

◆ filterConfiguration()

KisFilterConfigurationSP KisDlgAdjustmentLayer::filterConfiguration ( ) const

Definition at line 97 of file kis_dlg_adjustment_layer.cc.

98{
99 KisFilterConfigurationSP config = wdgFilterNodeCreation.filterSelector->configuration();
100
101 Q_ASSERT(config);
102
103 return config;
104}

References wdgFilterNodeCreation.

◆ layerName()

QString KisDlgAdjustmentLayer::layerName ( ) const

Definition at line 106 of file kis_dlg_adjustment_layer.cc.

107{
108 return wdgFilterNodeCreation.layerName->text();
109}

References wdgFilterNodeCreation.

◆ slotConfigChanged

void KisDlgAdjustmentLayer::slotConfigChanged ( )
protectedslot

Definition at line 111 of file kis_dlg_adjustment_layer.cc.

112{
114
116
117 if (m_currentFilter) {
118 m_nodeFilterInterface->setFilter(m_currentFilter->cloneWithResourcesSnapshot());
119 const QString newFilterName = wdgFilterNodeCreation.filterSelector->currentFilter()->name();
120 if (newFilterName != m_previousFilterName) {
121 updateLayerNameForNewFilter(newFilterName);
122 m_previousFilterName = newFilterName;
123 }
124 }
125
126 m_node->setDirty();
127}
KisFilterConfigurationSP filterConfiguration() const
void updateLayerNameForNewFilter(const QString &newFilterName)
virtual void setFilter(KisFilterConfigurationSP filterConfig, bool checkCompareConfig=true)
void enableButtonOk(bool state)
Definition KoDialog.cpp:606
virtual void setDirty()
Definition kis_node.cpp:577

References KoDialog::enableButtonOk(), filterConfiguration(), m_currentFilter, m_node, m_nodeFilterInterface, m_previousFilterName, KisNode::setDirty(), KisNodeFilterInterface::setFilter(), updateLayerNameForNewFilter(), and wdgFilterNodeCreation.

◆ slotFilterWidgetSizeChanged

void KisDlgAdjustmentLayer::slotFilterWidgetSizeChanged ( )
protectedslot

Definition at line 160 of file kis_dlg_adjustment_layer.cc.

161{
162 QMetaObject::invokeMethod(this, "adjustSize", Qt::QueuedConnection);
163}

◆ slotNameChanged

void KisDlgAdjustmentLayer::slotNameChanged ( const QString & text)
protectedslot

Definition at line 90 of file kis_dlg_adjustment_layer.cc.

91{
92 Q_UNUSED(text);
93 m_customName = !text.isEmpty();
95}

References KoDialog::enableButtonOk(), m_currentFilter, and m_customName.

◆ updateLayerNameForNewFilter()

void KisDlgAdjustmentLayer::updateLayerNameForNewFilter ( const QString & newFilterName)
private

Definition at line 129 of file kis_dlg_adjustment_layer.cc.

130{
131 if (m_customName) return;
132
133 const QString text = wdgFilterNodeCreation.layerName->text();
134 QString newText = text;
135
136 if (m_previousFilterName.isEmpty()) {
137 newText = m_layerName + " (" + newFilterName + ")";
138 } else if (text == m_previousFilterName) {
139 newText = newFilterName;
140 } else {
141 const QString oldSuffix = "(" + m_previousFilterName + ")";
142 if (text.endsWith(oldSuffix)) {
143 newText.chop(oldSuffix.size());
144 newText += "(" + newFilterName + ")";
145 }
146 }
147
148 if (newText != text) {
149 wdgFilterNodeCreation.layerName->blockSignals(true);
150 wdgFilterNodeCreation.layerName->setText(newText);
151 wdgFilterNodeCreation.layerName->blockSignals(false);
152 }
153}

References m_customName, m_layerName, m_previousFilterName, and wdgFilterNodeCreation.

Member Data Documentation

◆ m_currentFilter

KisFilterConfigurationSP KisDlgAdjustmentLayer::m_currentFilter
private

Definition at line 65 of file kis_dlg_adjustment_layer.h.

◆ m_customName

bool KisDlgAdjustmentLayer::m_customName
private

Definition at line 66 of file kis_dlg_adjustment_layer.h.

◆ m_layerName

QString KisDlgAdjustmentLayer::m_layerName
private

Definition at line 67 of file kis_dlg_adjustment_layer.h.

◆ m_node

KisNodeSP KisDlgAdjustmentLayer::m_node
private

Definition at line 62 of file kis_dlg_adjustment_layer.h.

◆ m_nodeFilterInterface

KisNodeFilterInterface* KisDlgAdjustmentLayer::m_nodeFilterInterface
private

Definition at line 63 of file kis_dlg_adjustment_layer.h.

◆ m_previousFilterName

QString KisDlgAdjustmentLayer::m_previousFilterName
private

Definition at line 68 of file kis_dlg_adjustment_layer.h.

◆ wdgFilterNodeCreation

Ui::WdgFilterNodeCreation KisDlgAdjustmentLayer::wdgFilterNodeCreation
private

Definition at line 64 of file kis_dlg_adjustment_layer.h.


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