File indexing completed on 2024-05-12 05:23:47
0001 /* 0002 SPDX-FileCopyrightText: 2013-2024 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #include "mboxmainwindow.h" 0008 #include "mboximporterinfogui.h" 0009 #include "mboximportkernel.h" 0010 #include "mboximportwidget.h" 0011 0012 #include <MailImporter/FilterMBox> 0013 #include <MailImporter/ImportMailsWidget> 0014 #include <MailImporterAkonadi/FilterImporterAkonadi> 0015 0016 #include <MailCommon/MailKernel> 0017 0018 #include <KLocalizedString> 0019 #include <QDialogButtonBox> 0020 #include <QPushButton> 0021 #include <QVBoxLayout> 0022 0023 MBoxMainWindow::MBoxMainWindow(const QString &filename, QWidget *parent) 0024 : QDialog(parent) 0025 , mFileName(filename) 0026 { 0027 setWindowTitle(i18nc("@title:window", "Import mbox file")); 0028 auto mainLayout = new QVBoxLayout(this); 0029 0030 auto kernel = new MBoxImporterKernel(this); 0031 CommonKernel->registerKernelIf(kernel); // register KernelIf early, it is used by the Filter classes 0032 CommonKernel->registerSettingsIf(kernel); // SettingsIf is used in FolderTreeWidget 0033 0034 mImportWidget = new MBoxImportWidget(this); 0035 mainLayout->addWidget(mImportWidget); 0036 0037 auto buttonBox = new QDialogButtonBox(QDialogButtonBox::Close, this); 0038 connect(buttonBox, &QDialogButtonBox::rejected, this, &MBoxMainWindow::reject); 0039 0040 buttonBox->button(QDialogButtonBox::Close)->setDefault(true); 0041 mainLayout->addWidget(buttonBox); 0042 0043 connect(mImportWidget, &MBoxImportWidget::importMailsClicked, this, &MBoxMainWindow::slotImportMBox); 0044 resize(800, 600); 0045 } 0046 0047 MBoxMainWindow::~MBoxMainWindow() = default; 0048 0049 void MBoxMainWindow::slotImportMBox() 0050 { 0051 auto info = new MailImporter::FilterInfo(); 0052 auto filterImporterAkonadi = new MailImporter::FilterImporterAkonadi(info); 0053 auto infoGui = new MBoxImporterInfoGui(mImportWidget); 0054 info->setFilterInfoGui(infoGui); 0055 filterImporterAkonadi->setRootCollection(mImportWidget->selectedCollection()); 0056 info->clear(); // Clear info from last time 0057 0058 info->setStatusMessage(i18n("Import in progress")); 0059 MailImporter::FilterMBox mbox; 0060 mbox.setFilterImporter(filterImporterAkonadi); 0061 mbox.setFilterInfo(info); 0062 info->clear(); 0063 mbox.importMails({mFileName}); 0064 info->setStatusMessage(i18n("Import finished")); 0065 } 0066 0067 #include "moc_mboxmainwindow.cpp"