Krita Source Code Documentation
Loading...
Searching...
No Matches
KisHoldUIUpdatesCommand Class Reference

#include <KisHoldUIUpdatesCommand.h>

+ Inheritance diagram for KisHoldUIUpdatesCommand:

Public Member Functions

 KisHoldUIUpdatesCommand (KisUpdatesFacade *updatesFacade, State state)
 
void partA () override
 
void partB () override
 
- Public Member Functions inherited from KisCommandUtils::FlipFlopCommand
 FlipFlopCommand (bool finalizing=false, KUndo2Command *parent=0)
 
 FlipFlopCommand (State initialState, KUndo2Command *parent=0)
 
void redo () override
 
void undo () override
 
- Public Member Functions inherited from KUndo2Command
QString actionText () const
 
virtual bool canAnnihilateWith (const KUndo2Command *other) const
 
const KUndo2Command * child (int index) const
 
int childCount () const
 
virtual QTime endTime () const
 
KUndo2CommandExtraData * extraData () const
 
bool hasParent () const
 
virtual int id () const
 
virtual bool isMerged () const
 
 KUndo2Command (const KUndo2MagicString &text, KUndo2Command *parent=0)
 
 KUndo2Command (KUndo2Command *parent=0)
 
virtual QVector< KUndo2Command * > mergeCommandsVector () const
 
virtual bool mergeWith (const KUndo2Command *other)
 
virtual void redoMergedCommands ()
 
void setEndTime ()
 
virtual void setEndTime (const QTime &time)
 
void setExtraData (KUndo2CommandExtraData *data)
 
void setText (const KUndo2MagicString &text)
 
void setTime ()
 
virtual void setTime (const QTime &time)
 
virtual void setTimedID (int timedID)
 
KUndo2MagicString text () const
 
virtual QTime time () const
 
virtual int timedId () const
 
virtual bool timedMergeWith (KUndo2Command *other)
 
virtual void undoMergedCommands ()
 
virtual ~KUndo2Command ()
 
- Public Member Functions inherited from KisStrokeStrategyUndoCommandBased::MutatedCommandInterface
KisRunnableStrokeJobsInterface * runnableJobsInterface () const
 
void setRunnableJobsInterface (KisRunnableStrokeJobsInterface *interface)
 
virtual ~MutatedCommandInterface ()
 

Private Attributes

QSharedPointer< bool > m_batchUpdateStarted
 
KisUpdatesFacade * m_updatesFacade
 

Additional Inherited Members

- Public Types inherited from KisCommandUtils::FlipFlopCommand
enum  State { INITIALIZING , FINALIZING }
 
- Protected Member Functions inherited from KisCommandUtils::FlipFlopCommand
State getState () const
 
bool isFirstRedo () const
 

Detailed Description

Definition at line 18 of file KisHoldUIUpdatesCommand.h.

Constructor & Destructor Documentation

◆ KisHoldUIUpdatesCommand()

KisHoldUIUpdatesCommand::KisHoldUIUpdatesCommand ( KisUpdatesFacade * updatesFacade,
State state )

Definition at line 19 of file KisHoldUIUpdatesCommand.cpp.

21 m_updatesFacade(updatesFacade),
22 m_batchUpdateStarted(new bool(false))
23{
24}
QSharedPointer< bool > m_batchUpdateStarted

Member Function Documentation

◆ partA()

void KisHoldUIUpdatesCommand::partA ( )
overridevirtual

◆ partB()

void KisHoldUIUpdatesCommand::partB ( )
overridevirtual

Reimplemented from KisCommandUtils::FlipFlopCommand.

Definition at line 36 of file KisHoldUIUpdatesCommand.cpp.

37{
39
40 const QRect totalRect =
42 std::accumulate(totalDirtyRects.begin(), totalDirtyRects.end(), QRect(), std::bit_or<QRect>());
43
44 totalDirtyRects =
46 totalDirtyRects,
48
51
52 KisUpdatesFacade *updatesFacade = m_updatesFacade;
53 QSharedPointer<bool> batchUpdateStarted = m_batchUpdateStarted;
54
56 Q_FOREACH (const QRect &rc, totalDirtyRects) {
57 KritaUtils::addJobConcurrent(jobsData, [updatesFacade, rc] () {
58 updatesFacade->notifyUIUpdateCompleted(rc);
59 });
60 }
61
62 KritaUtils::addJobBarrier(jobsData, [updatesFacade, batchUpdateStarted] () {
63 updatesFacade->notifyBatchUpdateEnded();
64 *batchUpdateStarted = false;
65 });
66
68}
virtual void addRunnableJobs(const QVector< KisRunnableStrokeJobDataBase * > &list)=0
virtual void notifyBatchUpdateStarted()=0
virtual void notifyUIUpdateCompleted(const QRect &rc)=0
virtual QRect bounds() const =0
virtual QVector< QRect > enableUIUpdates()=0
QVector< QRect > splitAndFilterDabRect(const QRect &totalRect, const QVector< QRect > &dabRects, int idealPatchSize)
void addJobConcurrent(QVector< Job * > &jobs, Func func)
void addJobBarrier(QVector< Job * > &jobs, Func func)
QSize optimalPatchSize()

References KritaUtils::addJobBarrier(), KritaUtils::addJobConcurrent(), KisRunnableStrokeJobsInterface::addRunnableJobs(), KisUpdatesFacade::bounds(), KisUpdatesFacade::enableUIUpdates(), m_batchUpdateStarted, m_updatesFacade, KisUpdatesFacade::notifyBatchUpdateEnded(), KisUpdatesFacade::notifyBatchUpdateStarted(), KisUpdatesFacade::notifyUIUpdateCompleted(), KritaUtils::optimalPatchSize(), KisStrokeStrategyUndoCommandBased::MutatedCommandInterface::runnableJobsInterface(), and KisPaintOpUtils::splitAndFilterDabRect().

Member Data Documentation

◆ m_batchUpdateStarted

QSharedPointer<bool> KisHoldUIUpdatesCommand::m_batchUpdateStarted
private

Definition at line 28 of file KisHoldUIUpdatesCommand.h.

◆ m_updatesFacade

KisUpdatesFacade* KisHoldUIUpdatesCommand::m_updatesFacade
private

Definition at line 27 of file KisHoldUIUpdatesCommand.h.


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