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)17ContactPrintThemePreview::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()29ContactPrintThemePreview::~ContactPrintThemePreview() 30 { 31 } 32 updateViewer()33void 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)43void 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)49void ContactPrintThemePreview::setThemePath(const QString &projectDirectory, const QString &mainPageFileName) 50 { 51 Q_UNUSED(mainPageFileName) 52 mThemePath = projectDirectory; 53 } 54 loadConfig()55void 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