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

#include <KisDlgChangeCloneSource.h>

+ Inheritance diagram for KisDlgChangeCloneSource:

Classes

struct  Private
 

Public Slots

void slotCancelChangesAndSetNewTarget ()
 
- 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

 KisDlgChangeCloneSource (QList< KisCloneLayerSP > layers, KisViewManager *view, QWidget *parent=0)
 
 ~KisDlgChangeCloneSource () 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
 

Private Member Functions

void updateTargetLayerList ()
 

Private Attributes

const QScopedPointer< Privated
 

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 Slots inherited from KoDialog
virtual void slotButtonClicked (int button)
 
- 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

Definition at line 18 of file KisDlgChangeCloneSource.h.

Constructor & Destructor Documentation

◆ KisDlgChangeCloneSource()

KisDlgChangeCloneSource::KisDlgChangeCloneSource ( QList< KisCloneLayerSP > layers,
KisViewManager * view,
QWidget * parent = 0 )

Definition at line 95 of file KisDlgChangeCloneSource.cpp.

96 : KoDialog(parent)
97 , d(new Private(layers, view))
98{
99 KIS_SAFE_ASSERT_RECOVER_RETURN(!layers.isEmpty());
100
102 this, &KisDlgChangeCloneSource::reject);
104 this, &KisDlgChangeCloneSource::reject);
106 this, &KisDlgChangeCloneSource::accept);
107
110
111 QWidget *widget = new QWidget(this);
112 d->ui.setupUi(widget);
113 setMainWidget(widget);
114
115 connect(d->ui.cmbSourceLayer, QOverload<int>::of(&QComboBox::currentIndexChanged),
117
119}
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
const QScopedPointer< Private > d
void sigStrokeCancellationRequested()
void sigStrokeEndRequested()
void sigUndoDuringStrokeRequested()
void setMainWidget(QWidget *widget)
Definition KoDialog.cpp:354
void setButtons(ButtonCodes buttonMask)
Definition KoDialog.cpp:195
void setDefaultButton(ButtonCode id)
Definition KoDialog.cpp:302
@ Ok
Show Ok button. (this button accept()s the dialog; result set to QDialog::Accepted)
Definition KoDialog.h:127
@ Cancel
Show Cancel-button. (this button reject()s the dialog; result set to QDialog::Rejected)
Definition KoDialog.h:130
KoDialog(QWidget *parent=0, Qt::WindowFlags f=Qt::WindowFlags())
Definition KoDialog.cpp:176
#define KIS_SAFE_ASSERT_RECOVER_RETURN(cond)
Definition kis_assert.h:128

References KoDialog::Cancel, connect(), d, KIS_SAFE_ASSERT_RECOVER_RETURN, KoDialog::Ok, KoDialog::setButtons(), KoDialog::setDefaultButton(), KoDialog::setMainWidget(), KisImage::sigStrokeCancellationRequested(), KisImage::sigStrokeEndRequested(), KisImage::sigUndoDuringStrokeRequested(), slotCancelChangesAndSetNewTarget(), and updateTargetLayerList().

◆ ~KisDlgChangeCloneSource()

KisDlgChangeCloneSource::~KisDlgChangeCloneSource ( )
override

Definition at line 121 of file KisDlgChangeCloneSource.cpp.

122{
123 dbgUI << "dialog destroyed";
124 if (d->applicator) {
125 if (result() == QDialog::Accepted && d->modified) {
126 dbgUI << "Accepted";
127 d->applicator->end();
128 } else {
129 dbgUI << "Rejected";
130 d->applicator->cancel();
131 }
132 }
133}
#define dbgUI
Definition kis_debug.h:52

References d, and dbgUI.

Member Function Documentation

◆ slotCancelChangesAndSetNewTarget

void KisDlgChangeCloneSource::slotCancelChangesAndSetNewTarget ( )
slot

Definition at line 172 of file KisDlgChangeCloneSource.cpp.

173{
174 KisLayerSP targetLayer = d->getSelectedTargetLayer();
175 if (targetLayer) {
176 d->applicator->applyCommand(d->createCommand(targetLayer));
177 d->modified = true;
178 }
179}

References d.

◆ updateTargetLayerList()

void KisDlgChangeCloneSource::updateTargetLayerList ( )
private

Definition at line 135 of file KisDlgChangeCloneSource.cpp.

136{
137 KisSignalsBlocker b(d->ui.cmbSourceLayer);
138
139 if (!d->image) {
140 return;
141 }
142 KisNodeSP root = d->image->root();
143 d->validTargets.clear();
144 d->addToTargetListRecursively(root, /* addSelf = */ false);
145
146 KisLayerSP commonCopyFrom(d->cloneLayers.first()->copyFrom());
147
148 Q_FOREACH (KisCloneLayerSP clone, d->cloneLayers) {
149 // filter out invalid targets:
150 // selected clone layers, their ancestors;
151 // the clone layers' registered clone, the clones' ancestors.
152 d->filterOutAncestorsAndClonesRecursively(clone);
153
154 // assume that clone->copyFrom() != 0
155 if (clone->copyFrom() != commonCopyFrom) {
156 commonCopyFrom = 0;
157 }
158 }
159
160 d->ui.cmbSourceLayer->clear();
161 Q_FOREACH (KisNodeSP node, d->validTargets) {
162 d->ui.cmbSourceLayer->addItem(node->name());
163 }
164
165 if (commonCopyFrom) {
166 d->ui.cmbSourceLayer->setCurrentIndex(d->validTargets.indexOf(commonCopyFrom));
167 } else {
168 d->ui.cmbSourceLayer->setCurrentIndex(-1);
169 }
170}
KisImageWSP image
QString name() const

References d, KisBaseNode::image, KisBaseNode::name(), and KisNodeFacade::root.

Member Data Documentation

◆ d

const QScopedPointer<Private> KisDlgChangeCloneSource::d
private

Definition at line 35 of file KisDlgChangeCloneSource.h.


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