1 /*
2    SPDX-FileCopyrightText: 2015-2021 Laurent Montel <montel@kde.org>
3 
4    SPDX-License-Identifier: GPL-2.0-or-later
5 */
6 
7 #include "contactprintthemepreview.h"
8 #include "contactprintthemeeditor_debug.h"
9 #include "contactprintthemeeditorutil.h"
10 #include <Akonadi/Contact/GrantleePrint>
11 #include <KConfigGroup>
12 #include <KContacts/VCardConverter>
13 #include <KSharedConfig>
14 #include <QHBoxLayout>
15 #include <QWebEngineView>
16 
ContactPrintThemePreview(const QString & projectDirectory,QWidget * parent)17 ContactPrintThemePreview::ContactPrintThemePreview(const QString &projectDirectory, QWidget *parent)
18     : GrantleeThemeEditor::PreviewWidget(parent)
19     , mThemePath(projectDirectory)
20 {
21     QHBoxLayout *hbox = new QHBoxLayout(this);
22     hbox->setContentsMargins(0, 0, 0, 0);
23     mViewer = new QWebEngineView(this);
24     mViewer->setContextMenuPolicy(Qt::NoContextMenu);
25     hbox->addWidget(mViewer);
26     loadConfig();
27 }
28 
~ContactPrintThemePreview()29 ContactPrintThemePreview::~ContactPrintThemePreview()
30 {
31 }
32 
updateViewer()33 void ContactPrintThemePreview::updateViewer()
34 {
35     KContacts::AddresseeList lst;
36     lst << mContact;
37     KAddressBookGrantlee::GrantleePrint grantleePrint(mThemePath);
38     grantleePrint.setApplicationDomain("kaddressbook");
39     const QString html = grantleePrint.contactsToHtml(lst);
40     mViewer->setHtml(html);
41 }
42 
createScreenShot(const QStringList & fileName)43 void ContactPrintThemePreview::createScreenShot(const QStringList &fileName)
44 {
45     Q_UNUSED(fileName)
46     qCWarning(CONTACTPRINTTHEMEEDITOR_LOG) << "Create screenshot not implemented yet";
47 }
48 
setThemePath(const QString & projectDirectory,const QString & mainPageFileName)49 void ContactPrintThemePreview::setThemePath(const QString &projectDirectory, const QString &mainPageFileName)
50 {
51     Q_UNUSED(mainPageFileName)
52     mThemePath = projectDirectory;
53 }
54 
loadConfig()55 void ContactPrintThemePreview::loadConfig()
56 {
57     KSharedConfig::Ptr config = KSharedConfig::openConfig();
58 
59     if (config->hasGroup(QStringLiteral("Global"))) {
60         KConfigGroup group = config->group(QStringLiteral("Global"));
61         ContactPrintThemeEditorutil contactEditorUtil;
62         const QString defaultContact = group.readEntry("defaultContact", contactEditorUtil.defaultContact());
63         if (!defaultContact.isEmpty()) {
64             KContacts::VCardConverter converter;
65             mContact = converter.parseVCard(defaultContact.toUtf8());
66         } else {
67             mContact = KContacts::Addressee();
68         }
69     } else {
70         ContactPrintThemeEditorutil contactEditorUtil;
71         if (!contactEditorUtil.defaultContact().isEmpty()) {
72             KContacts::VCardConverter converter;
73             mContact = converter.parseVCard(contactEditorUtil.defaultContact().toUtf8());
74         } else {
75             mContact = KContacts::Addressee();
76         }
77     }
78 }
79