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

- Protected Member Functions inherited from KisOperation
KisProcessingApplicatorbeginAction (KisViewManager *view, const KUndo2MagicString &actionName)
 
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 523 of file kis_selection_action_factories.cpp.

524{
525 KisSelectionSP selection = view->selection();
526
527 if (!selection->hasShapeSelection()) {
528 view->showFloatingMessage(i18nc("floating message",
529 "Selection is already in a raster format "),
530 QIcon(), 2000, KisFloatingMessage::Low);
531 return;
532 }
533
534 KisProcessingApplicator *ap = beginAction(view, kundo2_i18n("Convert to Vector Selection"));
535
536 struct RasterizeSelection : public KisTransactionBasedCommand {
537 RasterizeSelection(KisSelectionSP sel)
538 : m_sel(sel) {}
539 KisSelectionSP m_sel;
540
541 KUndo2Command* paint() override {
542 // just create an empty transaction: it will rasterize the
543 // selection and Q_EMIT the necessary signals
544
545 KisTransaction transaction(m_sel->pixelSelection());
546 return transaction.endAndTake();
547 }
548 };
549
550 ap->applyCommand(new RasterizeSelection(selection),
553
554 endAction(ap, KisOperationConfiguration(id()).toXML());
555}
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)
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: