File indexing completed on 2024-05-12 05:25:36

0001 /*
0002    SPDX-FileCopyrightText: 2015-2024 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #include "importexportprogressindicatorgui.h"
0008 #include "pimdataexporterglobalconfig.h"
0009 #include <KLocalizedString>
0010 #include <KMessageBox>
0011 #include <KStandardGuiItem>
0012 #include <QProgressDialog>
0013 
0014 ImportExportProgressIndicatorGui::ImportExportProgressIndicatorGui(QWidget *parentWidget, QObject *parent)
0015     : ImportExportProgressIndicatorBase(parent)
0016     , mParentWidget(parentWidget)
0017 {
0018 }
0019 
0020 ImportExportProgressIndicatorGui::~ImportExportProgressIndicatorGui()
0021 {
0022     delete mProgressDialog;
0023 }
0024 
0025 void ImportExportProgressIndicatorGui::increaseProgressDialog()
0026 {
0027     if (mProgressDialog) {
0028         mProgressDialog->setValue(mProgressDialog->value() + 1);
0029     }
0030 }
0031 
0032 void ImportExportProgressIndicatorGui::createProgressDialog(const QString &title)
0033 {
0034     if (!mProgressDialog) {
0035         mProgressDialog = new QProgressDialog(QString(), i18n("Cancel"), 0, mNumberOfStep, mParentWidget);
0036         mProgressDialog->setWindowTitle(title);
0037         mProgressDialog->setWindowModality(Qt::WindowModal);
0038         connect(mProgressDialog, &QProgressDialog::canceled, this, &ImportExportProgressIndicatorBase::canceled);
0039     }
0040     mProgressDialog->show();
0041     mProgressDialog->setValue(0);
0042 }
0043 
0044 void ImportExportProgressIndicatorGui::setProgressDialogLabel(const QString &text)
0045 {
0046     if (mProgressDialog) {
0047         mProgressDialog->setLabelText(text);
0048     }
0049     Q_EMIT info(text);
0050 }
0051 
0052 bool ImportExportProgressIndicatorGui::wasCanceled() const
0053 {
0054     if (mProgressDialog) {
0055         return mProgressDialog->wasCanceled();
0056     }
0057     return false;
0058 }
0059 
0060 int ImportExportProgressIndicatorGui::mergeConfigMessageBox(const QString &configName) const
0061 {
0062     if (PimDataExportGlobalConfig::self()->alwaysMergeConfigFile()) {
0063         return KMessageBox::ButtonCode::PrimaryAction;
0064     }
0065     return KMessageBox::warningTwoActionsCancel(mParentWidget,
0066                                                 i18n("\"%1\" already exists. Do you want to overwrite it or merge it?", configName),
0067                                                 i18n("Restore"),
0068                                                 KStandardGuiItem::overwrite(),
0069                                                 KGuiItem(i18n("Merge")));
0070 }
0071 
0072 bool ImportExportProgressIndicatorGui::overwriteConfigMessageBox(const QString &configName) const
0073 {
0074     if (PimDataExportGlobalConfig::self()->alwaysOverrideFile()) {
0075         return true;
0076     }
0077     const int answer = KMessageBox::warningTwoActions(mParentWidget,
0078                                                       i18n("\"%1\" already exists. Do you want to overwrite it?", configName),
0079                                                       i18n("Restore"),
0080                                                       KStandardGuiItem::overwrite(),
0081                                                       KStandardGuiItem::cancel());
0082     return (answer == KMessageBox::ButtonCode::PrimaryAction);
0083 }
0084 
0085 bool ImportExportProgressIndicatorGui::overwriteDirectoryMessageBox(const QString &directory) const
0086 {
0087     if (PimDataExportGlobalConfig::self()->alwaysOverrideDirectory()) {
0088         return true;
0089     }
0090     const int answer = KMessageBox::warningTwoActions(mParentWidget,
0091                                                       i18n("Directory \"%1\" already exists. Do you want to overwrite it?", directory),
0092                                                       i18n("Restore"),
0093                                                       KStandardGuiItem::overwrite(),
0094                                                       KStandardGuiItem::cancel());
0095     return (answer == KMessageBox::ButtonCode::PrimaryAction);
0096 }
0097 
0098 void ImportExportProgressIndicatorGui::showErrorMessage(const QString &message, const QString &title)
0099 {
0100     KMessageBox::error(mParentWidget, message, title);
0101 }
0102 
0103 #include "moc_importexportprogressindicatorgui.cpp"