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

#include <kis_node_progress_proxy.h>

+ Inheritance diagram for KisNodeProgressProxy:

Signals

void percentageChanged (int _percentage, const KisNodeSP &_node)
 

Public Member Functions

bool computePercentage ()
 
int maximum () const override
 
int percentage () const
 
 Private ()
 
void setFormat (const QString &format) override
 
void setRange (int minimum, int maximum) override
 
void setValue (int value) override
 
- Public Member Functions inherited from Private
 Private (KisCanvas2 *c)
 
- Public Member Functions inherited from KoProgressProxy
virtual void setAutoNestedName (const QString &name)
 
virtual ~KoProgressProxy ()
 

Public Attributes

int maximum
 
int minimum
 
KisNodeWSP node
 
int percentage
 
int value
 
- Public Attributes inherited from Private
KisCanvas2canvas
 
int displayedFrame
 
int intendedFrame
 

Private Member Functions

 KisNodeProgressProxy (KisNode *_node)
 
void prepareDestroying ()
 
 ~KisNodeProgressProxy () override
 

Private Attributes

Private *const d
 

Friends

class KisNode
 

Detailed Description

This class implements KoProgressProxy and allows node to report progress.

Definition at line 13 of file kis_node_progress_proxy.cpp.

Constructor & Destructor Documentation

◆ KisNodeProgressProxy()

KisNodeProgressProxy::KisNodeProgressProxy ( KisNode * _node)
explicitprivate

Create a proxy to report progress when processing, this proxy is associated with a node, it will report progress in the node progress bar. This proxy will be deleted when _node is deleted.

Definition at line 42 of file kis_node_progress_proxy.cpp.

43 : d(new Private)
44{
45 d->node = _node;
46}

References d.

◆ ~KisNodeProgressProxy()

KisNodeProgressProxy::~KisNodeProgressProxy ( )
overrideprivate

Definition at line 48 of file kis_node_progress_proxy.cpp.

49{
50 delete d;
51}

References d.

Member Function Documentation

◆ computePercentage()

bool KisNodeProgressProxy::computePercentage ( )
inline

Definition at line 28 of file kis_node_progress_proxy.cpp.

28 {
29 int old_percentage = percentage;
30 if (value == maximum) {
31 percentage = -1;
32 } else if (minimum == maximum && minimum == 0) {
33 percentage = 0;
34 } else {
35 percentage = (100 * (value - minimum)) / (maximum - minimum);
36 percentage = qBound(0, percentage, 100);
37 }
38 return old_percentage != percentage;
39 }

References value().

◆ maximum()

int KisNodeProgressProxy::maximum ( ) const
overridevirtual

Implements KoProgressProxy.

◆ percentage()

int KisNodeProgressProxy::percentage ( ) const
Returns
the current percentage (return -1 if no progress)

◆ percentageChanged

void KisNodeProgressProxy::percentageChanged ( int _percentage,
const KisNodeSP & _node )
signal

Emitted when the percentage of the proxy is changed.

Parameters
_percentageis the progress value in percent
_nodeis the node that own this KisNodeProgressProxy

◆ prepareDestroying()

void KisNodeProgressProxy::prepareDestroying ( )
private

To be called when the node is and will be no longer available and this object is going to be deleted as well.

Definition at line 53 of file kis_node_progress_proxy.cpp.

54{
55 d->node = 0;
56}

References d.

◆ Private()

KisNodeProgressProxy::Private ( )
inline

Definition at line 14 of file kis_node_progress_proxy.cpp.

15 : minimum(0)
16 , maximum(100)
17 , value(100)
18 , percentage(-1)
19 {
20 }

◆ setFormat()

void KisNodeProgressProxy::setFormat ( const QString & format)
overridevirtual

Implements KoProgressProxy.

Definition at line 86 of file kis_node_progress_proxy.cpp.

87{
88 Q_UNUSED(_format);
89}

◆ setRange()

void KisNodeProgressProxy::setRange ( int minimum,
int maximum )
overridevirtual

Implements KoProgressProxy.

Definition at line 77 of file kis_node_progress_proxy.cpp.

78{
79 d->minimum = _minimum;
80 d->maximum = _maximum;
81 if (d->node && d->computePercentage()) {
82 emit(percentageChanged(d->percentage, d->node));
83 }
84}
void percentageChanged(int _percentage, const KisNodeSP &_node)

References d, and percentageChanged().

◆ setValue()

void KisNodeProgressProxy::setValue ( int value)
overridevirtual

Implements KoProgressProxy.

Definition at line 69 of file kis_node_progress_proxy.cpp.

70{
71 d->value = _value;
72 if (d->node && d->computePercentage()) {
73 emit(percentageChanged(d->percentage, d->node));
74 }
75}

References d, and percentageChanged().

Friends And Related Symbol Documentation

◆ KisNode

friend class KisNode
friend

Definition at line 23 of file kis_node_progress_proxy.h.

Member Data Documentation

◆ d

Private* const KisNodeProgressProxy::d
private

Definition at line 58 of file kis_node_progress_proxy.h.

◆ maximum

int KisNodeProgressProxy::maximum

Definition at line 24 of file kis_node_progress_proxy.cpp.

◆ minimum

int KisNodeProgressProxy::minimum

Definition at line 23 of file kis_node_progress_proxy.cpp.

◆ node

KisNodeWSP KisNodeProgressProxy::node

Definition at line 22 of file kis_node_progress_proxy.cpp.

◆ percentage

int KisNodeProgressProxy::percentage

Definition at line 26 of file kis_node_progress_proxy.cpp.

◆ value

int KisNodeProgressProxy::value

Definition at line 25 of file kis_node_progress_proxy.cpp.


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