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

#include <KisPasteActionFactories.h>

+ Inheritance diagram for KisPasteNewActionFactory:

Public Member Functions

 KisPasteNewActionFactory ()
 
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 41 of file KisPasteActionFactories.h.

Constructor & Destructor Documentation

◆ KisPasteNewActionFactory()

KisPasteNewActionFactory::KisPasteNewActionFactory ( )
inline

Definition at line 42 of file KisPasteActionFactories.h.

42: KisNoParameterActionFactory("paste-new-ui-action") {}

Member Function Documentation

◆ run()

void KisPasteNewActionFactory::run ( KisViewManager * view)
overridevirtual

Implements KisNoParameterActionFactory.

Definition at line 381 of file KisPasteActionFactories.cpp.

382{
383 Q_UNUSED(viewManager);
384
385 KisPaintDeviceSP clip = KisClipboard::instance()->clip(QRect(), true);
386 if (!clip) return;
387
388 QRect rect = clip->exactBounds();
389 if (rect.isEmpty()) return;
390
392 doc->documentInfo()->setAboutInfo("title", i18n("Untitled"));
393 KisImageSP image = new KisImage(doc->createUndoStore(),
394 rect.width(),
395 rect.height(),
396 clip->colorSpace(),
397 i18n("Pasted"));
398 bool renamePastedLayers = KisConfig(true).renamePastedLayers();
399 QString pastedLayerName = renamePastedLayers ? image->nextLayerName() + " " + i18n("(pasted)") :
400 image->nextLayerName();
401 KisPaintLayerSP layer =
402 new KisPaintLayer(image.data(), pastedLayerName,
404
405 KisPainter::copyAreaOptimized(QPoint(), clip, layer->paintDevice(), rect);
406
407 image->addNode(layer.data(), image->rootLayer());
408 doc->setCurrentImage(image);
410
411 KisMainWindow *win = viewManager->mainWindow();
412 win->addViewAndNotifyLoadingCompleted(doc);
413}
const quint8 OPACITY_OPAQUE_U8
static KisClipboard * instance()
bool renamePastedLayers(bool defaultValue=false) const
KisUndoStore * createUndoStore()
KoDocumentInfo * documentInfo() const
void setCurrentImage(KisImageSP image, bool forceInitialUpdate=true, KisNodeSP preActivatedNode=nullptr)
KisGroupLayerSP rootLayer() const
QString nextLayerName(const QString &baseName="") const
Definition kis_image.cc:715
Main window for Krita.
QRect exactBounds() const
const KoColorSpace * colorSpace() const
static void copyAreaOptimized(const QPoint &dstPt, KisPaintDeviceSP src, KisPaintDeviceSP dst, const QRect &originalSrcRect)
static KisPart * instance()
Definition KisPart.cpp:131
void addDocument(KisDocument *document, bool notify=true)
Definition KisPart.cpp:211
KisDocument * createDocument() const
Definition KisPart.cpp:230
void setAboutInfo(const QString &info, const QString &data)
bool addNode(KisNodeSP node, KisNodeSP parent=KisNodeSP(), KisNodeAdditionFlags flags=KisNodeAdditionFlag::None)
KisPaintDeviceSP paintDevice

References KisPart::addDocument(), KisNodeFacade::addNode(), KisClipboard::clip, KisPaintDevice::colorSpace(), KisPainter::copyAreaOptimized(), KisPart::createDocument(), KisDocument::createUndoStore(), KisSharedPtr< T >::data(), KisDocument::documentInfo(), KisPaintDevice::exactBounds(), KisClipboard::instance(), KisPart::instance(), KisViewManager::mainWindow(), KisImage::nextLayerName(), OPACITY_OPAQUE_U8, KisPaintLayer::paintDevice, KisConfig::renamePastedLayers(), KisImage::rootLayer(), KoDocumentInfo::setAboutInfo(), and KisDocument::setCurrentImage().


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