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
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
20
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
51
56
58{
59 Q_FOREACH (KoProgressUpdater* updater, m_activeUpdaters) {
60 updater->cancel();
61 }
63}
64
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
79{
80 m_activeUpdaters.removeOne(updater);
81}
82
87
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
QToolButton * m_cancelButton
KoProgressProxy * progressProxy()
QList< KoProgressUpdater * > m_activeUpdaters
void detachUpdater(KoProgressUpdater *updater) override
void attachUpdater(KoProgressUpdater *updater) override
void sigCancellationRequested()
void correctVisibility(int progressValue)
KisProgressWidget(QWidget *parent=0)
KoProgressBar * m_progressBar
int maximum() const override
QIcon loadIcon(const QString &name)