File indexing completed on 2024-04-28 05:47:44
0001 /* 0002 SPDX-FileCopyrightText: 2007 Henrique Pinto <henrique.pinto@kdemail.net> 0003 SPDX-FileCopyrightText: 2008 Harald Hvaal <haraldhv@stud.ntnu.no> 0004 0005 SPDX-License-Identifier: GPL-2.0-or-later 0006 */ 0007 0008 #include "jobtracker.h" 0009 #include "ark_debug.h" 0010 0011 JobTrackerWidget::JobTrackerWidget(QWidget *parent) 0012 : QFrame(parent) 0013 { 0014 setupUi(this); 0015 } 0016 0017 JobTracker::JobTracker(QWidget *parent) 0018 : KAbstractWidgetJobTracker(parent) 0019 { 0020 m_ui = new JobTrackerWidget(parent); 0021 resetUi(); 0022 } 0023 0024 JobTracker::~JobTracker() 0025 { 0026 QSetIterator<KJob *> it(m_jobs); 0027 while (it.hasNext()) { 0028 auto job = it.next(); 0029 job->kill(); 0030 } 0031 } 0032 0033 void JobTracker::description(KJob *job, const QString &title, const QPair<QString, QString> &f1, const QPair<QString, QString> &f2) 0034 { 0035 Q_UNUSED(job) 0036 Q_UNUSED(f1) 0037 Q_UNUSED(f2) 0038 m_ui->descriptionLabel->setText(QStringLiteral("<b>%1</b>").arg(title)); 0039 m_ui->descriptionLabel->show(); 0040 } 0041 0042 void JobTracker::infoMessage(KJob *job, const QString &message) 0043 { 0044 Q_UNUSED(job) 0045 m_ui->informationLabel->setText(message); 0046 m_ui->informationLabel->show(); 0047 } 0048 0049 void JobTracker::warning(KJob *job, const QString &message) 0050 { 0051 Q_UNUSED(job) 0052 m_ui->informationLabel->setText(message); 0053 } 0054 0055 void JobTracker::registerJob(KJob *job) 0056 { 0057 m_jobs << job; 0058 KAbstractWidgetJobTracker::registerJob(job); 0059 m_ui->show(); 0060 m_ui->informationLabel->hide(); 0061 m_ui->progressBar->show(); 0062 } 0063 0064 void JobTracker::percent(KJob *job, unsigned long percent) 0065 { 0066 Q_UNUSED(job) 0067 m_ui->progressBar->setMaximum(100); 0068 m_ui->progressBar->setMinimum(0); 0069 m_ui->progressBar->setValue(static_cast<int>(percent)); 0070 } 0071 0072 void JobTracker::unregisterJob(KJob *job) 0073 { 0074 m_jobs.remove(job); 0075 KAbstractWidgetJobTracker::unregisterJob(job); 0076 resetUi(); 0077 } 0078 0079 void JobTracker::resetUi() 0080 { 0081 m_ui->hide(); 0082 m_ui->descriptionLabel->hide(); 0083 m_ui->informationLabel->hide(); 0084 m_ui->progressBar->setMaximum(0); 0085 m_ui->progressBar->setMinimum(0); 0086 } 0087 0088 QWidget *JobTracker::widget(KJob *) 0089 { 0090 return m_ui; 0091 } 0092 0093 #include "moc_jobtracker.cpp"