File indexing completed on 2025-03-09 04:54:36
0001 /* 0002 SPDX-FileCopyrightText: 2015-2024 Laurent Montel <montel@kde.org> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #include "defaultgrantleeheaderstyleinterface.h" 0008 #include "globalsettings_base.h" 0009 #include "messageviewer/headerstyle.h" 0010 #include "messageviewer/headerstyleplugin.h" 0011 #include <GrantleeTheme/GrantleeThemeManager> 0012 #include <KActionCollection> 0013 #include <KToggleAction> 0014 #include <QStandardPaths> 0015 0016 using namespace MessageViewer; 0017 DefaultGrantleeHeaderStyleInterface::DefaultGrantleeHeaderStyleInterface(MessageViewer::HeaderStylePlugin *plugin, QObject *parent) 0018 : MessageViewer::HeaderStyleInterface(plugin, parent) 0019 { 0020 } 0021 0022 DefaultGrantleeHeaderStyleInterface::~DefaultGrantleeHeaderStyleInterface() = default; 0023 0024 void DefaultGrantleeHeaderStyleInterface::createAction(KActionMenu *menu, QActionGroup *actionGroup, KActionCollection *ac) 0025 { 0026 const QStringList defaultThemePath = 0027 QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, QStringLiteral("messageviewer/defaultthemes/"), QStandardPaths::LocateDirectory); 0028 if (!defaultThemePath.isEmpty()) { 0029 const QString themeName = DefaultGrantleeHeaderStylePluginSettings::self()->themeName(); 0030 mDefaultTheme = 0031 GrantleeTheme::ThemeManager::loadTheme(defaultThemePath.at(0) + QLatin1Char('/') + themeName, themeName, QStringLiteral("kmail_default.desktop")); 0032 } 0033 mHeaderStylePlugin->headerStyle()->setTheme(mDefaultTheme); 0034 auto act = new KToggleAction(mDefaultTheme.name(), this); 0035 ac->addAction(QStringLiteral("default_grantlee_theme"), act); 0036 connect(act, &KToggleAction::triggered, this, &DefaultGrantleeHeaderStyleInterface::slotDefaultGrantleeHeaders); 0037 mAction.append(act); 0038 addActionToMenu(menu, actionGroup); 0039 } 0040 0041 void DefaultGrantleeHeaderStyleInterface::activateAction() 0042 { 0043 mAction.at(0)->setChecked(true); 0044 } 0045 0046 void DefaultGrantleeHeaderStyleInterface::slotDefaultGrantleeHeaders() 0047 { 0048 mHeaderStylePlugin->headerStyle()->setTheme(mDefaultTheme); 0049 slotStyleChanged(); 0050 } 0051 0052 #include "moc_defaultgrantleeheaderstyleinterface.cpp"