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 "abstractimporter.h"
8 #include "abstractdisplayinfo.h"
9
10 #include <MailCommon/FilterManager>
11 #include <MailImporter/FilterInfo>
12 #include <MailImporterAkonadi/FilterImporterAkonadi>
13
14 #include <QFile>
15 #include <QFileInfo>
16
17 using namespace LibImportWizard;
18
AbstractImporter(QObject * parent)19 AbstractImporter::AbstractImporter(QObject *parent)
20 : QObject(parent)
21 {
22 }
23
~AbstractImporter()24 AbstractImporter::~AbstractImporter()
25 {
26 }
27
importSettings()28 bool AbstractImporter::importSettings()
29 {
30 return false;
31 }
32
importMails()33 bool AbstractImporter::importMails()
34 {
35 return false;
36 }
37
importFilters()38 bool AbstractImporter::importFilters()
39 {
40 return false;
41 }
42
importAddressBook()43 bool AbstractImporter::importAddressBook()
44 {
45 return false;
46 }
47
importCalendar()48 bool AbstractImporter::importCalendar()
49 {
50 return false;
51 }
52
initializeFilter(MailImporter::Filter & filter)53 void AbstractImporter::initializeFilter(MailImporter::Filter &filter)
54 {
55 Q_ASSERT_X(mAbstractDisplayInfo, __FUNCTION__, "mAbstractDisplayInfo is not setting");
56 mAbstractDisplayInfo->initializeFilter(filter);
57 }
58
addFilters(const QString & filterPath,MailCommon::FilterImporterExporter::FilterType type)59 bool AbstractImporter::addFilters(const QString &filterPath, MailCommon::FilterImporterExporter::FilterType type)
60 {
61 if (QFileInfo::exists(filterPath)) {
62 bool canceled = false;
63 MailCommon::FilterImporterExporter importer(mAbstractDisplayInfo->parentWidget());
64 QVector<MailCommon::MailFilter *> listFilter = importer.importFilters(canceled, type, filterPath);
65 appendFilters(listFilter);
66 if (canceled) {
67 addImportFilterInfo(i18n("Importing of filters from \"%1\" was canceled.", filterPath));
68 } else {
69 addImportFilterInfo(i18np("1 filter was imported from \"%2\"", "%1 filters were imported from \"%2\"", listFilter.count(), filterPath));
70 }
71 return true;
72 } else {
73 addImportFilterError(i18n("Filters file was not found"));
74 return true;
75 }
76 }
77
appendFilters(const QVector<MailCommon::MailFilter * > & filters)78 void AbstractImporter::appendFilters(const QVector<MailCommon::MailFilter *> &filters)
79 {
80 if (!filters.isEmpty()) {
81 MailCommon::FilterManager::instance()->appendFilters(filters, false);
82 }
83 }
84
addImportFilterInfo(const QString & log) const85 void AbstractImporter::addImportFilterInfo(const QString &log) const
86 {
87 Q_ASSERT_X(mAbstractDisplayInfo, __FUNCTION__, "mAbstractDisplayInfo is not setting");
88 if (mAbstractDisplayInfo) {
89 mAbstractDisplayInfo->filterImportInfo(log);
90 }
91 }
92
addImportFilterError(const QString & log) const93 void AbstractImporter::addImportFilterError(const QString &log) const
94 {
95 Q_ASSERT_X(mAbstractDisplayInfo, __FUNCTION__, "mAbstractDisplayInfo is not setting");
96 if (mAbstractDisplayInfo) {
97 mAbstractDisplayInfo->filterImportError(log);
98 }
99 }
100
addImportSettingsInfo(const QString & log) const101 void AbstractImporter::addImportSettingsInfo(const QString &log) const
102 {
103 Q_ASSERT_X(mAbstractDisplayInfo, __FUNCTION__, "mAbstractDisplayInfo is not setting");
104 if (mAbstractDisplayInfo) {
105 mAbstractDisplayInfo->settingsImportInfo(log);
106 }
107 }
108
addImportCalendarInfo(const QString & log) const109 void AbstractImporter::addImportCalendarInfo(const QString &log) const
110 {
111 Q_ASSERT_X(mAbstractDisplayInfo, __FUNCTION__, "mAbstractDisplayInfo is not setting");
112 if (mAbstractDisplayInfo) {
113 mAbstractDisplayInfo->calendarImportInfo(log);
114 }
115 }
116
setAbstractDisplayInfo(AbstractDisplayInfo * info)117 void AbstractImporter::setAbstractDisplayInfo(AbstractDisplayInfo *info)
118 {
119 mAbstractDisplayInfo = info;
120 }
121