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"