File indexing completed on 2024-06-09 05:06:27

0001 /*
0002    SPDX-FileCopyrightText: 2003 Laurence Anderson <l.d.anderson@warwick.ac.uk>
0003 
0004    SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 // Local includes
0008 #include "manualselectfilterpage.h"
0009 
0010 // Filter includes
0011 #include <MailImporter/FilterEvolution>
0012 #include <MailImporter/FilterEvolution_v2>
0013 #include <MailImporter/FilterIcedove>
0014 #include <MailImporter/FilterKMailArchive>
0015 #include <MailImporter/FilterKMail_maildir>
0016 #include <MailImporter/FilterLNotes>
0017 #include <MailImporter/FilterMBox>
0018 #include <MailImporter/FilterMailApp>
0019 #include <MailImporter/FilterMailmanGzip>
0020 #include <MailImporter/FilterOE>
0021 #include <MailImporter/FilterOpera>
0022 #include <MailImporter/FilterPMail>
0023 #include <MailImporter/FilterPlain>
0024 #include <MailImporter/FilterSylpheed>
0025 #include <MailImporter/FilterTheBat>
0026 #include <MailImporter/FilterThunderbird>
0027 
0028 #include <MailImporter/Filters>
0029 
0030 #include <MailImporter/FilterEvolution_v3>
0031 
0032 // KDE includes
0033 
0034 #include <KLocalizedString>
0035 
0036 // Qt includes
0037 #include <QCheckBox>
0038 
0039 #include <QStandardPaths>
0040 
0041 using namespace MailImporter;
0042 
0043 ManualSelectFilterPage::ManualSelectFilterPage(QWidget *parent)
0044     : QWidget(parent)
0045     , mWidget(new Ui::ManualSelectFilterPage)
0046 {
0047     mWidget->setupUi(this);
0048     mWidget->mIntroSidebar->setPixmap(QStandardPaths::locate(QStandardPaths::GenericDataLocation, QStringLiteral("importwizard/pics/step1.png")));
0049     connect(mWidget->mFilterCombo, &QComboBox::activated, this, &ManualSelectFilterPage::filterSelected);
0050 
0051     addFilter(new MailImporter::FilterKMailArchive);
0052     addFilter(new MailImporter::FilterMBox);
0053     addFilter(new MailImporter::FilterEvolution);
0054     addFilter(new MailImporter::FilterEvolution_v2);
0055     addFilter(new MailImporter::FilterEvolution_v3);
0056     addFilter(new MailImporter::FilterKMail_maildir);
0057     addFilter(new MailImporter::FilterMailApp);
0058     addFilter(new MailImporter::FilterOpera);
0059     addFilter(new MailImporter::FilterSylpheed);
0060     addFilter(new MailImporter::FilterThunderbird);
0061     addFilter(new MailImporter::FilterIcedove);
0062     addFilter(new MailImporter::FilterTheBat);
0063     addFilter(new MailImporter::FilterOE);
0064     addFilter(new MailImporter::FilterPMail);
0065     addFilter(new MailImporter::FilterLNotes);
0066     addFilter(new MailImporter::FilterPlain);
0067     addFilter(new MailImporter::FilterMailmanGzip);
0068 
0069     // Ensure we return the correct type of Akonadi collection.
0070     mWidget->mCollectionRequestor->setMustBeReadWrite(true);
0071 }
0072 
0073 ManualSelectFilterPage::~ManualSelectFilterPage()
0074 {
0075     qDeleteAll(mFilterList);
0076     mFilterList.clear();
0077     delete mWidget;
0078 }
0079 
0080 void ManualSelectFilterPage::filterSelected(int i)
0081 {
0082     QString info = mFilterList.at(i)->info();
0083     const QString author = mFilterList.at(i)->author();
0084     if (!author.isEmpty()) {
0085         info += i18n("<p><i>Written by %1.</i></p>", author);
0086     }
0087     mWidget->mDesc->setText(info);
0088 }
0089 
0090 void ManualSelectFilterPage::addFilter(Filter *f)
0091 {
0092     mFilterList.append(f);
0093     mWidget->mFilterCombo->addItem(f->name());
0094     if (mWidget->mFilterCombo->count() == 1) {
0095         filterSelected(0); // Setup description box with fist filter selected
0096     }
0097 }
0098 
0099 bool ManualSelectFilterPage::removeDupMsg_checked() const
0100 {
0101     return mWidget->remDupMsg->isChecked();
0102 }
0103 
0104 Filter *ManualSelectFilterPage::getSelectedFilter() const
0105 {
0106     return mFilterList.at(mWidget->mFilterCombo->currentIndex());
0107 }
0108 
0109 Ui::ManualSelectFilterPage *ManualSelectFilterPage::widget() const
0110 {
0111     return mWidget;
0112 }
0113 
0114 #include "moc_manualselectfilterpage.cpp"