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> &)20 BalsaImportData::BalsaImportData(QObject *parent, const QList<QVariant> &)
21     : LibImportWizard::AbstractImporter(parent)
22 {
23     mPath = MailImporter::FilterBalsa::defaultSettingsPath();
24 }
25 
~BalsaImportData()26 BalsaImportData::~BalsaImportData()
27 {
28 }
29 
foundMailer() const30 bool BalsaImportData::foundMailer() const
31 {
32     QDir directory(mPath);
33     if (directory.exists()) {
34         return true;
35     }
36     return false;
37 }
38 
name() const39 QString BalsaImportData::name() const
40 {
41     return QStringLiteral("Balsa");
42 }
43 
importMails()44 bool 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()59 bool 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()68 bool 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()77 bool BalsaImportData::importFilters()
78 {
79     const QString filterPath = mPath + QStringLiteral("config");
80     return addFilters(filterPath, MailCommon::FilterImporterExporter::BalsaFilter);
81 }
82 
supportedOption()83 LibImportWizard::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