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

#include <kis_queues_progress_updater.h>

+ Inheritance diagram for KisQueuesProgressUpdater:

Signals

void sigStartTicking ()
 
void sigStopTicking ()
 

Public Member Functions

void hide ()
 
 KisQueuesProgressUpdater (KoProgressProxy *progressProxy, QObject *parent=0)
 
 Private (KisQueuesProgressUpdater *q)
 
void updateProgress (int queueSizeMetric, const QString &jobName)
 
 ~KisQueuesProgressUpdater () override
 
- Public Member Functions inherited from Private
 Private (KisCanvas2 *c)
 

Public Attributes

int initialQueueSizeMetric
 
QString jobName
 
QMutex mutex
 
KoProgressProxyprogressProxy
 
int queueSizeMetric
 
QTimer startDelayTimer
 
bool tickingRequested
 
QTimer timer
 
- Public Attributes inherited from Private
KisCanvas2canvas
 
int displayedFrame
 
int intendedFrame
 

Static Public Attributes

static const int PROGRESS_DELAY = 1000
 
static const int TIMER_INTERVAL = 500
 

Private Slots

void startTicking ()
 
void stopTicking ()
 
void timerTicked ()
 

Private Attributes

Private *const m_d
 

Detailed Description

Definition at line 15 of file kis_queues_progress_updater.cpp.

Constructor & Destructor Documentation

◆ KisQueuesProgressUpdater()

KisQueuesProgressUpdater::KisQueuesProgressUpdater ( KoProgressProxy * progressProxy,
QObject * parent = 0 )

Definition at line 44 of file kis_queues_progress_updater.cpp.

45 : QObject(parent),
46 m_d(new Private(this))
47{
48 m_d->progressProxy = progressProxy;
49
50 m_d->timer.setInterval(Private::TIMER_INTERVAL);
51 m_d->timer.setSingleShot(false);
52
53 connect(this, SIGNAL(sigStartTicking()), SLOT(startTicking()), Qt::QueuedConnection);
54 connect(this, SIGNAL(sigStopTicking()), SLOT(stopTicking()), Qt::QueuedConnection);
55 connect(&m_d->timer, SIGNAL(timeout()), SLOT(timerTicked()));
56
57 m_d->startDelayTimer.setInterval(Private::PROGRESS_DELAY);
58 m_d->startDelayTimer.setSingleShot(true);
59
60 connect(&m_d->startDelayTimer, SIGNAL(timeout()), &m_d->timer, SLOT(start()));
61 connect(&m_d->startDelayTimer, SIGNAL(timeout()), SLOT(timerTicked()));
62}
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))

References connect(), m_d, progressProxy, sigStartTicking(), sigStopTicking(), startTicking(), stopTicking(), and timerTicked().

◆ ~KisQueuesProgressUpdater()

KisQueuesProgressUpdater::~KisQueuesProgressUpdater ( )
override

Definition at line 64 of file kis_queues_progress_updater.cpp.

65{
66 delete m_d;
67}

References m_d.

Member Function Documentation

◆ hide()

void KisQueuesProgressUpdater::hide ( )

Definition at line 97 of file kis_queues_progress_updater.cpp.

98{
99 updateProgress(0, "");
100}
void updateProgress(int queueSizeMetric, const QString &jobName)

References updateProgress().

◆ Private()

◆ sigStartTicking

void KisQueuesProgressUpdater::sigStartTicking ( )
signal

◆ sigStopTicking

void KisQueuesProgressUpdater::sigStopTicking ( )
signal

◆ startTicking

void KisQueuesProgressUpdater::startTicking ( )
privateslot

Definition at line 102 of file kis_queues_progress_updater.cpp.

103{
104 m_d->startDelayTimer.start();
105}

References m_d.

◆ stopTicking

void KisQueuesProgressUpdater::stopTicking ( )
privateslot

Definition at line 107 of file kis_queues_progress_updater.cpp.

108{
109 m_d->startDelayTimer.stop();
110 m_d->timer.stop();
111 timerTicked();
112}

References m_d, and timerTicked().

◆ timerTicked

void KisQueuesProgressUpdater::timerTicked ( )
privateslot

Definition at line 114 of file kis_queues_progress_updater.cpp.

115{
116 QMutexLocker locker(&m_d->mutex);
117
118 if (!m_d->initialQueueSizeMetric) {
119 m_d->progressProxy->setRange(0, 100);
120 m_d->progressProxy->setValue(100);
121 m_d->progressProxy->setFormat("%p%");
122 } else {
123 m_d->progressProxy->setRange(0, m_d->initialQueueSizeMetric);
124 m_d->progressProxy->setValue(m_d->initialQueueSizeMetric - m_d->queueSizeMetric);
125 m_d->progressProxy->setFormat(m_d->jobName);
126 }
127}

References m_d.

◆ updateProgress()

void KisQueuesProgressUpdater::updateProgress ( int queueSizeMetric,
const QString & jobName )

Definition at line 69 of file kis_queues_progress_updater.cpp.

70{
71 QMutexLocker locker(&m_d->mutex);
72
73 m_d->queueSizeMetric = queueSizeMetric;
74
75 if (queueSizeMetric &&
76 (jobName != m_d->jobName ||
77 m_d->queueSizeMetric > m_d->initialQueueSizeMetric)) {
78
79 m_d->jobName = jobName;
80 m_d->initialQueueSizeMetric = m_d->queueSizeMetric;
81 }
82
83 if (m_d->queueSizeMetric && !m_d->tickingRequested) {
84
85 m_d->tickingRequested = true;
86 Q_EMIT sigStartTicking();
87
88 } else if (!m_d->queueSizeMetric && m_d->tickingRequested) {
89
90 m_d->initialQueueSizeMetric = 0;
91 m_d->jobName.clear();
92 m_d->tickingRequested = false;
93 Q_EMIT sigStopTicking();
94 }
95}

References jobName, m_d, queueSizeMetric, sigStartTicking(), and sigStopTicking().

Member Data Documentation

◆ initialQueueSizeMetric

int KisQueuesProgressUpdater::initialQueueSizeMetric

Definition at line 32 of file kis_queues_progress_updater.cpp.

◆ jobName

QString KisQueuesProgressUpdater::jobName

Definition at line 33 of file kis_queues_progress_updater.cpp.

◆ m_d

Private* const KisQueuesProgressUpdater::m_d
private

Definition at line 38 of file kis_queues_progress_updater.h.

◆ mutex

QMutex KisQueuesProgressUpdater::mutex

Definition at line 27 of file kis_queues_progress_updater.cpp.

◆ PROGRESS_DELAY

const int KisQueuesProgressUpdater::PROGRESS_DELAY = 1000
static

Definition at line 40 of file kis_queues_progress_updater.cpp.

◆ progressProxy

KoProgressProxy* KisQueuesProgressUpdater::progressProxy

Definition at line 35 of file kis_queues_progress_updater.cpp.

◆ queueSizeMetric

int KisQueuesProgressUpdater::queueSizeMetric

Definition at line 31 of file kis_queues_progress_updater.cpp.

◆ startDelayTimer

QTimer KisQueuesProgressUpdater::startDelayTimer

Definition at line 29 of file kis_queues_progress_updater.cpp.

◆ tickingRequested

bool KisQueuesProgressUpdater::tickingRequested

Definition at line 37 of file kis_queues_progress_updater.cpp.

◆ timer

QTimer KisQueuesProgressUpdater::timer

Definition at line 28 of file kis_queues_progress_updater.cpp.

◆ TIMER_INTERVAL

const int KisQueuesProgressUpdater::TIMER_INTERVAL = 500
static

Definition at line 39 of file kis_queues_progress_updater.cpp.


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