File indexing completed on 2024-05-12 05:13:31
0001 /* 0002 SPDX-FileCopyrightText: 2013-2024 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 #include "previewwidget.h" 0007 #include "themeeditorutil.h" 0008 #include <MessageViewer/GrantleeHeaderTestStyle> 0009 #include <MessageViewer/HeaderStrategy> 0010 #include <MessageViewer/Viewer> 0011 0012 #include <KConfigGroup> 0013 #include <KLocalizedString> 0014 #include <QPushButton> 0015 0016 #include <KSharedConfig> 0017 #include <QVBoxLayout> 0018 0019 PreviewWidget::PreviewWidget(const QString &projectDirectory, QWidget *parent) 0020 : GrantleeThemeEditor::PreviewWidget(parent) 0021 { 0022 auto lay = new QVBoxLayout(this); 0023 lay->setContentsMargins(0, 0, 0, 0); 0024 mViewer = new MessageViewer::Viewer(this); 0025 mGrantleeHeaderStyle = new MessageViewer::GrantleeHeaderTestStyle; 0026 mGrantleeHeaderStyle->setAbsolutePath(projectDirectory); 0027 // Default 0028 mGrantleeHeaderStyle->setMainFilename(QStringLiteral("header.html")); 0029 #if 0 // TODO_PORT_PLUGIN 0030 mViewer->setHeaderStyleAndStrategy(mGrantleeHeaderStyle, 0031 MessageViewer::HeaderStrategy::create(QString())); 0032 #endif 0033 lay->addWidget(mViewer); 0034 auto update = new QPushButton(i18n("Update view")); 0035 connect(update, &QPushButton::clicked, this, &PreviewWidget::needUpdateViewer); 0036 lay->addWidget(update); 0037 } 0038 0039 PreviewWidget::~PreviewWidget() 0040 { 0041 delete mGrantleeHeaderStyle; 0042 } 0043 0044 void PreviewWidget::slotExtraHeaderDisplayChanged(const QStringList &headers) 0045 { 0046 mGrantleeHeaderStyle->setExtraDisplayHeaders(headers); 0047 updateViewer(); 0048 } 0049 0050 void PreviewWidget::slotMainFileNameChanged(const QString &filename) 0051 { 0052 mGrantleeHeaderStyle->setMainFilename(filename); 0053 updateViewer(); 0054 } 0055 0056 void PreviewWidget::loadConfig() 0057 { 0058 KSharedConfig::Ptr config = KSharedConfig::openConfig(); 0059 ThemeEditorUtil themeutil; 0060 if (config->hasGroup(QStringLiteral("Global"))) { 0061 KConfigGroup group = config->group(QStringLiteral("Global")); 0062 mDefaultEmail = group.readEntry("defaultEmail", themeutil.defaultMail()).toLatin1(); 0063 } else { 0064 mDefaultEmail = themeutil.defaultMail().toLatin1(); 0065 } 0066 updateViewer(); 0067 } 0068 0069 void PreviewWidget::updateViewer() 0070 { 0071 auto msg = new KMime::Message; 0072 msg->setContent(mDefaultEmail); 0073 msg->parse(); 0074 mViewer->setPrinting(mPrinting); 0075 mViewer->setMessage(KMime::Message::Ptr(msg)); 0076 } 0077 0078 void PreviewWidget::createScreenShot(const QStringList &fileList) 0079 { 0080 mViewer->saveMainFrameScreenshotInFile(fileList.at(0)); 0081 } 0082 0083 void PreviewWidget::setThemePath(const QString &projectDirectory, const QString &mainPageFileName) 0084 { 0085 mGrantleeHeaderStyle->setAbsolutePath(projectDirectory); 0086 mGrantleeHeaderStyle->setMainFilename(mainPageFileName); 0087 updateViewer(); 0088 } 0089 0090 #include "moc_previewwidget.cpp"