File indexing completed on 2024-06-09 04:52:59
0001 /* 0002 SPDX-FileCopyrightText: 2007-2009 Sergio Pistone <sergio_pistone@yahoo.com.ar> 0003 SPDX-FileCopyrightText: 2010-2022 Mladen Milinkovic <max@smoothware.net> 0004 0005 SPDX-License-Identifier: GPL-2.0-or-later 0006 */ 0007 0008 #include "progressdialog.h" 0009 0010 #include <QLabel> 0011 #include <QProgressBar> 0012 #include <QBoxLayout> 0013 #include <QCloseEvent> 0014 #include <QDialogButtonBox> 0015 #include <QPushButton> 0016 0017 #include <KLocalizedString> 0018 0019 using namespace SubtitleComposer; 0020 0021 ProgressDialog::ProgressDialog(const QString &caption, const QString &description, bool allowCancel, QWidget *parent) : 0022 QDialog(parent, Qt::WindowTitleHint) 0023 { 0024 setWindowTitle(caption); 0025 setModal(true); 0026 0027 m_buttonBox = new QDialogButtonBox(allowCancel ? QDialogButtonBox::Cancel : QDialogButtonBox::NoButton, this); 0028 connect(m_buttonBox, &QDialogButtonBox::accepted, this, &QDialog::accept); 0029 connect(m_buttonBox, &QDialogButtonBox::rejected, this, &QDialog::reject); 0030 0031 m_label = new QLabel(this); 0032 m_label->setText(description); 0033 m_label->setAlignment(Qt::AlignHCenter); 0034 0035 m_progressBar = new QProgressBar(this); 0036 m_progressBar->setFormat(i18nc("%p is the percent value, % is the percent sign", "%p%")); 0037 m_progressBar->setMaximum(1); 0038 m_progressBar->setValue(0); 0039 0040 QBoxLayout *mainLayout = new QBoxLayout(QBoxLayout::TopToBottom, this); 0041 mainLayout->setContentsMargins(0, 0, 0, 0); 0042 mainLayout->addWidget(m_label); 0043 mainLayout->addWidget(m_progressBar); 0044 mainLayout->addWidget(m_buttonBox); 0045 0046 setMinimumWidth(300); 0047 resize(QSize(300, 10)); 0048 } 0049 0050 void 0051 ProgressDialog::closeEvent(QCloseEvent *event) 0052 { 0053 event->ignore(); 0054 } 0055 0056 QString 0057 ProgressDialog::description() const 0058 { 0059 return m_label->text(); 0060 } 0061 0062 void 0063 ProgressDialog::setDescription(const QString &description) 0064 { 0065 m_label->setText(description); 0066 } 0067 0068 int 0069 ProgressDialog::value() const 0070 { 0071 return m_progressBar->value(); 0072 } 0073 0074 void 0075 ProgressDialog::setValue(int value) 0076 { 0077 m_progressBar->setValue(value); 0078 } 0079 0080 int 0081 ProgressDialog::minimum() const 0082 { 0083 return m_progressBar->minimum(); 0084 } 0085 0086 void 0087 ProgressDialog::setMinimum(int minimum) 0088 { 0089 m_progressBar->setMinimum(minimum); 0090 } 0091 0092 void 0093 ProgressDialog::incrementMinimum(int delta) 0094 { 0095 m_progressBar->setMinimum(m_progressBar->minimum() + delta); 0096 } 0097 0098 int 0099 ProgressDialog::maximum() const 0100 { 0101 return m_progressBar->maximum(); 0102 } 0103 0104 void 0105 ProgressDialog::setMaximum(int maximum) 0106 { 0107 m_progressBar->setMaximum(maximum); 0108 } 0109 0110 void 0111 ProgressDialog::incrementMaximum(int delta) 0112 { 0113 m_progressBar->setMaximum(m_progressBar->maximum() + delta); 0114 } 0115 0116 bool 0117 ProgressDialog::isCancellable() const 0118 { 0119 return m_buttonBox->button(QDialogButtonBox::Cancel)->isEnabled(); 0120 } 0121 0122 void 0123 ProgressDialog::setCancellable(bool cancellable) 0124 { 0125 m_buttonBox->button(QDialogButtonBox::Cancel)->setEnabled(cancellable); 0126 } 0127 0128