Krita Source Code Documentation
Loading...
Searching...
No Matches
KoUpdater.cpp
Go to the documentation of this file.
1/* This file is part of the KDE project
2 *
3 * SPDX-FileCopyrightText: 2006-2007 Thomas Zander <zander@kde.org>
4 * SPDX-FileCopyrightText: 2009 Boudewijn Rempt <boud@valdyas.org>
5 *
6 * SPDX-License-Identifier: LGPL-2.0-or-later
7 */
8
9#include "KoUpdater.h"
10
11#include "KoUpdaterPrivate_p.h"
12
14 : m_progressPercent(0)
15{
16 d = _d;
17 Q_ASSERT(!d.isNull());
18
19 connect(this, SIGNAL(sigCancel()), d, SLOT(cancel()));
20 connect(this, SIGNAL(sigProgress(int)), d, SLOT(setProgress(int)));
21 connect(this, SIGNAL(sigNestedNameChanged(QString)), d, SLOT(setAutoNestedName(QString)));
22 connect(this, SIGNAL(sigHasValidRangeChanged(bool)), d, SLOT(setHasValidRange(bool)));
23
24
25 setRange(0, 100);
26 m_interrupted = false;
27}
28
32
34{
35 Q_EMIT sigCancel();
36}
37
38void KoUpdater::setProgress(int percent)
39{
40 const bool percentChanged = m_progressPercent != percent;
41
42 if (percentChanged || percent == 0 || percent == 100) {
43 m_progressPercent = percent;
44 Q_EMIT sigProgress( percent );
45 }
46}
47
49{
50
51 return m_progressPercent;
52}
53
55{
56 return m_interrupted.loadAcquire();
57}
58
60{
61 return max;
62}
63
65{
66 value = qBound(min, value, max);
67
68 // Go from range to percent
69 const int range = max - min;
70
71 if (range == 0) {
73 Q_EMIT sigProgress(max);
74 } else {
75 setProgress((100 * (value - min)) / range);
76 }
77}
78
79void KoUpdater::setRange( int minimum, int maximum )
80{
81 min = minimum;
82 max = maximum;
83 range = max - min;
84 Q_EMIT sigHasValidRangeChanged(range != 0);
85}
86
87void KoUpdater::setFormat( const QString & format )
88{
89 Q_EMIT sigNestedNameChanged(format);
90}
91
92void KoUpdater::setAutoNestedName(const QString &name)
93{
94 Q_EMIT sigNestedNameChanged(name);
95}
96
98{
99 m_interrupted.storeRelease(value);
100}
101
106
108{
109 d->deleteLater();
110}
111
float value(const T *src, size_t ch)
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
KoUpdater * updater()
KoUpdaterPrivate * d
Definition KoUpdater.h:125
QPointer< KoUpdater > connectedUpdater() const
void sigProgress(int percent)
emitted whenever the subtask has called setProgress on us
QAtomicInt m_interrupted
Definition KoUpdater.h:110
int maximum() const override
Definition KoUpdater.cpp:59
bool interrupted() const
Definition KoUpdater.cpp:54
void setFormat(const QString &format) override
Definition KoUpdater.cpp:87
void sigCancel()
emitted whenever the subtask has called cancel on us
int m_progressPercent
Definition KoUpdater.h:111
virtual ~KoUpdater()
Definition KoUpdater.cpp:29
void sigHasValidRangeChanged(bool value)
int progress() const
Definition KoUpdater.cpp:48
void setProgress(int percent)
Definition KoUpdater.cpp:38
KoUpdater(KoUpdaterPrivate *_d)
Definition KoUpdater.cpp:13
void setValue(int value) override
Definition KoUpdater.cpp:64
void setAutoNestedName(const QString &name) override
Definition KoUpdater.cpp:92
QPointer< KoUpdaterPrivate > d
Definition KoUpdater.h:99
void cancel()
Definition KoUpdater.cpp:33
void setRange(int minimum, int maximum) override
Definition KoUpdater.cpp:79
void sigNestedNameChanged(const QString &value)
void setInterrupted(bool value)
Definition KoUpdater.cpp:97