Krita Source Code Documentation
Loading...
Searching...
No Matches
KisCopyMergedActionFactory Struct Reference

#include <kis_selection_action_factories.h>

+ Inheritance diagram for KisCopyMergedActionFactory:

Public Member Functions

 KisCopyMergedActionFactory ()
 
void run (KisViewManager *view) override
 
- Public Member Functions inherited from KisNoParameterActionFactory
 KisNoParameterActionFactory (const QString &id)
 
void runFromXML (KisViewManager *view, const KisOperationConfiguration &config) override
 
- Public Member Functions inherited from KisOperation
QString id () const
 
 KisOperation (const QString &id)
 
virtual ~KisOperation ()
 

Additional Inherited Members

- Protected Member Functions inherited from KisOperation
KisProcessingApplicatorbeginAction (KisViewManager *view, const KUndo2MagicString &actionName)
 
void endAction (KisProcessingApplicator *applicator, const QString &xmlData)
 

Detailed Description

Definition at line 78 of file kis_selection_action_factories.h.

Constructor & Destructor Documentation

◆ KisCopyMergedActionFactory()

KisCopyMergedActionFactory::KisCopyMergedActionFactory ( )
inline

Definition at line 79 of file kis_selection_action_factories.h.

79: KisNoParameterActionFactory("copy-merged-ui-action") {}

Member Function Documentation

◆ run()

void KisCopyMergedActionFactory::run ( KisViewManager * view)
overridevirtual

Implements KisNoParameterActionFactory.

Definition at line 455 of file kis_selection_action_factories.cpp.

456{
457 KisImageWSP image = view->image();
458 if (!image) return;
459 if (!view->blockUntilOperationsFinished(image)) return;
460
461 image->barrierLock();
462 KisPaintDeviceSP dev = new KisPaintDevice(*image->root()->projection());
463 ActionHelper::trimDevice(view, dev);
464
465 KisNodeSP node = new KisPaintLayer(image, "Projection", OPACITY_OPAQUE_U8, dev);
466 KisNodeList nodes{node};
467
468 KisImageSP tempImage = ActionHelper::makeImage(view, nodes);
469 KisClipboard::instance()->setLayers(nodes, tempImage);
470 image->unlock();
471
472 KisProcessingApplicator *ap = beginAction(view, kundo2_i18n("Copy Merged"));
473 endAction(ap, KisOperationConfiguration(id()).toXML());
474}
const quint8 OPACITY_OPAQUE_U8
void setLayers(KisNodeList nodes, KisImageSP image, bool forceCopy=false)
static KisClipboard * instance()
void unlock()
Definition kis_image.cc:805
void barrierLock(bool readOnly=false)
Wait until all the queued background jobs are completed and lock the image.
Definition kis_image.cc:756
KisProcessingApplicator * beginAction(KisViewManager *view, const KUndo2MagicString &actionName)
void endAction(KisProcessingApplicator *applicator, const QString &xmlData)
bool blockUntilOperationsFinished(KisImageSP image)
blockUntilOperationsFinished blocks the GUI of the application until execution of actions on image is...
KisImageWSP image() const
Return the image this view is displaying.
KUndo2MagicString kundo2_i18n(const char *text)
KisImageSP makeImage(KisViewManager *view, KisNodeList nodes)
void trimDevice(KisViewManager *view, KisPaintDeviceSP device, bool makeSharpClip=false, const KisTimeSpan &range=KisTimeSpan())
virtual KisPaintDeviceSP projection() const =0

References KisImage::barrierLock(), KisOperation::beginAction(), KisViewManager::blockUntilOperationsFinished(), KisOperation::endAction(), KisViewManager::image(), KisClipboard::instance(), kundo2_i18n(), ActionHelper::makeImage(), OPACITY_OPAQUE_U8, KisBaseNode::projection(), KisNodeFacade::root, KisClipboard::setLayers(), ActionHelper::trimDevice(), and KisImage::unlock().


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