Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_progress_widget.cpp
Go to the documentation of this file.
1
/*
2
* SPDX-FileCopyrightText: 2002 Patrick Julien <freak@codepimps.org>
3
* SPDX-FileCopyrightText: 2004 Adrian Page <adrian@pagenet.plus.com>
4
* SPDX-FileCopyrightText: 2009 Boudewijn Rempt <boud@valdyas.org>
5
*
6
* SPDX-License-Identifier: GPL-2.0-or-later
7
*/
8
9
#include "
kis_progress_widget.h
"
10
#include <
kis_debug.h
>
11
#include <QToolButton>
12
#include <QHBoxLayout>
13
14
#include <
kis_icon.h
>
15
16
#include <
KoProgressUpdater.h
>
17
#include <
KoProgressBar.h
>
18
19
#include <
kis_progress_updater.h
>
20
21
KisProgressWidget::KisProgressWidget
(QWidget* parent)
22
: QWidget(parent)
23
{
24
QHBoxLayout* layout =
new
QHBoxLayout(
this
);
25
m_cancelButton
=
new
QToolButton(
this
);
26
m_cancelButton
->setIcon(
KisIconUtils::loadIcon
(
"process-stop"
));
27
28
QSizePolicy sizePolicy =
m_cancelButton
->sizePolicy();
29
sizePolicy.setVerticalPolicy(QSizePolicy::Ignored);
30
m_cancelButton
->setSizePolicy(sizePolicy);
31
32
connect(
m_cancelButton
, SIGNAL(clicked()),
this
, SLOT(
cancel
()));
33
34
m_progressBar
=
new
KoProgressBar
(
this
);
35
// fixme:connect to the visibility changed signal if exists
36
connect(
m_progressBar
, SIGNAL(valueChanged(
int
)), SLOT(
correctVisibility
(
int
)));
37
layout->addWidget(
m_progressBar
);
38
layout->addWidget(
m_cancelButton
);
39
layout->setContentsMargins(0, 0, 0, 0);
40
41
m_progressBar
->setVisible(
false
);
42
m_cancelButton
->setVisible(
false
);
43
44
setMaximumWidth(225);
45
setMinimumWidth(225);
46
}
47
48
KisProgressWidget::~KisProgressWidget
()
49
{
50
}
51
52
KoProgressProxy
*
KisProgressWidget::progressProxy
()
53
{
54
return
m_progressBar
;
55
}
56
57
void
KisProgressWidget::cancel
()
58
{
59
Q_FOREACH (
KoProgressUpdater
* updater,
m_activeUpdaters
) {
60
updater->
cancel
();
61
}
62
Q_EMIT
sigCancellationRequested
();
63
}
64
65
void
KisProgressWidget::correctVisibility
(
int
progressValue)
66
{
67
// TODO: this check duplicates code in KoProgressBar::setValue()
68
69
const
bool
visibility =
70
m_progressBar
->minimum() ==
m_progressBar
->
maximum
() ||
71
(progressValue >=
m_progressBar
->minimum() &&
72
progressValue <
m_progressBar
->
maximum
());
73
74
m_progressBar
->setVisible(visibility);
75
m_cancelButton
->setVisible(visibility);
76
}
77
78
void
KisProgressWidget::detachUpdater
(
KoProgressUpdater
* updater)
79
{
80
m_activeUpdaters
.removeOne(updater);
81
}
82
83
void
KisProgressWidget::attachUpdater
(
KoProgressUpdater
* updater)
84
{
85
m_activeUpdaters
<< updater;
86
}
87
KoProgressBar.h
KoProgressUpdater.h
KisProgressWidget::m_cancelButton
QToolButton * m_cancelButton
Definition
kis_progress_widget.h:60
KisProgressWidget::progressProxy
KoProgressProxy * progressProxy()
Definition
kis_progress_widget.cpp:52
KisProgressWidget::m_activeUpdaters
QList< KoProgressUpdater * > m_activeUpdaters
Definition
kis_progress_widget.h:62
KisProgressWidget::~KisProgressWidget
~KisProgressWidget() override
Definition
kis_progress_widget.cpp:48
KisProgressWidget::detachUpdater
void detachUpdater(KoProgressUpdater *updater) override
Definition
kis_progress_widget.cpp:78
KisProgressWidget::attachUpdater
void attachUpdater(KoProgressUpdater *updater) override
Definition
kis_progress_widget.cpp:83
KisProgressWidget::sigCancellationRequested
void sigCancellationRequested()
KisProgressWidget::correctVisibility
void correctVisibility(int progressValue)
Definition
kis_progress_widget.cpp:65
KisProgressWidget::KisProgressWidget
KisProgressWidget(QWidget *parent=0)
Definition
kis_progress_widget.cpp:21
KisProgressWidget::m_progressBar
KoProgressBar * m_progressBar
Definition
kis_progress_widget.h:61
KisProgressWidget::cancel
void cancel()
Definition
kis_progress_widget.cpp:57
KoProgressBar
Definition
KoProgressBar.h:20
KoProgressBar::maximum
int maximum() const override
Definition
KoProgressBar.cpp:18
KoProgressProxy
Definition
KoProgressProxy.h:20
KoProgressUpdater
Definition
KoProgressUpdater.cpp:24
KoProgressUpdater::cancel
void cancel()
Definition
KoProgressUpdater.cpp:163
kis_debug.h
kis_icon.h
kis_progress_updater.h
kis_progress_widget.h
KisIconUtils::loadIcon
QIcon loadIcon(const QString &name)
Definition
kis_icon_utils.cpp:29
libs
ui
widgets
kis_progress_widget.cpp
Generated at
2026-01-15 02:30:07+01:00
from
Krita
branch
master
, commit
38b517ca06286bb65279453cbf9a2b4fbd1153d1