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

#include <kis_selection_action_factories.h>

+ Inheritance diagram for KisSelectionToVectorActionFactory:

Public Member Functions

 KisSelectionToVectorActionFactory ()
 
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 88 of file kis_selection_action_factories.h.

Constructor & Destructor Documentation

◆ KisSelectionToVectorActionFactory()

KisSelectionToVectorActionFactory::KisSelectionToVectorActionFactory ( )
inline

Definition at line 89 of file kis_selection_action_factories.h.

89: KisNoParameterActionFactory("selection-to-vector") {}

Member Function Documentation

◆ run()

void KisSelectionToVectorActionFactory::run ( KisViewManager * view)
overridevirtual

Mark a shape that it belongs to a shape selection

Implements KisNoParameterActionFactory.

Definition at line 483 of file kis_selection_action_factories.cpp.

484{
485 KisSelectionSP selection = view->selection();
486
487 if (selection->hasShapeSelection()) {
488 view->showFloatingMessage(i18nc("floating message",
489 "Selection is already in a vector format "),
490 QIcon(), 2000, KisFloatingMessage::Low);
491 return;
492 }
493
494 if (!selection->outlineCacheValid()) {
495 view->image()->addSpontaneousJob(new KisUpdateOutlineJob(selection, false, Qt::transparent));
496 if (!view->blockUntilOperationsFinished(view->image())) {
497 return;
498 }
499 }
500
501 QPainterPath selectionOutline = selection->outlineCache();
502 QTransform transform = view->canvasBase()->coordinatesConverter()->imageToDocumentTransform();
503
504 KoShape *shape = KoPathShape::createShapeFromPainterPath(transform.map(selectionOutline));
506
510 if(!shape->userData()) {
512 }
513
514 KisProcessingApplicator *ap = beginAction(view, kundo2_i18n("Convert to Vector Selection"));
515
516 ap->applyCommand(view->canvasBase()->shapeController()->addShape(shape, 0),
519
520 endAction(ap, KisOperationConfiguration(id()).toXML());
521}
#define KoPathShapeId
Definition KoPathShape.h:20
KisCoordinatesConverter * coordinatesConverter
void addSpontaneousJob(KisSpontaneousJob *spontaneousJob)
KisProcessingApplicator * beginAction(KisViewManager *view, const KUndo2MagicString &actionName)
void endAction(KisProcessingApplicator *applicator, const QString &xmlData)
void applyCommand(KUndo2Command *command, KisStrokeJobData::Sequentiality sequentiality=KisStrokeJobData::SEQUENTIAL, KisStrokeJobData::Exclusivity exclusivity=KisStrokeJobData::NORMAL)
bool blockUntilOperationsFinished(KisImageSP image)
blockUntilOperationsFinished blocks the GUI of the application until execution of actions on image is...
KisCanvas2 * canvasBase() const
Return the canvas base class.
KisSelectionSP selection()
KisImageWSP image() const
Return the image this view is displaying.
void showFloatingMessage(const QString &message, const QIcon &icon, int timeout=4500, KisFloatingMessage::Priority priority=KisFloatingMessage::Medium, int alignment=Qt::AlignCenter|Qt::TextWordWrap)
shows a floating message in the top right corner of the canvas
QPointer< KoShapeController > shapeController
static KoPathShape * createShapeFromPainterPath(const QPainterPath &path)
Creates path shape from given QPainterPath.
KoShapeUserData * userData() const
Definition KoShape.cpp:710
void setUserData(KoShapeUserData *userData)
Definition KoShape.cpp:705
void setShapeId(const QString &id)
Definition KoShape.cpp:1062
KUndo2MagicString kundo2_i18n(const char *text)
bool outlineCacheValid() const
bool hasShapeSelection() const
QPainterPath outlineCache() const

References KisImage::addSpontaneousJob(), KisProcessingApplicator::applyCommand(), KisOperation::beginAction(), KisViewManager::blockUntilOperationsFinished(), KisViewManager::canvasBase(), KisCanvas2::coordinatesConverter, KoPathShape::createShapeFromPainterPath(), KisOperation::endAction(), KisStrokeJobData::EXCLUSIVE, KisSelection::hasShapeSelection(), KisViewManager::image(), KisCoordinatesConverter::imageToDocumentTransform(), KoPathShapeId, kundo2_i18n(), KisFloatingMessage::Low, KisSelection::outlineCache(), KisSelection::outlineCacheValid(), KisViewManager::selection(), KisStrokeJobData::SEQUENTIAL, KoShape::setShapeId(), KoShape::setUserData(), KoCanvasBase::shapeController, KisViewManager::showFloatingMessage(), and KoShape::userData().


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