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"