X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/fa36c3fd1f53a223f43bb57d7c28e431a889a7c2..781e8e9e18579c0fe368ed9fe295f908493272b3:/src/settings/viewpropsprogressinfo.cpp diff --git a/src/settings/viewpropsprogressinfo.cpp b/src/settings/viewpropsprogressinfo.cpp index a4a45da26..fd5397bad 100644 --- a/src/settings/viewpropsprogressinfo.cpp +++ b/src/settings/viewpropsprogressinfo.cpp @@ -1,105 +1,103 @@ -/*************************************************************************** - * Copyright (C) 2006 by Peter Penz * - * peter.penz@gmx.at * - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - * This program is distributed in the hope that it will be useful, * - * but WITHOUT ANY WARRANTY; without even the implied warranty of * - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * - * GNU General Public License for more details. * - * * - * You should have received a copy of the GNU General Public License * - * along with this program; if not, write to the * - * Free Software Foundation, Inc., * - * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * - ***************************************************************************/ +/* + * SPDX-FileCopyrightText: 2006 Peter Penz + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ #include "viewpropsprogressinfo.h" + #include "applyviewpropsjob.h" +#include "views/viewproperties.h" + +#include +#include #include #include +#include #include -#include - -#include -#include - -#include - -ViewPropsProgressInfo::ViewPropsProgressInfo(QWidget* parent, - const KUrl& dir, - const ViewProperties& viewProps) : - KDialog(parent), - m_dir(dir), - m_viewProps(0), - m_label(0), - m_progressBar(0), - m_dirSizeJob(0), - m_applyViewPropsJob(0), - m_timer(0) +#include + +ViewPropsProgressInfo::ViewPropsProgressInfo(QWidget *parent, const QUrl &dir, const ViewProperties &viewProps) + : QDialog(parent) + , m_dir(dir) + , m_viewProps(nullptr) + , m_label(nullptr) + , m_progressBar(nullptr) + , m_dirSizeJob(nullptr) + , m_applyViewPropsJob(nullptr) + , m_timer(nullptr) { const QSize minSize = minimumSize(); setMinimumSize(QSize(320, minSize.height())); - - setCaption(i18nc("@title:window", "Applying View Properties")); - setButtons(KDialog::Cancel); + setWindowTitle(i18nc("@title:window", "Applying View Properties")); + setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Minimum); m_viewProps = new ViewProperties(dir); m_viewProps->setDirProperties(viewProps); - // the view properties are stored by the ViewPropsApplierJob, so prevent + // the view properties are stored by the ApplyViewPropsJob, so prevent // that the view properties are saved twice: m_viewProps->setAutoSaveEnabled(false); - QWidget* main = new QWidget(); - QVBoxLayout* topLayout = new QVBoxLayout(); + auto layout = new QVBoxLayout(this); + + m_label = new QLabel(i18nc("@info:progress", "Counting folders: %1", 0), this); + layout->addWidget(m_label); - m_label = new QLabel(i18nc("@info:progress", "Counting folders: %1", 0), main); - m_progressBar = new QProgressBar(main); + m_progressBar = new QProgressBar(this); m_progressBar->setMinimum(0); m_progressBar->setMaximum(0); m_progressBar->setValue(0); + layout->addWidget(m_progressBar); - topLayout->addWidget(m_label); - topLayout->addWidget(m_progressBar); + layout->addStretch(); - main->setLayout(topLayout); - setMainWidget(main); + auto buttonBox = new QDialogButtonBox(QDialogButtonBox::Cancel, this); + connect(buttonBox, &QDialogButtonBox::accepted, this, &ViewPropsProgressInfo::accept); + connect(buttonBox, &QDialogButtonBox::rejected, this, &ViewPropsProgressInfo::reject); + layout->addWidget(buttonBox); // Use the directory size job to count the number of directories first. This // allows to give a progress indication for the user when applying the view // properties later. m_dirSizeJob = KIO::directorySize(dir); - connect(m_dirSizeJob, &KIO::DirectorySizeJob::result, - this, &ViewPropsProgressInfo::applyViewProperties); + connect(m_dirSizeJob, &KIO::DirectorySizeJob::result, this, &ViewPropsProgressInfo::applyViewProperties); // The directory size job cannot emit any progress signal, as it is not aware // about the total number of directories. Therefor a timer is triggered, which // periodically updates the current directory count. m_timer = new QTimer(this); - connect(m_timer, &QTimer::timeout, - this, &ViewPropsProgressInfo::updateProgress); + connect(m_timer, &QTimer::timeout, this, &ViewPropsProgressInfo::updateProgress); m_timer->start(300); - - connect(this, &ViewPropsProgressInfo::cancelClicked, this, &ViewPropsProgressInfo::cancelApplying); } ViewPropsProgressInfo::~ViewPropsProgressInfo() { delete m_viewProps; - m_viewProps = 0; + m_viewProps = nullptr; } -void ViewPropsProgressInfo::closeEvent(QCloseEvent* event) +void ViewPropsProgressInfo::closeEvent(QCloseEvent *event) { m_timer->stop(); - m_applyViewPropsJob = 0; - KDialog::closeEvent(event); + m_applyViewPropsJob = nullptr; + QDialog::closeEvent(event); +} + +void ViewPropsProgressInfo::reject() +{ + if (m_dirSizeJob) { + m_dirSizeJob->kill(); + m_dirSizeJob = nullptr; + } + + if (m_applyViewPropsJob) { + m_applyViewPropsJob->kill(); + m_applyViewPropsJob = nullptr; + } + + QDialog::reject(); } void ViewPropsProgressInfo::updateProgress() @@ -125,24 +123,10 @@ void ViewPropsProgressInfo::applyViewProperties() m_label->setText(i18nc("@info:progress", "Folders: %1", subdirs)); m_progressBar->setMaximum(subdirs); - m_dirSizeJob = 0; + m_dirSizeJob = nullptr; m_applyViewPropsJob = new ApplyViewPropsJob(m_dir, *m_viewProps); - connect(m_applyViewPropsJob, &ApplyViewPropsJob::result, - this, &ViewPropsProgressInfo::close); -} - -void ViewPropsProgressInfo::cancelApplying() -{ - if (m_dirSizeJob) { - m_dirSizeJob->kill(); - m_dirSizeJob = 0; - } - - if (m_applyViewPropsJob) { - m_applyViewPropsJob->kill(); - m_applyViewPropsJob = 0; - } + connect(m_applyViewPropsJob, &ApplyViewPropsJob::result, this, &ViewPropsProgressInfo::close); } -#include "viewpropsprogressinfo.moc" +#include "moc_viewpropsprogressinfo.cpp"