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

#include <kis_selection_action_factories.h>

+ Inheritance diagram for KisSelectionToRasterActionFactory:

Public Member Functions

 KisSelectionToRasterActionFactory ()
 
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

- Public Types inherited from KisOperation
enum  Flag { Normal = 0x0 , ReadOnly = 0x1 }
 
- Protected Member Functions inherited from KisOperation
KisProcessingApplicator * beginAction (KisViewManager *view, const KUndo2MagicString &actionName, Flags flags=Normal)
 
void endAction (KisProcessingApplicator *applicator, const QString &xmlData)
 

Detailed Description

Definition at line 93 of file kis_selection_action_factories.h.

Constructor & Destructor Documentation

◆ KisSelectionToRasterActionFactory()

KisSelectionToRasterActionFactory::KisSelectionToRasterActionFactory ( )
inline

Definition at line 94 of file kis_selection_action_factories.h.

94: KisNoParameterActionFactory("selection-to-raster") {}

Member Function Documentation

◆ run()

void KisSelectionToRasterActionFactory::run ( KisViewManager * view)
overridevirtual

Implements KisNoParameterActionFactory.

Definition at line 443 of file kis_selection_action_factories.cpp.

444{
445 KisSelectionSP selection = view->selection();
446
447 if (!selection->hasShapeSelection()) {
448 view->showFloatingMessage(i18nc("floating message",
449 "Selection is already in a raster format "),
450 QIcon(), 2000, KisFloatingMessage::Low);
451 return;
452 }
453
454 KisProcessingApplicator *ap = beginAction(view, kundo2_i18n("Convert to Vector Selection"));
455
456 struct RasterizeSelection : public KisTransactionBasedCommand {
457 RasterizeSelection(KisSelectionSP sel)
458 : m_sel(sel) {}
459 KisSelectionSP m_sel;
460
461 KUndo2Command* paint() override {
462 // just create an empty transaction: it will rasterize the
463 // selection and Q_EMIT the necessary signals
464
465 KisTransaction transaction(m_sel->pixelSelection());
466 return transaction.endAndTake();
467 }
468 };
469
470 ap->applyCommand(new RasterizeSelection(selection),
473
474 endAction(ap, KisOperationConfiguration(id()).toXML());
475}
void endAction(KisProcessingApplicator *applicator, const QString &xmlData)
KisProcessingApplicator * beginAction(KisViewManager *view, const KUndo2MagicString &actionName, Flags flags=Normal)
void applyCommand(KUndo2Command *command, KisStrokeJobData::Sequentiality sequentiality=KisStrokeJobData::SEQUENTIAL, KisStrokeJobData::Exclusivity exclusivity=KisStrokeJobData::NORMAL)
KisSelectionSP selection()
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
KUndo2MagicString kundo2_i18n(const char *text)
KisPixelSelectionSP pixelSelection
bool hasShapeSelection() const

References KisProcessingApplicator::applyCommand(), KisOperation::beginAction(), KisOperation::endAction(), KisTransaction::endAndTake(), KisStrokeJobData::EXCLUSIVE, KisSelection::hasShapeSelection(), kundo2_i18n(), KisFloatingMessage::Low, KisSelection::pixelSelection, KisViewManager::selection(), KisStrokeJobData::SEQUENTIAL, and KisViewManager::showFloatingMessage().


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