1 /* 2 SPDX-FileCopyrightText: 2012-2021 Laurent Montel <montel@kde.org> 3 4 SPDX-License-Identifier: GPL-2.0-or-later 5 */ 6 7 #include "balsaimportdata.h" 8 #include "balsaaddressbook.h" 9 #include "balsasettings.h" 10 #include <MailCommon/FilterImporterBalsa> 11 #include <MailImporter/FilterBalsa> 12 #include <MailImporter/FilterInfo> 13 14 #include <KLocalizedString> 15 #include <KPluginFactory> 16 #include <QDir> 17 18 K_PLUGIN_CLASS_WITH_JSON(BalsaImportData, "balsaimporter.json") 19 BalsaImportData(QObject * parent,const QList<QVariant> &)20BalsaImportData::BalsaImportData(QObject *parent, const QList<QVariant> &) 21 : LibImportWizard::AbstractImporter(parent) 22 { 23 mPath = MailImporter::FilterBalsa::defaultSettingsPath(); 24 } 25 ~BalsaImportData()26BalsaImportData::~BalsaImportData() 27 { 28 } 29 foundMailer() const30bool BalsaImportData::foundMailer() const 31 { 32 QDir directory(mPath); 33 if (directory.exists()) { 34 return true; 35 } 36 return false; 37 } 38 name() const39QString BalsaImportData::name() const 40 { 41 return QStringLiteral("Balsa"); 42 } 43 importMails()44bool BalsaImportData::importMails() 45 { 46 MailImporter::FilterBalsa balsa; 47 initializeFilter(balsa); 48 balsa.filterInfo()->setStatusMessage(i18n("Import in progress")); 49 QDir directory(balsa.localMailDirPath()); 50 if (directory.exists()) { 51 balsa.importMails(directory.absolutePath()); 52 } else { 53 balsa.import(); 54 } 55 balsa.filterInfo()->setStatusMessage(i18n("Import finished")); 56 return true; 57 } 58 importAddressBook()59bool BalsaImportData::importAddressBook() 60 { 61 const QString addressbookFile(mPath + QStringLiteral("config")); 62 BalsaAddressBook addressbook(addressbookFile); 63 addressbook.setAbstractDisplayInfo(mAbstractDisplayInfo); 64 addressbook.importAddressBook(); 65 return true; 66 } 67 importSettings()68bool BalsaImportData::importSettings() 69 { 70 const QString settingFile(mPath + QStringLiteral("config")); 71 BalsaSettings settings(settingFile); 72 settings.setAbstractDisplayInfo(mAbstractDisplayInfo); 73 settings.importSettings(); 74 return true; 75 } 76 importFilters()77bool BalsaImportData::importFilters() 78 { 79 const QString filterPath = mPath + QStringLiteral("config"); 80 return addFilters(filterPath, MailCommon::FilterImporterExporter::BalsaFilter); 81 } 82 supportedOption()83LibImportWizard::AbstractImporter::TypeSupportedOptions BalsaImportData::supportedOption() 84 { 85 TypeSupportedOptions options; 86 options |= LibImportWizard::AbstractImporter::Mails; 87 options |= LibImportWizard::AbstractImporter::AddressBooks; 88 options |= LibImportWizard::AbstractImporter::Settings; 89 options |= LibImportWizard::AbstractImporter::Filters; 90 return options; 91 } 92 93 #include "balsaimportdata.moc" 94