File indexing completed on 2024-04-28 04:20:53

0001 /* SPDX-FileCopyrightText: 2012-2019 The KPhotoAlbum Development Team
0002 
0003    SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
0004 */
0005 
0006 #include "JobViewer.h"
0007 
0008 #include "JobManager.h"
0009 #include "JobModel.h"
0010 
0011 #include <KLocalizedString>
0012 #include <QDialogButtonBox>
0013 #include <QLayout>
0014 #include <QPushButton>
0015 #include <QTreeView>
0016 
0017 BackgroundTaskManager::JobViewer::JobViewer(QWidget *parent)
0018     : QDialog(parent)
0019     , m_model(nullptr)
0020 {
0021     setWindowTitle(i18nc("@title:window", "Background Job Viewer"));
0022 
0023     QVBoxLayout *mainLayout = new QVBoxLayout;
0024     setLayout(mainLayout);
0025 
0026     m_treeView = new QTreeView;
0027     mainLayout->addWidget(m_treeView);
0028 
0029     QDialogButtonBox *buttonBox = new QDialogButtonBox;
0030     m_pauseButton = buttonBox->addButton(i18n("Pause"), QDialogButtonBox::YesRole);
0031     buttonBox->addButton(QDialogButtonBox::Close);
0032 
0033     connect(m_pauseButton, &QPushButton::clicked, this, &JobViewer::togglePause);
0034     connect(buttonBox, &QDialogButtonBox::rejected, this, &QDialog::accept);
0035 
0036     mainLayout->addWidget(buttonBox);
0037 }
0038 
0039 void BackgroundTaskManager::JobViewer::setVisible(bool b)
0040 {
0041     if (b) {
0042         m_model = new JobModel(this);
0043         m_treeView->setModel(m_model);
0044         updatePauseButton();
0045     } else {
0046         delete m_model;
0047         m_model = nullptr;
0048     }
0049 
0050     m_treeView->setColumnWidth(0, 50);
0051     m_treeView->setColumnWidth(1, 300);
0052     m_treeView->setColumnWidth(2, 300);
0053     m_treeView->setColumnWidth(3, 50);
0054     QDialog::setVisible(b);
0055 }
0056 
0057 void BackgroundTaskManager::JobViewer::togglePause()
0058 {
0059     JobManager::instance()->togglePaused();
0060     updatePauseButton();
0061 }
0062 
0063 void BackgroundTaskManager::JobViewer::updatePauseButton()
0064 {
0065     m_pauseButton->setText(JobManager::instance()->isPaused() ? i18n("Continue") : i18n("Pause"));
0066 }
0067 
0068 // vi:expandtab:tabstop=4 shiftwidth=4:
0069 
0070 #include "moc_JobViewer.cpp"